-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Complete OpenGL raw bindings
--   
--   Complete OpenGL raw bindings
@package gl
@version 0.8.0


module Graphics.GL.Types
type GLDEBUGPROC = FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())
type GLDEBUGPROCAMD = FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())
type GLDEBUGPROCARB = FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())
type GLDEBUGPROCKHR = FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
mkGLDEBUGPROC :: (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ()) -> IO GLDEBUGPROC

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
mkGLDEBUGPROCAMD :: (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ()) -> IO GLDEBUGPROCAMD

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
mkGLDEBUGPROCARB :: (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ()) -> IO GLDEBUGPROCARB

-- | The storage associated with the resulting <a>FunPtr</a> has to be
--   released with <a>freeHaskellFunPtr</a> when it is no longer required.
mkGLDEBUGPROCKHR :: (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ()) -> IO GLDEBUGPROCKHR
type GLbitfield = Word32
type GLboolean = Word8
type GLbyte = Int8
type GLchar = CChar
type GLcharARB = CChar
type GLclampd = Double
type GLclampf = Float
type GLclampx = Int32
type GLdouble = Double
type GLeglImageOES = Ptr ()
type GLenum = Word32
type GLfixed = Fixed
type GLfloat = Float
type GLhalf = Half
type GLhalfARB = Half
type GLhalfNV = Half
type GLhandleARB = Word32
type GLint = Int32
type GLint64 = Int64
type GLint64EXT = Int64
type GLintptr = CPtrdiff
type GLintptrARB = CPtrdiff
type GLshort = Int16
type GLsizei = Int32
type GLsizeiptr = CPtrdiff
type GLsizeiptrARB = CPtrdiff
type GLsync = Ptr ()
type GLubyte = Word8
type GLuint = Word32
type GLuint64 = Word64
type GLuint64EXT = Word64
type GLushort = Word16
type GLvdpauSurfaceNV = CPtrdiff

module Graphics.GL.Internal.FFI
ffienumfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
ffienumfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> IO ()) -> GLenum -> GLfixed -> m ()
ffiuintIOV :: MonadIO m => FunPtr (GLuint -> IO ()) -> GLuint -> m ()
ffiuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> m ()
ffienumIOV :: MonadIO m => FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffiuintPtrcharIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLchar -> IO ()) -> GLuint -> Ptr GLchar -> m ()
ffienumuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffienumuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffienumuintuintuintuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffienumclampfIOV :: MonadIO m => FunPtr (GLenum -> GLclampf -> IO ()) -> GLenum -> GLclampf -> m ()
ffiIOV :: MonadIO m => FunPtr (IO ()) -> m ()
ffisizeiPtruintPtrbooleanIOboolean :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean) -> GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
ffiintIOV :: MonadIO m => FunPtr (GLint -> IO ()) -> GLint -> m ()
ffienumintenumsizeiuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
ffihandleARBhandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLhandleARB -> IO ()) -> GLhandleARB -> GLhandleARB -> m ()
ffiuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> m ()
ffienumuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> m ()
ffienumuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> m ()
ffiuintuintPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> m ()
ffihandleARBuintPtrcharARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> Ptr GLcharARB -> m ()
ffienumuintuintintptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> m ()
ffienumuintuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
ffienumuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
ffiuintuintuintPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
ffiuintuintintbooleanintenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
ffiuintuintintbooleanintenumintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> m ()
ffiuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> m ()
ffienumenumIOuint :: MonadIO m => FunPtr (GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> m GLuint
ffienumenumuintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLuint -> m ()
ffienumIOuint :: MonadIO m => FunPtr (GLenum -> IO GLuint) -> GLenum -> m GLuint
ffienumenumenumIOuint :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> GLenum -> m GLuint
ffiuintuintintptrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
ffiuintsizeiPtruintPtrintptrPtrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
ffiuintuintenumintptrARBIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()
ffiuintuintenumenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
ffibytebytebyteIOV :: MonadIO m => FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> m ()
ffiPtrbyteIOV :: MonadIO m => FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffidoubledoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiPtrdoubleIOV :: MonadIO m => FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffifloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiintintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> m ()
ffiPtrintIOV :: MonadIO m => FunPtr (Ptr GLint -> IO ()) -> Ptr GLint -> m ()
ffishortshortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> m ()
ffiPtrshortIOV :: MonadIO m => FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
ffienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> Ptr () -> m ()
ffisizeisizeifloatfloatfloatfloatPtrubyteIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
ffisizeisizeifixedfixedfixedfixedPtrubyteIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> m ()
ffifloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffifixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
ffienumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
ffiuintenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> m ()
ffienumenumenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffiuintenumenumenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffienumintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> IO ()) -> GLenum -> GLint -> m ()
ffiintintintintintintintintbitfieldenumIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
ffiuintuintintintintintintintintintbitfieldenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
ffienumuintuint64EXTsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> m ()
ffienumsizeiptrPtrVenumIOV :: MonadIO m => FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
ffienumsizeiptrARBPtrVenumIOV :: MonadIO m => FunPtr (GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> m ()
ffienumintptrsizeiptrbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
ffienumenumintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> m ()
ffienumsizeiptrPtrVbitfieldIOV :: MonadIO m => FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
ffienumintptrsizeiptrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
ffienumintptrARBsizeiptrARBPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ()) -> GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()
ffisizeienumPtrVIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLenum -> Ptr () -> m ()
ffienumIOenum :: MonadIO m => FunPtr (GLenum -> IO GLenum) -> GLenum -> m GLenum
ffiuintenumIOenum :: MonadIO m => FunPtr (GLuint -> GLenum -> IO GLenum) -> GLuint -> GLenum -> m GLenum
ffibitfieldIOV :: MonadIO m => FunPtr (GLbitfield -> IO ()) -> GLbitfield -> m ()
ffienumenumenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumintptrsizeiptrenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
ffienumintfloatintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLenum -> GLint -> GLfloat -> GLint -> m ()
ffienumintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> Ptr GLfloat -> m ()
ffienumintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLint -> IO ()) -> GLenum -> GLint -> Ptr GLint -> m ()
ffienumintPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLenum -> GLint -> Ptr GLuint -> m ()
ffiintintintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> m ()
ffiuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffidoubleIOV :: MonadIO m => FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
ffifloatIOV :: MonadIO m => FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
fficlampfIOV :: MonadIO m => FunPtr (GLclampf -> IO ()) -> GLclampf -> m ()
ffifixedIOV :: MonadIO m => FunPtr (GLfixed -> IO ()) -> GLfixed -> m ()
ffiuintenumenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumintptrsizeiptrenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumintfloatintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()
ffiuintenumintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
ffiuintenumintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
ffiuintenumintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
ffisizeisizeiPtruintIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> GLsizei -> Ptr GLuint -> m ()
ffiuintintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffisyncbitfielduint64IOenum :: MonadIO m => FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum) -> GLsync -> GLbitfield -> GLuint64 -> m GLenum
ffienumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> Ptr GLdouble -> m ()
ffienumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> Ptr GLfloat -> m ()
ffienumPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> Ptr GLfixed -> m ()
ffifloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> m ()
ffihalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffiPtrhalfNVIOV :: MonadIO m => FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
ffiubyteubyteubyteIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> m ()
ffiPtrubyteIOV :: MonadIO m => FunPtr (Ptr GLubyte -> IO ()) -> Ptr GLubyte -> m ()
ffiuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> m ()
ffiPtruintIOV :: MonadIO m => FunPtr (Ptr GLuint -> IO ()) -> Ptr GLuint -> m ()
ffiushortushortushortIOV :: MonadIO m => FunPtr (GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> m ()
ffiPtrushortIOV :: MonadIO m => FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
ffifixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> m ()
ffiPtrfixedIOV :: MonadIO m => FunPtr (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> m ()
ffibytebytebytebyteIOV :: MonadIO m => FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
ffidoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
ffihalfNVhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffishortshortshortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
ffiubyteubyteubyteubyteIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
ffiubyteubyteubyteubytefloatfloatIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> m ()
ffiPtrubytePtrfloatIOV :: MonadIO m => FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLubyte -> Ptr GLfloat -> m ()
ffiubyteubyteubyteubytefloatfloatfloatIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiushortushortushortushortIOV :: MonadIO m => FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> GLushort -> m ()
ffiintenumsizeiIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> IO ()) -> GLint -> GLenum -> GLsizei -> m ()
ffienumuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffienumuintuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffibooleanbooleanbooleanbooleanIOV :: MonadIO m => FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
ffiuintbooleanbooleanbooleanbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
ffienumPtruintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint -> IO ()) -> GLenum -> Ptr GLuint -> m ()
ffiintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
ffiintenumsizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
ffiintenumintPtrPtrVintIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
ffiintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
ffienumsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumenumenumenumenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()
ffienumPtrintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLint -> m ()
ffihandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
ffiuintsizeiPtrPtrcharPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
ffienumenumintenumsizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
ffienumenumintenumsizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
ffienumenumintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumenumintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumintenumsizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
ffienumintenumsizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
ffienumintenumsizeisizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
ffienumintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintenumintenumsizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
ffiuintenumintenumsizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
ffiuintintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintenumintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintenumintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumenumsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLfloat -> m ()
ffienumenumfixedIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLfixed -> IO ()) -> GLenum -> GLenum -> GLfixed -> m ()
ffienumenumPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLenum -> Ptr GLfixed -> m ()
ffienumenumintptrintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
ffienumsizeiintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()
ffienumenumintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
ffienumenumintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
ffienumenumintenumintintsizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
ffienumenumintenumintintsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
ffienumenumintintintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
ffienumenumintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffienumenumintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffiuintuintintptrintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
ffiintintsizeisizeienumIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
ffienumintenumintintsizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
ffienumintenumintintsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
ffienumintintintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
ffienumintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffienumintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffiuintenumintenumintintsizeiintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
ffiuintenumintenumintintsizeisizeiintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
ffiuintuintintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
ffiuintintintintintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
ffiuintenumintintintintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
ffiuintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffiuintenumintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffiuintintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffiuintenumintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffisizeienumPtrVuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffibooleanIOV :: MonadIO m => FunPtr (GLboolean -> IO ()) -> GLboolean -> m ()
ffisizeiPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLfloat -> m ()
ffisizeiPtruintIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> Ptr GLuint -> m ()
ffiuintPtruintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLuint -> m ()
ffiIOuint :: MonadIO m => FunPtr (IO GLuint) -> m GLuint
ffiIOhandleARB :: MonadIO m => FunPtr (IO GLhandleARB) -> m GLhandleARB
ffienumsizeiPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLsizei -> Ptr GLuint -> m ()
ffienumIOhandleARB :: MonadIO m => FunPtr (GLenum -> IO GLhandleARB) -> GLenum -> m GLhandleARB
ffienumPtrcharIOuint :: MonadIO m => FunPtr (GLenum -> Ptr GLchar -> IO GLuint) -> GLenum -> Ptr GLchar -> m GLuint
ffienumsizeiPtrPtrcharIOuint :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint) -> GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
ffiPtrVPtrVbitfieldIOsync :: MonadIO m => FunPtr (Ptr () -> Ptr () -> GLbitfield -> IO GLsync) -> Ptr () -> Ptr () -> GLbitfield -> m GLsync
ffiDEBUGPROCPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROC -> Ptr () -> IO ()) -> GLDEBUGPROC -> Ptr () -> m ()
ffiDEBUGPROCAMDPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROCAMD -> Ptr () -> IO ()) -> GLDEBUGPROCAMD -> Ptr () -> m ()
ffiDEBUGPROCARBPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROCARB -> Ptr () -> IO ()) -> GLDEBUGPROCARB -> Ptr () -> m ()
ffiDEBUGPROCKHRPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ()) -> GLDEBUGPROCKHR -> Ptr () -> m ()
ffienumenumenumsizeiPtruintbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
ffienumenumsizeiPtruintbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
ffienumenumuintenumsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
ffienumenumuintsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
ffienumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
ffienumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
ffiuintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> IO ()) -> GLuint -> GLsizei -> m ()
ffiintPtrcharIOV :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> m ()
ffienumuintPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLuint -> m ()
ffisyncIOV :: MonadIO m => FunPtr (GLsync -> IO ()) -> GLsync -> m ()
fficlampdclampdIOV :: MonadIO m => FunPtr (GLclampd -> GLclampd -> IO ()) -> GLclampd -> GLclampd -> m ()
ffidoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> m ()
ffiuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffiuintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
ffiuintdoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> m ()
ffiuintfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> m ()
ffifloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> m ()
fficlampfclampfIOV :: MonadIO m => FunPtr (GLclampf -> GLclampf -> IO ()) -> GLclampf -> GLclampf -> m ()
ffifixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> m ()
ffienumsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
ffienumsizeiPtrenumIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> m ()
ffiuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffiintptrIOV :: MonadIO m => FunPtr (GLintptr -> IO ()) -> GLintptr -> m ()
ffienumintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> m ()
ffienumPtrVIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> IO ()) -> GLenum -> Ptr () -> m ()
ffienumintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> m ()
ffienumintsizeisizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
ffisizeiPtrenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLenum -> IO ()) -> GLsizei -> Ptr GLenum -> m ()
ffiintPtrenumPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLenum -> Ptr GLint -> m ()
ffienumPtruint64PtrsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
ffienumuintPtrintptrPtrsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
ffiPtruint64PtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
ffienumsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
ffienumsizeienumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
ffienumsizeienumPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
ffienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> Ptr () -> m ()
ffienumsizeienumPtrVsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
ffienumsizeienumPtrVsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
ffienumsizeienumPtrVsizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
ffienumsizeienumPtrVsizeiintuintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
ffisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffienumuintuintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
ffienumuintuintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> m ()
ffienumuintuintsizeienumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
ffienumuintuintsizeienumPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
ffifloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiintintintintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
ffishortshortshortshortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffifixedfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
ffienumuintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLsizei -> m ()
ffienumeglImageOESIOV :: MonadIO m => FunPtr (GLenum -> GLeglImageOES -> IO ()) -> GLenum -> GLeglImageOES -> m ()
ffisizeiIOV :: MonadIO m => FunPtr (GLsizei -> IO ()) -> GLsizei -> m ()
ffisizeiPtrVIOV :: MonadIO m => FunPtr (GLsizei -> Ptr () -> IO ()) -> GLsizei -> Ptr () -> m ()
ffisizeisizeiPtrbooleanIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ()) -> GLsizei -> GLsizei -> Ptr GLboolean -> m ()
ffiintPtrPtrbooleanintIOV :: MonadIO m => FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()) -> GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()
ffiPtrbooleanIOV :: MonadIO m => FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
ffienumintintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> m ()
ffienumintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
ffiintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> IO ()) -> GLint -> GLint -> m ()
ffienumuintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> Ptr GLfloat -> m ()
ffienumPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> Ptr (Ptr ()) -> m ()
ffiPtruintintPtrintIOV :: MonadIO m => FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ()) -> Ptr GLuint -> GLint -> Ptr GLint -> m ()
ffiuintenumPtrcharPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> m ()
ffiuintenumintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
ffienumintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintIOboolean :: MonadIO m => FunPtr (GLuint -> IO GLboolean) -> GLuint -> m GLboolean
ffisizeienumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr GLfloat -> m ()
ffisizeienumPtrfixedIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr GLfixed -> IO ()) -> GLsizei -> GLenum -> Ptr GLfixed -> m ()
ffienumbitfieldIOsync :: MonadIO m => FunPtr (GLenum -> GLbitfield -> IO GLsync) -> GLenum -> GLbitfield -> m GLsync
ffiPtruintIOint :: MonadIO m => FunPtr (Ptr GLuint -> IO GLint) -> Ptr GLuint -> m GLint
ffienumintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> m ()
ffiuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> m ()
ffienumintPtrPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
ffihalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> m ()
ffiuintsizeiPtrenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> m ()
ffienumenumenumuintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> m ()
ffienumuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffienumuintuintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLfloat -> m ()
ffienumenumuintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> m ()
ffienumenumenumuintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
ffienumenumenumuintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> m ()
ffienumenumenumuintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
ffienumenumenumuintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
ffienumenumuintintenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()
ffienumenumuintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
ffienumenumuintintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
ffienumenumuintintsizeiintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> m ()
ffienumenumuintintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> m ()
ffidoubledoubledoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffifixedfixedfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
ffisizeiIOuint :: MonadIO m => FunPtr (GLsizei -> IO GLuint) -> GLsizei -> m GLuint
ffiuintIOuint :: MonadIO m => FunPtr (GLuint -> IO GLuint) -> GLuint -> m GLuint
ffienumenumenumuintIOuint :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint) -> GLenum -> GLenum -> GLenum -> GLuint -> m GLuint
ffiuintuintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
ffiuintenumuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
ffiuintenumuintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
ffiuintuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
ffiuintsizeiPtruintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
ffihandleARBsizeiPtrsizeiPtrhandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
ffiuintsizeiPtrsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
ffiuintPtrcharIOint :: MonadIO m => FunPtr (GLuint -> Ptr GLchar -> IO GLint) -> GLuint -> Ptr GLchar -> m GLint
ffihandleARBPtrcharARBIOint :: MonadIO m => FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint) -> GLhandleARB -> Ptr GLcharARB -> m GLint
ffienumuintPtrbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ()) -> GLenum -> GLuint -> Ptr GLboolean -> m ()
ffienumPtrbooleanIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLboolean -> IO ()) -> GLenum -> Ptr GLboolean -> m ()
ffienumenumPtrint64IOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> Ptr GLint64 -> m ()
ffienumenumPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLenum -> Ptr GLuint64EXT -> m ()
ffienumenumPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
ffienumenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumenumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumuintIOuint :: MonadIO m => FunPtr (GLenum -> GLuint -> IO GLuint) -> GLenum -> GLuint -> m GLuint
ffienumenumintPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr () -> m ()
ffienumintPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLint -> Ptr () -> m ()
ffiuintintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr () -> m ()
ffiuintenumintPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr () -> m ()
ffiuintintintintintsizeisizeisizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> m GLuint
ffienumuintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> Ptr GLdouble -> m ()
ffiuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
ffiPtrintsizeiPtruintIOV :: MonadIO m => FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
ffiIOenum :: MonadIO m => FunPtr (IO GLenum) -> m GLenum
ffiuintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLint -> m ()
ffienumenumuintuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffiuintIOsizei :: MonadIO m => FunPtr (GLuint -> IO GLsizei) -> GLuint -> m GLsizei
ffienumbooleanenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintintbooleanintenumIOuint64 :: MonadIO m => FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64) -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
ffihandleARBsizeiPtrsizeiPtrcharARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
ffiIOint :: MonadIO m => FunPtr (IO GLint) -> m GLint
ffienumuintPtrint64IOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLenum -> GLuint -> Ptr GLint64 -> m ()
ffienumPtrint64IOV :: MonadIO m => FunPtr (GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> Ptr GLint64 -> m ()
ffienumuintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> Ptr GLint -> m ()
ffienumuintPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLuint -> Ptr GLuint64EXT -> m ()
ffienumPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> Ptr GLuint64EXT -> m ()
ffienumenumsizeienumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> m ()
ffienumenumenumsizeiPtrint64IOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
ffienumenumenumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
ffiuintenumPtrbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ()) -> GLuint -> GLenum -> Ptr GLboolean -> m ()
ffiuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr GLfloat -> m ()
ffienumuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
ffienumuintenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
ffienumuintenumsizeisizeibooleanPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> m ()
ffienumenumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> Ptr GLdouble -> m ()
ffienumenumenumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
ffienumenumintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumintenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
ffienumenumintenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
ffienumenumenumPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
ffiuintenumPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLint64 -> m ()
ffiuintenumPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
ffiuintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
ffiuintintptrsizeiptrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
ffiuintenumenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
ffiuintenumuintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
ffiuintenumuintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
ffiuintenumuintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
ffiuintenumuintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
ffiuintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr () -> m ()
ffiintPtrcharsizeiPtrintPtrcharIOV :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()
ffiintPtrcharenumPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()
ffienumuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
ffihandleARBenumPtrfloatIOV :: MonadIO m => FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLfloat -> m ()
ffihandleARBenumPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLint -> m ()
ffiPtrVsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
ffiuintenumPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> Ptr GLuint -> m ()
ffiuintPtrubyteIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLubyte -> IO ()) -> GLuint -> Ptr GLubyte -> m ()
ffiuintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> Ptr GLfloat -> m ()
ffiuintsizeisizeiIOfloat :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> IO GLfloat) -> GLuint -> GLsizei -> GLsizei -> m GLfloat
ffibitfielduintsizeisizeiPtrfloatIOV :: MonadIO m => FunPtr (GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()
ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()
ffiuintenumsizeiPtruintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()
ffiuintuintenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr () -> m ()
ffiuintPtrintPtrintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
ffiuintuintsizeiPtrVPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> m ()
ffiPtrcharPtruintIOV :: MonadIO m => FunPtr (Ptr GLchar -> Ptr GLuint -> IO ()) -> Ptr GLchar -> Ptr GLuint -> m ()
ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
ffienumPtrushortIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLushort -> IO ()) -> GLenum -> Ptr GLushort -> m ()
ffienumintPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> Ptr GLfixed -> m ()
ffienumuintPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
ffiuintsizeiPtrsizeiPtrenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
ffiuintsizeiPtrubytePtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()
ffiuintsizeiPtrubytePtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()
ffienumuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()
ffiuintenumPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint) -> GLuint -> GLenum -> Ptr GLchar -> m GLuint
ffiuintenumPtrcharIOint :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint) -> GLuint -> GLenum -> Ptr GLchar -> m GLint
ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()
ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
ffiuintenumPtrubyteIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ()) -> GLuint -> GLenum -> Ptr GLubyte -> m ()
ffiuintuintenumintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptr -> m ()
ffiuintenumPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64 -> m ()
ffienumenumenumPtrVPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()
ffienumenumPtrintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
ffienumIOushort :: MonadIO m => FunPtr (GLenum -> IO GLushort) -> GLenum -> m GLushort
ffienumIOPtrubyte :: MonadIO m => FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> m (Ptr GLubyte)
ffienumuintIOPtrubyte :: MonadIO m => FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte)) -> GLenum -> GLuint -> m (Ptr GLubyte)
ffisyncenumsizeiPtrsizeiPtrintIOV :: MonadIO m => FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
ffienumintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumintenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
ffienumintenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
ffienumintenumPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()
ffienumenumPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> Ptr GLuint -> m ()
ffiuintIOuint64 :: MonadIO m => FunPtr (GLuint -> IO GLuint64) -> GLuint -> m GLuint64
ffiuintintenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintenumintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
ffiuintenumintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
ffiuintintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
ffiuintenumenumPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
ffiuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffiuintuintIOuint64 :: MonadIO m => FunPtr (GLuint -> GLuint -> IO GLuint64) -> GLuint -> GLuint -> m GLuint64
ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintuintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> Ptr GLint -> m ()
ffiuintenumuintPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
ffiuintPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> Ptr GLchar -> IO GLuint) -> GLuint -> Ptr GLchar -> m GLuint
ffiuintintIOint :: MonadIO m => FunPtr (GLuint -> GLint -> IO GLint) -> GLuint -> GLint -> m GLint
ffiuintsizeiPtrPtrcharPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
ffiuintintIOintptr :: MonadIO m => FunPtr (GLuint -> GLint -> IO GLintptr) -> GLuint -> GLint -> m GLintptr
ffiuintintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> Ptr GLdouble -> m ()
ffiuintintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> Ptr GLfloat -> m ()
ffihandleARBintPtrfloatIOV :: MonadIO m => FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLint -> Ptr GLfloat -> m ()
ffiuintintPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> Ptr GLint64 -> m ()
ffiuintintPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLint64EXT -> m ()
ffiuintintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLint -> Ptr GLint -> m ()
ffihandleARBintPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ()) -> GLhandleARB -> GLint -> Ptr GLint -> m ()
ffiuintintPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> Ptr GLuint64 -> m ()
ffiuintintPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLuint64EXT -> m ()
ffiuintintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> Ptr GLuint -> m ()
ffiuintuintenumPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
ffiuintuintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
ffiuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> Ptr GLdouble -> m ()
ffiuintenumPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLint64EXT -> m ()
ffiuintuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
ffiuintuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
ffienumenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLsizei -> Ptr () -> m ()
ffienumbooleanenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumenumsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
ffienumenumsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
ffienumenumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
ffienumsizeiPtrushortIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ()) -> GLenum -> GLsizei -> Ptr GLushort -> m ()
ffisizeiPtrubyteIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLubyte -> IO ()) -> GLsizei -> Ptr GLubyte -> m ()
ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()
ffienumintenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
ffiuintintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
ffiuintintsizeiPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
ffiuintintsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
ffiuintintsizeiPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
ffiuintintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
ffibyteIOV :: MonadIO m => FunPtr (GLbyte -> IO ()) -> GLbyte -> m ()
ffishortIOV :: MonadIO m => FunPtr (GLshort -> IO ()) -> GLshort -> m ()
ffiubyteIOV :: MonadIO m => FunPtr (GLubyte -> IO ()) -> GLubyte -> m ()
ffiushortIOV :: MonadIO m => FunPtr (GLushort -> IO ()) -> GLushort -> m ()
ffienumsizeienumbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
ffienumintptrbitfieldIOsync :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLbitfield -> IO GLsync) -> GLenum -> GLintptr -> GLbitfield -> m GLsync
ffienumsizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
ffisizeiPtrcharIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLchar -> IO ()) -> GLsizei -> Ptr GLchar -> m ()
ffisizeiPtrintIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> IO ()) -> GLsizei -> Ptr GLint -> m ()
ffiuintuintuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> GLfloat -> m ()
ffiuintsizeiPtrenumintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffienumsizeiPtrenumintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffiuintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> IO ()) -> GLuint -> GLint -> m ()
ffiuintintintintintsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
ffienumIOboolean :: MonadIO m => FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
ffienumuintIOboolean :: MonadIO m => FunPtr (GLenum -> GLuint -> IO GLboolean) -> GLenum -> GLuint -> m GLboolean
ffiuint64IOboolean :: MonadIO m => FunPtr (GLuint64 -> IO GLboolean) -> GLuint64 -> m GLboolean
ffiintPtrcharIOboolean :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> IO GLboolean) -> GLint -> Ptr GLchar -> m GLboolean
ffiuintuintfloatfloatIOboolean :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean
ffiuintfloatfloatIOboolean :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLfloat -> GLfloat -> m GLboolean
ffisyncIOboolean :: MonadIO m => FunPtr (GLsync -> IO GLboolean) -> GLsync -> m GLboolean
ffiuintenumIOboolean :: MonadIO m => FunPtr (GLuint -> GLenum -> IO GLboolean) -> GLuint -> GLenum -> m GLboolean
ffienumuintsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
ffiintushortIOV :: MonadIO m => FunPtr (GLint -> GLushort -> IO ()) -> GLint -> GLushort -> m ()
ffiuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
ffiuintenumfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLfloat -> m ()
ffiuintenumintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> m ()
ffienumuintsizeiPtrubyteIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
ffiintsizeiIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> IO ()) -> GLint -> GLsizei -> m ()
ffiuint64IOV :: MonadIO m => FunPtr (GLuint64 -> IO ()) -> GLuint64 -> m ()
ffiuint64enumIOV :: MonadIO m => FunPtr (GLuint64 -> GLenum -> IO ()) -> GLuint64 -> GLenum -> m ()
ffienumdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
ffienumfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
ffienumfixedfixedintintfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
ffienumfloatfloatintintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
ffienumfixedfixedintintfixedfixedintintfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
ffienumenumIOPtrV :: MonadIO m => FunPtr (GLenum -> GLenum -> IO (Ptr ())) -> GLenum -> GLenum -> m (Ptr ())
ffienumintptrsizeiptrbitfieldIOPtrV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
ffienumuintenumsizeisizeiintintbooleanPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> m ()
ffiintdoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> m ()
ffiintfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> m ()
ffiintfixedfixedIOV :: MonadIO m => FunPtr (GLint -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> m ()
ffiintdoubledoubleintdoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
ffiintfloatfloatintfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
ffiintfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
ffiuintenumIOPtrV :: MonadIO m => FunPtr (GLuint -> GLenum -> IO (Ptr ())) -> GLuint -> GLenum -> m (Ptr ())
ffiuintintptrsizeiptrbitfieldIOPtrV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
ffiuintIOPtrV :: MonadIO m => FunPtr (GLuint -> IO (Ptr ())) -> GLuint -> m (Ptr ())
ffiuintintbitfieldPtrintPtrenumIOPtrV :: MonadIO m => FunPtr (GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr ())) -> GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> m (Ptr ())
ffiuintuintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
ffiuintuintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
ffienumdoubledoubledoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiintPtrubyteIOV :: MonadIO m => FunPtr (GLint -> Ptr GLubyte -> IO ()) -> GLint -> Ptr GLubyte -> m ()
ffiintPtruintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLuint -> IO ()) -> GLint -> Ptr GLuint -> m ()
ffiintPtrushortIOV :: MonadIO m => FunPtr (GLint -> Ptr GLushort -> IO ()) -> GLint -> Ptr GLushort -> m ()
ffienumdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffienumfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffienumdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
ffienumfloatfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
ffienumenumbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLboolean -> m ()
ffienumPtrintPtrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
ffienumPtrVsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
ffienumPtrVsizeisizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
ffienumPtrVsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
ffienumintptrintptrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
ffienumPtrsizeienumPtrPtrVsizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
ffienumenumPtrVsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
ffienumenumPtrVsizeisizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
ffienumenumPtrVsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
ffienumenumintptrintptrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
ffienumuintuintPtrintPtrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
ffiPtrenumPtrintPtrsizeisizeiintIOV :: MonadIO m => FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()
ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV :: MonadIO m => FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> m ()
ffienumbyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> IO ()) -> GLenum -> GLbyte -> m ()
ffienumPtrbyteIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLbyte -> IO ()) -> GLenum -> Ptr GLbyte -> m ()
ffienumdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> IO ()) -> GLenum -> GLdouble -> m ()
ffienumhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> m ()
ffienumPtrhalfNVIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLhalfNV -> IO ()) -> GLenum -> Ptr GLhalfNV -> m ()
ffienumshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> IO ()) -> GLenum -> GLshort -> m ()
ffienumPtrshortIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLshort -> IO ()) -> GLenum -> Ptr GLshort -> m ()
ffienumbytebyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> m ()
ffienumdoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> m ()
ffienumfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> m ()
ffienumhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> m ()
ffienumshortshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> m ()
ffienumfixedfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> m ()
ffienumbytebytebyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
ffienumhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffienumintintintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> m ()
ffienumshortshortshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> m ()
ffienumfixedfixedfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> m ()
ffienumbytebytebytebyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
ffienumhalfNVhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffienumshortshortshortshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
ffienumfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
ffienumintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumenumenumfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLfloat -> m ()
ffienumenumenumintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLint -> m ()
ffienumenumenumdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> GLdouble -> m ()
ffienumenumintintsizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumintintsizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintsizeiptrPtrVenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
ffiuintintptrsizeiptrbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
ffiuintsizeiptrPtrVbitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
ffiuintenumenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
ffiuintuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffiuintuintuintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
ffiuintenumuintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> m ()
ffiuintenumenumuintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
ffiuintenumenumuintintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
ffiuintenumuintintenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()
ffiuintenumuintintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
ffiuintenumuintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuintenumuintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiuintenumuintintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
ffiuintenumuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffiuintenumuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffiuintenumuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
ffiuintenumuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
ffiuintenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintenumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
ffiuintsizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
ffiuintsizeisizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
ffienumintPtrcharintPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ()) -> GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()
ffisizeiPtrVenumIOuint :: MonadIO m => FunPtr (GLsizei -> Ptr () -> GLenum -> IO GLuint) -> GLsizei -> Ptr () -> GLenum -> m GLuint
ffiPtrVsizeiPtrcharIOV :: MonadIO m => FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLchar -> m ()
ffienumuintenumIOenum :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum) -> GLenum -> GLuint -> GLenum -> m GLenum
ffiuintuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> m ()
ffiuintsizeiPtrubytesizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
ffiuintsizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
ffienumPtrVbitfielduintfloatPtruintIOenum :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum) -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum
ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()
ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> m ()
ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
ffienumintuintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLint -> GLuint -> m ()
ffiuintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
ffiuintsizeisizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> m ()
ffienumenumintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr GLfloat -> m ()
ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean) -> GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean
ffiPtrintIOint :: MonadIO m => FunPtr (Ptr GLint -> IO GLint) -> Ptr GLint -> m GLint
ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> m ()
ffifloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffisizeiPtruintPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
ffisizeiPtruintPtrclampfIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLclampf -> m ()
ffisizeiPtruintPtrfixedIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfixed -> m ()
ffiuintenumPtrVsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
ffiuintenumPtrVintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLint -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLint -> m ()
ffienumuintuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> m ()
ffienumuintuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> m ()
ffienumuintuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffienumuintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffienumuintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffienumuintintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
ffienumuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
ffiuintsizeiPtrubytedoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuintsizeiPtrubytefloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffienumuintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
ffiuintintenumintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()
ffienumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintintdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> m ()
ffiuintintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> m ()
ffiuintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> m ()
ffiuintintint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> m ()
ffiuintintint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> m ()
ffiuintintsizeiPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
ffiuintintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> m ()
ffiuintintuint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> m ()
ffiuintintuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> m ()
ffiuintintsizeiPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
ffiuintintdoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> m ()
ffiuintintfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> m ()
ffiuintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> m ()
ffiuintintint64int64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> m ()
ffiuintintint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
ffiuintintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> m ()
ffiuintintuint64uint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> m ()
ffiuintintuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
ffiuintintdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuintintfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiuintintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
ffiuintintint64int64int64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
ffiuintintint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
ffiuintintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
ffiuintintuint64uint64uint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
ffiuintintuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
ffiuintintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuintintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiuintintintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
ffiuintintint64int64int64int64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
ffiuintintint64EXTint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
ffiuintintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffiuintintuint64uint64uint64uint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
ffiuintintsizeibooleanPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
ffiuintintsizeibooleanPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
ffiPtrfixedPtrintIObitfield :: MonadIO m => FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLbitfield) -> Ptr GLfixed -> Ptr GLint -> m GLbitfield
ffienumuintenumuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
ffishortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> m ()
ffiuintbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLboolean -> IO ()) -> GLuint -> GLboolean -> m ()
ffiintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffiintintsizeisizeienumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffiPtrdoublePtrdoubleIOV :: MonadIO m => FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ()) -> Ptr GLdouble -> Ptr GLdouble -> m ()
ffiPtrintPtrintIOV :: MonadIO m => FunPtr (Ptr GLint -> Ptr GLint -> IO ()) -> Ptr GLint -> Ptr GLint -> m ()
ffiPtrshortPtrshortIOV :: MonadIO m => FunPtr (Ptr GLshort -> Ptr GLshort -> IO ()) -> Ptr GLshort -> Ptr GLshort -> m ()
ffiPtrfixedPtrfixedIOV :: MonadIO m => FunPtr (Ptr GLfixed -> Ptr GLfixed -> IO ()) -> Ptr GLfixed -> Ptr GLfixed -> m ()
ffienumIOint :: MonadIO m => FunPtr (GLenum -> IO GLint) -> GLenum -> m GLint
ffienumenumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
ffienumsizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
ffienumsizeisizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
ffienumsizeiPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
ffiuintfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtruintPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtruintPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
ffiuintubyteubyteubyteubytefloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtruintPtrubytePtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> m ()
ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiuintfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiuintfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtruintPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> m ()
ffifloatbooleanIOV :: MonadIO m => FunPtr (GLfloat -> GLboolean -> IO ()) -> GLfloat -> GLboolean -> m ()
fficlampxbooleanIOV :: MonadIO m => FunPtr (GLclampx -> GLboolean -> IO ()) -> GLclampx -> GLboolean -> m ()
fficlampfbooleanIOV :: MonadIO m => FunPtr (GLclampf -> GLboolean -> IO ()) -> GLclampf -> GLboolean -> m ()
ffiuintbitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLbitfield -> IO ()) -> GLuint -> GLbitfield -> m ()
ffiintintsizeisizeiIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffiuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> m ()
ffiuintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
ffiuintPtrintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLint -> IO ()) -> GLuint -> Ptr GLint -> m ()
ffiuintbooleanuintintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()
ffienumenumsizeisizeienumenumPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
ffiuintenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> Ptr () -> m ()
ffisizeiPtruintenumPtrVsizeiIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
ffienumuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> m ()
ffienumuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffihandleARBsizeiPtrPtrcharARBPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()) -> GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()
ffiuintuintuintuintbitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> m ()
ffisizeiuintIOV :: MonadIO m => FunPtr (GLsizei -> GLuint -> IO ()) -> GLsizei -> GLuint -> m ()
ffisizeienumPtrVuintenumuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
ffiuintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> m ()
ffienumenumintuintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLenum -> GLint -> GLuint -> m ()
ffienumenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> m ()
ffisizeienumPtrVuintintuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffiuintenumuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> m ()
ffisizeienumPtrVuintintuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffiuintintuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLint -> GLuint -> GLenum -> m ()
ffiuintuintenumenumenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffienumenumuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
ffibytebyteIOV :: MonadIO m => FunPtr (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> m ()
ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiPtrfloatPtrubytePtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> m ()
ffihalfNVhalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> m ()
ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffienumenumdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLdouble -> m ()
ffienumintintsizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumintintsizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumsizeienumsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
ffienumsizeisizeiintsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
ffienumintintsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumintenumsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumsizeienumsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
ffienumsizeisizeiintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffienumintintintintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
ffienumsizeienumsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
ffienumsizeienumsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
ffienumenumsizeisizeisizeisizeibitfieldIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
ffienumintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffienumintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
ffiuintenumenumuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
ffiuintenumintintsizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumintintsizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumsizeisizeiintsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
ffiuintenumsizeiintsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
ffiuintenumsizeiintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
ffiuintintintintintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
ffiuintenumenumfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> GLfloat -> m ()
ffiuintenumenumintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLint -> m ()
ffiuintsizeienumsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
ffiuintenumsizeienumsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
ffiuintenumsizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
ffiuintsizeienumsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
ffiuintenumsizeienumsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
ffiuintsizeienumsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
ffiuintenumsizeienumsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
ffiuintsizeienumsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
ffiuintenumsizeienumsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
ffiuintenumenumsizeisizeisizeisizeibitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
ffiuintintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffiuintenumuintenumuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffienumuintenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLenum -> IO ()) -> GLenum -> GLuint -> GLenum -> GLenum -> m ()
ffisizeiPtrintenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLenum -> m ()
ffiuintuintuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
ffisizeiPtrintsizeiPtrintenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()
ffiuintsizeiPtrPtrcharenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
ffiuintsizeiPtrintenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()
ffiintdoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> IO ()) -> GLint -> GLdouble -> m ()
ffiintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> Ptr GLdouble -> m ()
ffiintfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> IO ()) -> GLint -> GLfloat -> m ()
ffiintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> Ptr GLfloat -> m ()
ffiintint64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> IO ()) -> GLint -> GLint64 -> m ()
ffiintint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> m ()
ffiintsizeiPtrint64IOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLint64 -> m ()
ffiintsizeiPtrint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
ffiintsizeiPtrintIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLint -> GLsizei -> Ptr GLint -> m ()
ffiintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> IO ()) -> GLint -> GLuint -> m ()
ffiintuint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> m ()
ffiintuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> m ()
ffiintsizeiPtruint64IOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
ffiintsizeiPtruint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
ffiintsizeiPtruintIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLint -> GLsizei -> Ptr GLuint -> m ()
ffiintint64int64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> m ()
ffiintint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> m ()
ffiintuintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> m ()
ffiintuint64uint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> m ()
ffiintuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
ffiintdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiintfloatfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiintint64int64int64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
ffiintint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
ffiintuintuintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> m ()
ffiintuint64uint64uint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
ffiintuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
ffiintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiintint64int64int64int64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
ffiintint64EXTint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
ffiintuintuintuintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffiintuint64uint64uint64uint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
ffiintsizeibooleanPtrdoubleIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
ffiintsizeibooleanPtrfloatIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
ffiuintuintsizeiPtrVenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
ffiuintbitfielduintIOV :: MonadIO m => FunPtr (GLuint -> GLbitfield -> GLuint -> IO ()) -> GLuint -> GLbitfield -> GLuint -> m ()
ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
ffiPtrVPtrVIOV :: MonadIO m => FunPtr (Ptr () -> Ptr () -> IO ()) -> Ptr () -> Ptr () -> m ()
ffivdpauSurfaceNVIOboolean :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> IO GLboolean) -> GLvdpauSurfaceNV -> m GLboolean
ffisizeiPtrvdpauSurfaceNVIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()) -> GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV :: MonadIO m => FunPtr (Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV) -> Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
ffivdpauSurfaceNVenumIOV :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> m ()
ffivdpauSurfaceNVIOV :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> IO ()) -> GLvdpauSurfaceNV -> m ()
ffiuintenumsizeiuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
ffiuintenumuintPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr () -> m ()
ffiuintPtrbyteIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLbyte -> IO ()) -> GLuint -> Ptr GLbyte -> m ()
ffiuintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> Ptr GLdouble -> m ()
ffiuintPtrshortIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLshort -> IO ()) -> GLuint -> Ptr GLshort -> m ()
ffiuintPtrushortIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLushort -> IO ()) -> GLuint -> Ptr GLushort -> m ()
ffiuintuintintenumbooleanuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
ffiuintuintintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
ffiuintuintuintintptrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
ffiuintuintintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
ffiuintuintsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLsizei -> GLintptr -> m ()
ffiuintuintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
ffiuintuintenumintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
ffiuintuintuintintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
ffiuintuintuintintenumbooleansizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
ffiuintdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> IO ()) -> GLuint -> GLdouble -> m ()
ffiuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> IO ()) -> GLuint -> GLfloat -> m ()
ffiuinthalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> m ()
ffiuintPtrhalfNVIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLhalfNV -> IO ()) -> GLuint -> Ptr GLhalfNV -> m ()
ffiuintshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> IO ()) -> GLuint -> GLshort -> m ()
ffiuinthalfNVhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> m ()
ffiuintshortshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> m ()
ffiuintdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuinthalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffiuintshortshortshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> m ()
ffiuintubyteubyteubyteubyteIOV :: MonadIO m => FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
ffiuintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiuinthalfNVhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
ffiuintshortshortshortshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
ffiuintintenumbooleansizeiuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()
ffiuintintenumbooleanuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
ffiuintintenumbooleansizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> m ()
ffiuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffiuintintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLuint -> m ()
ffiuintintenumsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> m ()
ffiuintintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
ffiuintint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> m ()
ffiuintPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLint64EXT -> IO ()) -> GLuint -> Ptr GLint64EXT -> m ()
ffiuintuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> m ()
ffiuintPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> Ptr GLuint64EXT -> m ()
ffiuintint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> m ()
ffiuintuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> m ()
ffiuintint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
ffiuintuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
ffiuintint64EXTint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
ffiuintenumbooleanuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> GLuint -> m ()
ffiuintenumbooleanPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
ffiuintintenumbooleansizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
ffiuintsizeiPtrhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ()) -> GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
ffiuintsizeiPtrshortIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()) -> GLuint -> GLsizei -> Ptr GLshort -> m ()
ffiuintsizeiPtrubyteIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
ffiuintPtruintPtruint64EXTIOenum :: MonadIO m => FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum) -> GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum
ffisyncbitfielduint64IOV :: MonadIO m => FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ()) -> GLsync -> GLbitfield -> GLuint64 -> m ()
ffiuintsizeiPtruintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
ffiintPtrbyteIOV :: MonadIO m => FunPtr (GLint -> Ptr GLbyte -> IO ()) -> GLint -> Ptr GLbyte -> m ()
ffiintPtrdoubleIOV :: MonadIO m => FunPtr (GLint -> Ptr GLdouble -> IO ()) -> GLint -> Ptr GLdouble -> m ()
ffiintPtrfloatIOV :: MonadIO m => FunPtr (GLint -> Ptr GLfloat -> IO ()) -> GLint -> Ptr GLfloat -> m ()
ffiintPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLint -> IO ()) -> GLint -> Ptr GLint -> m ()
ffiintPtrshortIOV :: MonadIO m => FunPtr (GLint -> Ptr GLshort -> IO ()) -> GLint -> Ptr GLshort -> m ()
ffienumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLsizei -> Ptr GLint -> m ()


-- | This module offers a portable way to retrieve OpenGL extension
--   entries, providing a portability layer upon platform-specific
--   mechanisms like <tt>glXGetProcAddress</tt>, <tt>wglGetProcAddress</tt>
--   or <tt>NSAddressOfSymbol</tt>.
--   
--   This internal module offers convenience functions and re-exports for
--   OpenGL extension loading.
module Graphics.GL.Internal.Proc

-- | Retrieve an OpenGL extension entry by name. Returns <a>nullFunPtr</a>
--   when no extension entry with the given name was found.
getProcAddress :: String -> IO (FunPtr a)
type Invoker a = FunPtr a -> a
extensions :: Set String

module Graphics.GL.Internal.Shared

-- | Usage: <tt><a>glAccum</a> op value</tt>
--   
--   The parameter <tt>op</tt> is a <tt>AccumOp</tt>, one of:
--   <a>GL_ACCUM</a>, <a>GL_LOAD</a>, <a>GL_RETURN</a>, <a>GL_MULT</a>,
--   <a>GL_ADD</a>.
--   
--   The parameter <tt>value</tt> is a <tt>CoordF</tt>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()
glAccumFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glAlphaFunc</a> func ref</tt>
--   
--   The parameter <tt>func</tt> is a <tt>AlphaFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()
glAlphaFuncFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glAreTexturesResident</a> n textures residences</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>residences</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   The length of <tt>residences</tt> should be <tt>n</tt>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
glAreTexturesResidentFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)

-- | Usage: <tt><a>glArrayElement</a> i</tt>
glArrayElement :: MonadIO m => GLint -> m ()
glArrayElementFunPtr :: FunPtr (GLint -> IO ())

-- | Usage: <tt><a>glBegin</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
glBegin :: MonadIO m => GLenum -> m ()
glBeginFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glBitmap</a> width height xorig yorig xmove ymove
--   bitmap</tt>
--   
--   The parameter <tt>xorig</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>yorig</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>xmove</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>ymove</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>bitmap</tt> should be
--   <tt>COMPSIZE(width,height)</tt>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
glBitmapFunPtr :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glCallList</a> list</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
glCallList :: MonadIO m => GLuint -> m ()
glCallListFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glCallLists</a> n type lists</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ListNameType</tt>, one of:
--   <a>GL_2_BYTES</a>, <a>GL_3_BYTES</a>, <a>GL_4_BYTES</a>,
--   <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>,
--   <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>lists</tt> should be <tt>COMPSIZE(n,type)</tt>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr () -> m ()
glCallListsFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glClearAccum</a> red green blue alpha</tt>
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glClearAccumFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glClearIndex</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>MaskedColorIndexValueF</tt>.
glClearIndex :: MonadIO m => GLfloat -> m ()
glClearIndexFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glClientActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()
glClientActiveTextureFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glClipPlane</a> plane equation</tt>
--   
--   The parameter <tt>plane</tt> is a <tt>ClipPlaneName</tt>, one of:
--   <a>GL_CLIP_DISTANCE0</a>, <a>GL_CLIP_DISTANCE1</a>,
--   <a>GL_CLIP_DISTANCE2</a>, <a>GL_CLIP_DISTANCE3</a>,
--   <a>GL_CLIP_DISTANCE4</a>, <a>GL_CLIP_DISTANCE5</a>,
--   <a>GL_CLIP_DISTANCE6</a>, <a>GL_CLIP_DISTANCE7</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>.
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glColor3b</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   The vector equivalent of this command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())

-- | Usage: <tt><a>glColor3bv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()
glColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())

-- | Usage: <tt><a>glColor3d</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   The vector equivalent of this command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glColor3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()
glColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glColor3f</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glColor3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()
glColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glColor3i</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   The vector equivalent of this command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glColor3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()
glColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glColor3s</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   The vector equivalent of this command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glColor3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()
glColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glColor3ub</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
glColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())

-- | Usage: <tt><a>glColor3ubv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
glColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glColor3ui</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   The vector equivalent of this command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glColor3uiv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()
glColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())

-- | Usage: <tt><a>glColor3us</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   The vector equivalent of this command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
glColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())

-- | Usage: <tt><a>glColor3usv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()
glColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())

-- | Usage: <tt><a>glColor4b</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorB</tt>.
--   
--   The vector equivalent of this command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glColor4bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())

-- | Usage: <tt><a>glColor4bv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()
glColor4bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())

-- | Usage: <tt><a>glColor4d</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorD</tt>.
--   
--   The vector equivalent of this command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glColor4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glColor4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()
glColor4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glColor4f</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glColor4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()
glColor4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glColor4i</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorI</tt>.
--   
--   The vector equivalent of this command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glColor4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glColor4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()
glColor4ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glColor4s</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorS</tt>.
--   
--   The vector equivalent of this command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
glColor4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glColor4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()
glColor4svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glColor4ub</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
glColor4ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())

-- | Usage: <tt><a>glColor4ubv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()
glColor4ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glColor4ui</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUI</tt>.
--   
--   The vector equivalent of this command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
glColor4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glColor4uiv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()
glColor4uivFunPtr :: FunPtr (Ptr GLuint -> IO ())

-- | Usage: <tt><a>glColor4us</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUS</tt>.
--   
--   The vector equivalent of this command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()
glColor4usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())

-- | Usage: <tt><a>glColor4usv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()
glColor4usvFunPtr :: FunPtr (Ptr GLushort -> IO ())

-- | Usage: <tt><a>glColorMaterial</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>ColorMaterialParameter</tt>, one
--   of: <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>, <a>GL_SPECULAR</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorMaterialFunPtr :: FunPtr (GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glColorPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCopyPixels</a> x y width height type</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelCopyType</tt>, one of:
--   <a>GL_COLOR</a>, <a>GL_COLOR_EXT</a>, <a>GL_DEPTH</a>,
--   <a>GL_DEPTH_EXT</a>, <a>GL_STENCIL</a>, <a>GL_STENCIL_EXT</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
glCopyPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())

-- | Usage: <tt><a>glDeleteLists</a> list range</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()
glDeleteListsFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())

-- | Usage: <tt><a>glDisableClientState</a> array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()
glDisableClientStateFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glDrawPixels</a> width height format type pixels</tt>
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glDrawPixelsFunPtr :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glEdgeFlag</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The vector equivalent of this command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()
glEdgeFlagFunPtr :: FunPtr (GLboolean -> IO ())

-- | Usage: <tt><a>glEdgeFlagPointer</a> stride pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>COMPSIZE(stride)</tt>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr () -> m ()
glEdgeFlagPointerFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glEdgeFlagv</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>flag</tt> should be <tt>1</tt>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()
glEdgeFlagvFunPtr :: FunPtr (Ptr GLboolean -> IO ())

-- | Usage: <tt><a>glEnableClientState</a> array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()
glEnableClientStateFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glEnd</a></tt>
glEnd :: MonadIO m => m ()
glEndFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glEndList</a></tt>
glEndList :: MonadIO m => m ()
glEndListFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glEvalCoord1d</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()
glEvalCoord1dFunPtr :: FunPtr (GLdouble -> IO ())

-- | Usage: <tt><a>glEvalCoord1dv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>u</tt> should be <tt>1</tt>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
glEvalCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glEvalCoord1f</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()
glEvalCoord1fFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glEvalCoord1fv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>u</tt> should be <tt>1</tt>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
glEvalCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glEvalCoord2d</a> u v</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
glEvalCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glEvalCoord2dv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>u</tt> should be <tt>2</tt>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
glEvalCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glEvalCoord2f</a> u v</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
glEvalCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glEvalCoord2fv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>u</tt> should be <tt>2</tt>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
glEvalCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glEvalMesh1</a> mode i1 i2</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MeshMode1</tt>, one of:
--   <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   The parameter <tt>i1</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>i2</tt> is a <tt>CheckedInt32</tt>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()
glEvalMesh1FunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glEvalMesh2</a> mode i1 i2 j1 j2</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MeshMode2</tt>, one of:
--   <a>GL_FILL</a>, <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   The parameter <tt>i1</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>i2</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>j1</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>j2</tt> is a <tt>CheckedInt32</tt>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
glEvalMesh2FunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glEvalPoint1</a> i</tt>
glEvalPoint1 :: MonadIO m => GLint -> m ()
glEvalPoint1FunPtr :: FunPtr (GLint -> IO ())

-- | Usage: <tt><a>glEvalPoint2</a> i j</tt>
--   
--   The parameter <tt>i</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>j</tt> is a <tt>CheckedInt32</tt>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()
glEvalPoint2FunPtr :: FunPtr (GLint -> GLint -> IO ())

-- | Usage: <tt><a>glFeedbackBuffer</a> size type buffer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>FeedbackType</tt>, one of:
--   <a>GL_2D</a>, <a>GL_3D</a>, <a>GL_3D_COLOR</a>,
--   <a>GL_3D_COLOR_TEXTURE</a>, <a>GL_4D_COLOR_TEXTURE</a>.
--   
--   The parameter <tt>buffer</tt> is a <tt>FeedbackElement</tt>.
--   
--   The length of <tt>buffer</tt> should be <tt>size</tt>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()
glFeedbackBufferFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glFogCoordPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>FogPointerTypeEXT</tt>, one of:
--   <a>GL_FLOAT</a>, <a>GL_DOUBLE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glFogCoordPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glFogCoordd</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()
glFogCoorddFunPtr :: FunPtr (GLdouble -> IO ())

-- | Usage: <tt><a>glFogCoorddv</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>coord</tt> should be <tt>1</tt>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()
glFogCoorddvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glFogCoordf</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()
glFogCoordfFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glFogCoordfv</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>coord</tt> should be <tt>1</tt>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()
glFogCoordfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glFogf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()
glFogfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glFogfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glFogfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glFogi</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()
glFogiFunPtr :: FunPtr (GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glFogiv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glFogivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glFrustum</a> left right bottom top zNear zFar</tt>
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glFrustumFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glGenLists</a> range</tt>
glGenLists :: MonadIO m => GLsizei -> m GLuint
glGenListsFunPtr :: FunPtr (GLsizei -> IO GLuint)

-- | Usage: <tt><a>glGetClipPlane</a> plane equation</tt>
--   
--   The parameter <tt>plane</tt> is a <tt>ClipPlaneName</tt>, one of:
--   <a>GL_CLIP_DISTANCE0</a>, <a>GL_CLIP_DISTANCE1</a>,
--   <a>GL_CLIP_DISTANCE2</a>, <a>GL_CLIP_DISTANCE3</a>,
--   <a>GL_CLIP_DISTANCE4</a>, <a>GL_CLIP_DISTANCE5</a>,
--   <a>GL_CLIP_DISTANCE6</a>, <a>GL_CLIP_DISTANCE7</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>.
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glGetClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glGetLightfv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetLightiv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetMapdv</a> target query v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>query</tt> is a <tt>GetMapQuery</tt>, one of:
--   <a>GL_COEFF</a>, <a>GL_DOMAIN</a>, <a>GL_ORDER</a>.
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(target,query)</tt>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
glGetMapdvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glGetMapfv</a> target query v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>query</tt> is a <tt>GetMapQuery</tt>, one of:
--   <a>GL_COEFF</a>, <a>GL_DOMAIN</a>, <a>GL_ORDER</a>.
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(target,query)</tt>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMapfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetMapiv</a> target query v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>query</tt> is a <tt>GetMapQuery</tt>, one of:
--   <a>GL_COEFF</a>, <a>GL_DOMAIN</a>, <a>GL_ORDER</a>.
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(target,query)</tt>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMapivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetMaterialfv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetMaterialiv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetPixelMapfv</a> map values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(map)</tt>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetPixelMapfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetPixelMapuiv</a> map values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(map)</tt>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glGetPixelMapuivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetPixelMapusv</a> map values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(map)</tt>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()
glGetPixelMapusvFunPtr :: FunPtr (GLenum -> Ptr GLushort -> IO ())

-- | Usage: <tt><a>glGetPointerv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPointervPName</tt>, one of:
--   <a>GL_COLOR_ARRAY_POINTER</a>, <a>GL_COLOR_ARRAY_POINTER_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER_EXT</a>,
--   <a>GL_FEEDBACK_BUFFER_POINTER</a>, <a>GL_INDEX_ARRAY_POINTER</a>,
--   <a>GL_INDEX_ARRAY_POINTER_EXT</a>,
--   <a>GL_INSTRUMENT_BUFFER_POINTER_SGIX</a>,
--   <a>GL_NORMAL_ARRAY_POINTER</a>, <a>GL_NORMAL_ARRAY_POINTER_EXT</a>,
--   <a>GL_SELECTION_BUFFER_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER_EXT</a>,
--   <a>GL_VERTEX_ARRAY_POINTER</a>, <a>GL_VERTEX_ARRAY_POINTER_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml</a>
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
glGetPointervFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())

-- | Usage: <tt><a>glGetPolygonStipple</a> mask</tt>
--   
--   The length of <tt>mask</tt> should be <tt>COMPSIZE()</tt>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
glGetPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glGetTexEnvfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetTexEnviv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTexGendv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
glGetTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glGetTexGenfv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetTexGeniv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glIndexMask</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedColorIndexValueI</tt>.
glIndexMask :: MonadIO m => GLuint -> m ()
glIndexMaskFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glIndexPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>IndexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glIndexPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glIndexd</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueD</tt>.
--   
--   The vector equivalent of this command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()
glIndexdFunPtr :: FunPtr (GLdouble -> IO ())

-- | Usage: <tt><a>glIndexdv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueD</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()
glIndexdvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glIndexf</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueF</tt>.
--   
--   The vector equivalent of this command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()
glIndexfFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glIndexfv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueF</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()
glIndexfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glIndexi</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueI</tt>.
--   
--   The vector equivalent of this command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()
glIndexiFunPtr :: FunPtr (GLint -> IO ())

-- | Usage: <tt><a>glIndexiv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueI</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()
glIndexivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glIndexs</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueS</tt>.
--   
--   The vector equivalent of this command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()
glIndexsFunPtr :: FunPtr (GLshort -> IO ())

-- | Usage: <tt><a>glIndexsv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueS</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()
glIndexsvFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glIndexub</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueUB</tt>.
--   
--   The vector equivalent of this command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()
glIndexubFunPtr :: FunPtr (GLubyte -> IO ())

-- | Usage: <tt><a>glIndexubv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueUB</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()
glIndexubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glInitNames</a></tt>
glInitNames :: MonadIO m => m ()
glInitNamesFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glInterleavedArrays</a> format stride pointer</tt>
--   
--   The parameter <tt>format</tt> is a <tt>InterleavedArrayFormat</tt>,
--   one of: <a>GL_C3F_V3F</a>, <a>GL_C4F_N3F_V3F</a>, <a>GL_C4UB_V2F</a>,
--   <a>GL_C4UB_V3F</a>, <a>GL_N3F_V3F</a>, <a>GL_T2F_C3F_V3F</a>,
--   <a>GL_T2F_C4F_N3F_V3F</a>, <a>GL_T2F_C4UB_V3F</a>,
--   <a>GL_T2F_N3F_V3F</a>, <a>GL_T2F_V3F</a>, <a>GL_T4F_C4F_N3F_V4F</a>,
--   <a>GL_T4F_V4F</a>, <a>GL_V2F</a>, <a>GL_V3F</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(format,stride)</tt>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glInterleavedArraysFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glIsList</a> list</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
glIsList :: MonadIO m => GLuint -> m GLboolean
glIsListFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glLightModelf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()
glLightModelfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glLightModelfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glLightModelfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glLightModeli</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()
glLightModeliFunPtr :: FunPtr (GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glLightModeliv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glLightModelivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glLightf</a> light pname param</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glLightfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glLightfv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glLighti</a> light pname param</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glLightiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glLightiv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glLineStipple</a> factor pattern</tt>
--   
--   The parameter <tt>factor</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pattern</tt> is a <tt>LineStipple</tt>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()
glLineStippleFunPtr :: FunPtr (GLint -> GLushort -> IO ())

-- | Usage: <tt><a>glListBase</a> base</tt>
--   
--   The parameter <tt>base</tt> is a <tt>List</tt>.
glListBase :: MonadIO m => GLuint -> m ()
glListBaseFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glLoadIdentity</a></tt>
glLoadIdentity :: MonadIO m => m ()
glLoadIdentityFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glLoadMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()
glLoadMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glLoadMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glLoadMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glLoadName</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>SelectName</tt>.
glLoadName :: MonadIO m => GLuint -> m ()
glLoadNameFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glLoadTransposeMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
glLoadTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glLoadTransposeMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glLoadTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMap1d</a> target u1 u2 stride order points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>order</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,stride,order)</tt>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glMap1dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glMap1f</a> target u1 u2 stride order points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>order</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,stride,order)</tt>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glMap1fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMap2d</a> target u1 u2 ustride uorder v1 v2 vstride
--   vorder points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,ustride,uorder,vstride,vorder)</tt>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glMap2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glMap2f</a> target u1 u2 ustride uorder v1 v2 vstride
--   vorder points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,ustride,uorder,vstride,vorder)</tt>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glMap2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMapGrid1d</a> un u1 u2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glMapGrid1dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glMapGrid1f</a> un u1 u2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
glMapGrid1fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glMapGrid2d</a> un u1 u2 vn v1 v2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
glMapGrid2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glMapGrid2f</a> un u1 u2 vn v1 v2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
glMapGrid2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glMaterialf</a> face pname param</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glMaterialfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glMaterialfv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMateriali</a> face pname param</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glMaterialiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glMaterialiv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glMatrixMode</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()
glMatrixModeFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glMultMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()
glMultMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glMultMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glMultMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMultTransposeMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
glMultTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glMultTransposeMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glMultTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMultiTexCoord1d</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()
glMultiTexCoord1dFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())

-- | Usage: <tt><a>glMultiTexCoord1dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord1dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glMultiTexCoord1f</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()
glMultiTexCoord1fFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glMultiTexCoord1fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord1fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMultiTexCoord1i</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()
glMultiTexCoord1iFunPtr :: FunPtr (GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glMultiTexCoord1iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glMultiTexCoord1ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glMultiTexCoord1s</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()
glMultiTexCoord1sFunPtr :: FunPtr (GLenum -> GLshort -> IO ())

-- | Usage: <tt><a>glMultiTexCoord1sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord1svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glMultiTexCoord2d</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
glMultiTexCoord2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glMultiTexCoord2dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord2dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glMultiTexCoord2f</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
glMultiTexCoord2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glMultiTexCoord2fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord2fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMultiTexCoord2i</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()
glMultiTexCoord2iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glMultiTexCoord2iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glMultiTexCoord2ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glMultiTexCoord2s</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
glMultiTexCoord2sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glMultiTexCoord2sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord2svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glMultiTexCoord3d</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMultiTexCoord3dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glMultiTexCoord3dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord3dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glMultiTexCoord3f</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glMultiTexCoord3fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glMultiTexCoord3fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord3fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMultiTexCoord3i</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
glMultiTexCoord3iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glMultiTexCoord3iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glMultiTexCoord3ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glMultiTexCoord3s</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
glMultiTexCoord3sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glMultiTexCoord3sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord3svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glMultiTexCoord4d</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMultiTexCoord4dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glMultiTexCoord4dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord4dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glMultiTexCoord4f</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glMultiTexCoord4fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glMultiTexCoord4fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord4fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glMultiTexCoord4i</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
glMultiTexCoord4iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glMultiTexCoord4iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glMultiTexCoord4ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glMultiTexCoord4s</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4sv</a>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glMultiTexCoord4sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glMultiTexCoord4sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord4svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glNewList</a> list mode</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
--   
--   The parameter <tt>mode</tt> is a <tt>ListMode</tt>, one of:
--   <a>GL_COMPILE</a>, <a>GL_COMPILE_AND_EXECUTE</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()
glNewListFunPtr :: FunPtr (GLuint -> GLenum -> IO ())

-- | Usage: <tt><a>glNormal3b</a> nx ny nz</tt>
--   
--   The vector equivalent of this command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glNormal3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())

-- | Usage: <tt><a>glNormal3bv</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()
glNormal3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())

-- | Usage: <tt><a>glNormal3d</a> nx ny nz</tt>
--   
--   The parameter <tt>nx</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>ny</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>nz</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glNormal3dv</a>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glNormal3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glNormal3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()
glNormal3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glNormal3f</a> nx ny nz</tt>
--   
--   The parameter <tt>nx</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>ny</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>nz</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glNormal3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glNormal3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()
glNormal3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glNormal3i</a> nx ny nz</tt>
--   
--   The vector equivalent of this command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glNormal3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glNormal3iv</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()
glNormal3ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glNormal3s</a> nx ny nz</tt>
--   
--   The vector equivalent of this command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glNormal3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glNormal3sv</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
glNormal3svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glNormalPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>NormalPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glNormalPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glOrtho</a> left right bottom top zNear zFar</tt>
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glOrthoFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glPassThrough</a> token</tt>
--   
--   The parameter <tt>token</tt> is a <tt>FeedbackElement</tt>.
glPassThrough :: MonadIO m => GLfloat -> m ()
glPassThroughFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glPixelMapfv</a> map mapsize values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The parameter <tt>mapsize</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>values</tt> should be <tt>mapsize</tt>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glPixelMapuiv</a> map mapsize values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The parameter <tt>mapsize</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>values</tt> should be <tt>mapsize</tt>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glPixelMapusv</a> map mapsize values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The parameter <tt>mapsize</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>values</tt> should be <tt>mapsize</tt>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
glPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())

-- | Usage: <tt><a>glPixelTransferf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransferParameter</tt>, one
--   of: <a>GL_ALPHA_BIAS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_BLUE_BIAS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_SCALE</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_SCALE</a>, <a>GL_INDEX_OFFSET</a>,
--   <a>GL_INDEX_SHIFT</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>, <a>GL_RED_BIAS</a>,
--   <a>GL_RED_SCALE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()
glPixelTransferfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glPixelTransferi</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransferParameter</tt>, one
--   of: <a>GL_ALPHA_BIAS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_BLUE_BIAS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_SCALE</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_SCALE</a>, <a>GL_INDEX_OFFSET</a>,
--   <a>GL_INDEX_SHIFT</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>, <a>GL_RED_BIAS</a>,
--   <a>GL_RED_SCALE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()
glPixelTransferiFunPtr :: FunPtr (GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glPixelZoom</a> xfactor yfactor</tt>
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()
glPixelZoomFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glPolygonStipple</a> mask</tt>
--   
--   The length of <tt>mask</tt> should be <tt>COMPSIZE()</tt>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
glPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glPopAttrib</a></tt>
glPopAttrib :: MonadIO m => m ()
glPopAttribFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glPopClientAttrib</a></tt>
glPopClientAttrib :: MonadIO m => m ()
glPopClientAttribFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glPopMatrix</a></tt>
glPopMatrix :: MonadIO m => m ()
glPopMatrixFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glPopName</a></tt>
glPopName :: MonadIO m => m ()
glPopNameFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glPrioritizeTextures</a> n textures priorities</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   The length of <tt>priorities</tt> should be <tt>n</tt>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
glPrioritizeTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glPushAttrib</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>AttribMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_ALL_ATTRIB_BITS</a>,
--   <a>GL_COLOR_BUFFER_BIT</a>, <a>GL_CURRENT_BIT</a>,
--   <a>GL_DEPTH_BUFFER_BIT</a>, <a>GL_ENABLE_BIT</a>, <a>GL_EVAL_BIT</a>,
--   <a>GL_FOG_BIT</a>, <a>GL_HINT_BIT</a>, <a>GL_LIGHTING_BIT</a>,
--   <a>GL_LINE_BIT</a>, <a>GL_LIST_BIT</a>, <a>GL_MULTISAMPLE_BIT</a>,
--   <a>GL_MULTISAMPLE_BIT_3DFX</a>, <a>GL_MULTISAMPLE_BIT_ARB</a>,
--   <a>GL_MULTISAMPLE_BIT_EXT</a>, <a>GL_PIXEL_MODE_BIT</a>,
--   <a>GL_POINT_BIT</a>, <a>GL_POLYGON_BIT</a>,
--   <a>GL_POLYGON_STIPPLE_BIT</a>, <a>GL_SCISSOR_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>, <a>GL_TEXTURE_BIT</a>,
--   <a>GL_TRANSFORM_BIT</a>, <a>GL_VIEWPORT_BIT</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()
glPushAttribFunPtr :: FunPtr (GLbitfield -> IO ())

-- | Usage: <tt><a>glPushClientAttrib</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClientAttribMask</tt>, one of:
--   <a>GL_CLIENT_ALL_ATTRIB_BITS</a>, <a>GL_CLIENT_PIXEL_STORE_BIT</a>,
--   <a>GL_CLIENT_VERTEX_ARRAY_BIT</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()
glPushClientAttribFunPtr :: FunPtr (GLbitfield -> IO ())

-- | Usage: <tt><a>glPushMatrix</a></tt>
glPushMatrix :: MonadIO m => m ()
glPushMatrixFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glPushName</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>SelectName</tt>.
glPushName :: MonadIO m => GLuint -> m ()
glPushNameFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glRasterPos2d</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
glRasterPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glRasterPos2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()
glRasterPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glRasterPos2f</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
glRasterPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glRasterPos2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()
glRasterPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glRasterPos2i</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()
glRasterPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())

-- | Usage: <tt><a>glRasterPos2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()
glRasterPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glRasterPos2s</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()
glRasterPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glRasterPos2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()
glRasterPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glRasterPos3d</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glRasterPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glRasterPos3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()
glRasterPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glRasterPos3f</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glRasterPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glRasterPos3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()
glRasterPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glRasterPos3i</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glRasterPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glRasterPos3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()
glRasterPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glRasterPos3s</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glRasterPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glRasterPos3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()
glRasterPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glRasterPos4d</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glRasterPos4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glRasterPos4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()
glRasterPos4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glRasterPos4f</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glRasterPos4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glRasterPos4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()
glRasterPos4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glRasterPos4i</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glRasterPos4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glRasterPos4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()
glRasterPos4ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glRasterPos4s</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
glRasterPos4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glRasterPos4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()
glRasterPos4svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glRectd</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glRectdFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glRectdv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()
glRectdvFunPtr :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glRectf</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glRectfFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glRectfv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
glRectfvFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glRecti</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glRectiFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glRectiv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()
glRectivFunPtr :: FunPtr (Ptr GLint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glRects</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
glRectsFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glRectsv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()
glRectsvFunPtr :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glRenderMode</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>RenderingMode</tt>, one of:
--   <a>GL_FEEDBACK</a>, <a>GL_RENDER</a>, <a>GL_SELECT</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint
glRenderModeFunPtr :: FunPtr (GLenum -> IO GLint)

-- | Usage: <tt><a>glRotated</a> angle x y z</tt>
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glRotatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glRotatef</a> angle x y z</tt>
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glRotatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glScaled</a> x y z</tt>
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glScaledFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glScalef</a> x y z</tt>
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glScalefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glSecondaryColor3b</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glSecondaryColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())

-- | Usage: <tt><a>glSecondaryColor3bv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()
glSecondaryColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())

-- | Usage: <tt><a>glSecondaryColor3d</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glSecondaryColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glSecondaryColor3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()
glSecondaryColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glSecondaryColor3f</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glSecondaryColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glSecondaryColor3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()
glSecondaryColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glSecondaryColor3i</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3iv</a>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glSecondaryColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glSecondaryColor3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()
glSecondaryColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glSecondaryColor3s</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glSecondaryColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glSecondaryColor3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()
glSecondaryColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glSecondaryColor3ub</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
glSecondaryColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())

-- | Usage: <tt><a>glSecondaryColor3ubv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
glSecondaryColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glSecondaryColor3ui</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glSecondaryColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glSecondaryColor3uiv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()
glSecondaryColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())

-- | Usage: <tt><a>glSecondaryColor3us</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
glSecondaryColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())

-- | Usage: <tt><a>glSecondaryColor3usv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())

-- | Usage: <tt><a>glSecondaryColorPointer</a> size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glSecondaryColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glSelectBuffer</a> size buffer</tt>
--   
--   The parameter <tt>buffer</tt> is a <tt>SelectName</tt>.
--   
--   The length of <tt>buffer</tt> should be <tt>size</tt>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glSelectBufferFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glShadeModel</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>ShadingModel</tt>, one of:
--   <a>GL_FLAT</a>, <a>GL_SMOOTH</a>.
glShadeModel :: MonadIO m => GLenum -> m ()
glShadeModelFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glTexCoord1d</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()
glTexCoord1dFunPtr :: FunPtr (GLdouble -> IO ())

-- | Usage: <tt><a>glTexCoord1dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
glTexCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glTexCoord1f</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()
glTexCoord1fFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glTexCoord1fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
glTexCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glTexCoord1i</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()
glTexCoord1iFunPtr :: FunPtr (GLint -> IO ())

-- | Usage: <tt><a>glTexCoord1iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()
glTexCoord1ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glTexCoord1s</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()
glTexCoord1sFunPtr :: FunPtr (GLshort -> IO ())

-- | Usage: <tt><a>glTexCoord1sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoord1svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glTexCoord2d</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
glTexCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glTexCoord2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
glTexCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glTexCoord2f</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
glTexCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glTexCoord2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
glTexCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glTexCoord2i</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()
glTexCoord2iFunPtr :: FunPtr (GLint -> GLint -> IO ())

-- | Usage: <tt><a>glTexCoord2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()
glTexCoord2ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glTexCoord2s</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()
glTexCoord2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glTexCoord2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoord2svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glTexCoord3d</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glTexCoord3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glTexCoord3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()
glTexCoord3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glTexCoord3f</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glTexCoord3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()
glTexCoord3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glTexCoord3i</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glTexCoord3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glTexCoord3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()
glTexCoord3ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glTexCoord3s</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glTexCoord3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glTexCoord3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoord3svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glTexCoord4d</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glTexCoord4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glTexCoord4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()
glTexCoord4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glTexCoord4f</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glTexCoord4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glTexCoord4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()
glTexCoord4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glTexCoord4i</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glTexCoord4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glTexCoord4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()
glTexCoord4ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glTexCoord4s</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
glTexCoord4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glTexCoord4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
glTexCoord4svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glTexCoordPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>TexCoordPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glTexCoordPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glTexEnvf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glTexEnvfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glTexEnvfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glTexEnvi</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glTexEnviFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glTexEnviv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glTexGend</a> coord pname param</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()
glTexGendFunPtr :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ())

-- | Usage: <tt><a>glTexGendv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
glTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glTexGenf</a> coord pname param</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glTexGenfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glTexGenfv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glTexGeni</a> coord pname param</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glTexGeniFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glTexGeniv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glTranslated</a> x y z</tt>
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glTranslatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glTranslatef</a> x y z</tt>
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glTranslatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertex2d</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()
glVertex2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertex2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()
glVertex2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertex2f</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2fv</a>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()
glVertex2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertex2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()
glVertex2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertex2i</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()
glVertex2iFunPtr :: FunPtr (GLint -> GLint -> IO ())

-- | Usage: <tt><a>glVertex2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()
glVertex2ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertex2s</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()
glVertex2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glVertex2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()
glVertex2svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertex3d</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glVertex3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertex3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()
glVertex3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertex3f</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glVertex3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertex3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()
glVertex3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertex3i</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glVertex3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glVertex3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()
glVertex3ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertex3s</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glVertex3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glVertex3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()
glVertex3svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertex4d</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertex4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertex4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()
glVertex4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertex4f</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertex4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertex4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()
glVertex4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertex4i</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glVertex4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glVertex4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()
glVertex4ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertex4s</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
glVertex4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glVertex4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()
glVertex4svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glVertexPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glWindowPos2d</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
glWindowPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glWindowPos2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()
glWindowPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glWindowPos2f</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
glWindowPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glWindowPos2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()
glWindowPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glWindowPos2i</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()
glWindowPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())

-- | Usage: <tt><a>glWindowPos2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()
glWindowPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glWindowPos2s</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()
glWindowPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glWindowPos2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()
glWindowPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glWindowPos3d</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glWindowPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glWindowPos3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()
glWindowPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glWindowPos3f</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glWindowPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glWindowPos3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()
glWindowPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glWindowPos3i</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glWindowPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glWindowPos3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()
glWindowPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())

-- | Usage: <tt><a>glWindowPos3s</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glWindowPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glWindowPos3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()
glWindowPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())

-- | Usage: <tt><a>glColorP3ui</a> type color</tt>
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glColorP3uiv</a> type color</tt>
--   
--   The length of <tt>color</tt> should be <tt>1</tt>.
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glColorP4ui</a> type color</tt>
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glColorP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glColorP4uiv</a> type color</tt>
--   
--   The length of <tt>color</tt> should be <tt>1</tt>.
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glColorP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glMultiTexCoordP1ui</a> texture type coords</tt>
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glMultiTexCoordP1uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP1uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glMultiTexCoordP2ui</a> texture type coords</tt>
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glMultiTexCoordP2uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP2uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glMultiTexCoordP3ui</a> texture type coords</tt>
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glMultiTexCoordP3uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP3uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glMultiTexCoordP4ui</a> texture type coords</tt>
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glMultiTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glMultiTexCoordP4uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glMultiTexCoordP4uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glNormalP3ui</a> type coords</tt>
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glNormalP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glNormalP3uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glNormalP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glSecondaryColorP3ui</a> type color</tt>
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glSecondaryColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glSecondaryColorP3uiv</a> type color</tt>
--   
--   The length of <tt>color</tt> should be <tt>1</tt>.
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glSecondaryColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glTexCoordP1ui</a> type coords</tt>
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glTexCoordP1uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP1uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glTexCoordP2ui</a> type coords</tt>
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glTexCoordP2uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glTexCoordP3ui</a> type coords</tt>
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glTexCoordP3uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glTexCoordP4ui</a> type coords</tt>
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glTexCoordP4uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glTexCoordP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexP2ui</a> type value</tt>
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexP2uiv</a> type value</tt>
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexP3ui</a> type value</tt>
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexP3uiv</a> type value</tt>
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexP4ui</a> type value</tt>
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
glVertexP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexP4uiv</a> type value</tt>
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glVertexP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml</a>
glActiveTexture :: MonadIO m => GLenum -> m ()
glActiveTextureFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glAttachShader</a> program shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glAttachShader.xhtml</a>
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()
glAttachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glBeginConditionalRender</a> id mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>TypeEnum</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginConditionalRender.xhtml</a>
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()
glBeginConditionalRenderFunPtr :: FunPtr (GLuint -> GLenum -> IO ())

-- | Usage: <tt><a>glBeginQuery</a> target id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginQuery.xhtml</a>
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()
glBeginQueryFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glBeginTransformFeedback</a> primitiveMode</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginTransformFeedback.xhtml</a>
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()
glBeginTransformFeedbackFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glBindAttribLocation</a> program index name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindAttribLocation.xhtml</a>
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
glBindAttribLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glBindBuffer</a> target buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml</a>
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()
glBindBufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glBindBufferBase</a> target index buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml</a>
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
glBindBufferBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glBindBufferRange</a> target index buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml</a>
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glBindBufferRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())

-- | Usage: <tt><a>glBindFragDataLocation</a> program color name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocation.xhtml</a>
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
glBindFragDataLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glBindFramebuffer</a> target framebuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml</a>
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()
glBindFramebufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glBindRenderbuffer</a> target renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml</a>
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()
glBindRenderbufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glBindTexture</a> target texture</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml</a>
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()
glBindTextureFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glBindVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml</a>
glBindVertexArray :: MonadIO m => GLuint -> m ()
glBindVertexArrayFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glBlendColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml</a>
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glBlendColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glBlendEquation</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>BlendEquationMode</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml</a>
glBlendEquation :: MonadIO m => GLenum -> m ()
glBlendEquationFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glBlendEquationSeparate</a> modeRGB modeAlpha</tt>
--   
--   The parameter <tt>modeRGB</tt> is a <tt>BlendEquationModeEXT</tt>, one
--   of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   The parameter <tt>modeAlpha</tt> is a <tt>BlendEquationModeEXT</tt>,
--   one of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml</a>
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()
glBlendEquationSeparateFunPtr :: FunPtr (GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glBlendFunc</a> sfactor dfactor</tt>
--   
--   The parameter <tt>sfactor</tt> is a <tt>BlendingFactorSrc</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_DST_COLOR</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_DST_COLOR</a>, <a>GL_ONE_MINUS_SRC_ALPHA</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_ALPHA_SATURATE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dfactor</tt> is a <tt>BlendingFactorDest</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_SRC_ALPHA</a>, <a>GL_ONE_MINUS_SRC_COLOR</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_COLOR</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml</a>
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()
glBlendFuncFunPtr :: FunPtr (GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glBlendFuncSeparate</a> sfactorRGB dfactorRGB
--   sfactorAlpha dfactorAlpha</tt>
--   
--   The parameter <tt>sfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>sfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml</a>
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
glBlendFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glBlitFramebuffer</a> srcX0 srcY0 srcX1 srcY1 dstX0
--   dstY0 dstX1 dstY1 mask filter</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml</a>
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
glBlitFramebufferFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())

-- | Usage: <tt><a>glBufferData</a> target size data usage</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>usage</tt> is a <tt>BufferUsageARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml</a>
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
glBufferDataFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ())

-- | Usage: <tt><a>glBufferSubData</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml</a>
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
glBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())

-- | Usage: <tt><a>glCheckFramebufferStatus</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml</a>
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum
glCheckFramebufferStatusFunPtr :: FunPtr (GLenum -> IO GLenum)

-- | Usage: <tt><a>glClampColor</a> target clamp</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ClampColorTargetARB</tt>.
--   
--   The parameter <tt>clamp</tt> is a <tt>ClampColorModeARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClampColor.xhtml</a>
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()
glClampColorFunPtr :: FunPtr (GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glClear</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClear.xhtml</a>
glClear :: MonadIO m => GLbitfield -> m ()
glClearFunPtr :: FunPtr (GLbitfield -> IO ())

-- | Usage: <tt><a>glClearBufferfi</a> buffer drawbuffer depth stencil</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()
glClearBufferfiFunPtr :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())

-- | Usage: <tt><a>glClearBufferfv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()
glClearBufferfvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glClearBufferiv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()
glClearBufferivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glClearBufferuiv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
glClearBufferuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glClearColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml</a>
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glClearColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glClearDepth</a> depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearDepth.xhtml</a>
glClearDepth :: MonadIO m => GLdouble -> m ()
glClearDepthFunPtr :: FunPtr (GLdouble -> IO ())

-- | Usage: <tt><a>glClearStencil</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>StencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml</a>
glClearStencil :: MonadIO m => GLint -> m ()
glClearStencilFunPtr :: FunPtr (GLint -> IO ())

-- | Usage: <tt><a>glClientWaitSync</a> sync flags timeout</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClientWaitSync.xhtml</a>
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
glClientWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)

-- | Usage: <tt><a>glColorMask</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>green</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>blue</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>alpha</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml</a>
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
glColorMaskFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())

-- | Usage: <tt><a>glColorMaski</a> index r g b a</tt>
--   
--   The parameter <tt>r</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>g</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>b</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>a</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
glColorMaskiFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())

-- | Usage: <tt><a>glCompileShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompileShader.xhtml</a>
glCompileShader :: MonadIO m => GLuint -> m ()
glCompileShaderFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glCompressedTexImage1D</a> target level internalformat
--   width border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage1D.xhtml</a>
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
glCompressedTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCompressedTexImage2D</a> target level internalformat
--   width height border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml</a>
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
glCompressedTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCompressedTexImage3D</a> target level internalformat
--   width height depth border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage3D.xhtml</a>
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
glCompressedTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCompressedTexSubImage1D</a> target level xoffset width
--   format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage1D.xhtml</a>
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
glCompressedTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCompressedTexSubImage2D</a> target level xoffset
--   yoffset width height format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml</a>
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
glCompressedTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCompressedTexSubImage3D</a> target level xoffset
--   yoffset zoffset width height depth format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage3D.xhtml</a>
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
glCompressedTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCopyBufferSubData</a> readTarget writeTarget
--   readOffset writeOffset size</tt>
--   
--   The parameter <tt>readOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>writeOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml</a>
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
glCopyBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())

-- | Usage: <tt><a>glCopyTexImage1D</a> target level internalformat x y
--   width border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexImage1D.xhtml</a>
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
glCopyTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())

-- | Usage: <tt><a>glCopyTexImage2D</a> target level internalformat x y
--   width height border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml</a>
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
glCopyTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())

-- | Usage: <tt><a>glCopyTexSubImage1D</a> target level xoffset x y
--   width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage1D.xhtml</a>
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
glCopyTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())

-- | Usage: <tt><a>glCopyTexSubImage2D</a> target level xoffset yoffset x y
--   width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml</a>
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glCopyTexSubImage3D</a> target level xoffset yoffset
--   zoffset x y width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage3D.xhtml</a>
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glCreateProgram</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml</a>
glCreateProgram :: MonadIO m => m GLuint
glCreateProgramFunPtr :: FunPtr (IO GLuint)

-- | Usage: <tt><a>glCreateShader</a> type</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateShader.xhtml</a>
glCreateShader :: MonadIO m => GLenum -> m GLuint
glCreateShaderFunPtr :: FunPtr (GLenum -> IO GLuint)

-- | Usage: <tt><a>glCullFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>CullFaceMode</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml</a>
glCullFace :: MonadIO m => GLenum -> m ()
glCullFaceFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glDeleteBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml</a>
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glDeleteFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml</a>
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glDeleteProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteProgram.xhtml</a>
glDeleteProgram :: MonadIO m => GLuint -> m ()
glDeleteProgramFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glDeleteQueries</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteQueries.xhtml</a>
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glDeleteRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml</a>
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glDeleteShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteShader.xhtml</a>
glDeleteShader :: MonadIO m => GLuint -> m ()
glDeleteShaderFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glDeleteSync</a> sync</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteSync.xhtml</a>
glDeleteSync :: MonadIO m => GLsync -> m ()
glDeleteSyncFunPtr :: FunPtr (GLsync -> IO ())

-- | Usage: <tt><a>glDeleteTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml</a>
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glDeleteVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml</a>
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glDepthFunc</a> func</tt>
--   
--   The parameter <tt>func</tt> is a <tt>DepthFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml</a>
glDepthFunc :: MonadIO m => GLenum -> m ()
glDepthFuncFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glDepthMask</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml</a>
glDepthMask :: MonadIO m => GLboolean -> m ()
glDepthMaskFunPtr :: FunPtr (GLboolean -> IO ())

-- | Usage: <tt><a>glDepthRange</a> near far</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthRange.xhtml</a>
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()
glDepthRangeFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glDetachShader</a> program shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDetachShader.xhtml</a>
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()
glDetachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glDisable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisable :: MonadIO m => GLenum -> m ()
glDisableFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glDisableVertexAttribArray</a> index</tt>
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()
glDisableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glDisablei</a> target index</tt>
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()
glDisableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glDrawArrays</a> mode first count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml</a>
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
glDrawArraysFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())

-- | Usage: <tt><a>glDrawArraysInstanced</a> mode first count
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml</a>
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
glDrawArraysInstancedFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glDrawBuffer</a> buf</tt>
--   
--   The parameter <tt>buf</tt> is a <tt>DrawBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>, <a>GL_FRONT_LEFT</a>,
--   <a>GL_FRONT_RIGHT</a>, <a>GL_LEFT</a>, <a>GL_NONE</a>,
--   <a>GL_NONE_OES</a>, <a>GL_RIGHT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawBuffer.xhtml</a>
glDrawBuffer :: MonadIO m => GLenum -> m ()
glDrawBufferFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glDrawBuffers</a> n bufs</tt>
--   
--   The parameter <tt>bufs</tt> is a <tt>DrawBufferModeATI</tt>.
--   
--   The length of <tt>bufs</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawBuffers.xhtml</a>
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
glDrawBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())

-- | Usage: <tt><a>glDrawElements</a> mode count type indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml</a>
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
glDrawElementsFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glDrawElementsBaseVertex</a> mode count type indices
--   basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsBaseVertex.xhtml</a>
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
glDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())

-- | Usage: <tt><a>glDrawElementsInstanced</a> mode count type indices
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstanced.xhtml</a>
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
glDrawElementsInstancedFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertex</a> mode count type
--   indices instancecount basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertex.xhtml</a>
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
glDrawElementsInstancedBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())

-- | Usage: <tt><a>glDrawRangeElements</a> mode start end count type
--   indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml</a>
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
glDrawRangeElementsFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glDrawRangeElementsBaseVertex</a> mode start end count
--   type indices basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawRangeElementsBaseVertex.xhtml</a>
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
glDrawRangeElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())

-- | Usage: <tt><a>glEnable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml</a>
glEnable :: MonadIO m => GLenum -> m ()
glEnableFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glEnableVertexAttribArray</a> index</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml</a>
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()
glEnableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glEnablei</a> target index</tt>
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()
glEnableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glEndConditionalRender</a></tt>
glEndConditionalRender :: MonadIO m => m ()
glEndConditionalRenderFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glEndQuery</a> target</tt>
glEndQuery :: MonadIO m => GLenum -> m ()
glEndQueryFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glEndTransformFeedback</a></tt>
glEndTransformFeedback :: MonadIO m => m ()
glEndTransformFeedbackFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glFenceSync</a> condition flags</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFenceSync.xhtml</a>
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync
glFenceSyncFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)

-- | Usage: <tt><a>glFinish</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml</a>
glFinish :: MonadIO m => m ()
glFinishFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glFlush</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml</a>
glFlush :: MonadIO m => m ()
glFlushFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glFlushMappedBufferRange</a> target offset length</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml</a>
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
glFlushMappedBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())

-- | Usage: <tt><a>glFramebufferRenderbuffer</a> target attachment
--   renderbuffertarget renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>renderbuffertarget</tt> is a
--   <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml</a>
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
glFramebufferRenderbufferFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glFramebufferTexture</a> target attachment texture
--   level</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferTexture.xhtml</a>
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTextureFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())

-- | Usage: <tt><a>glFramebufferTexture1D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTexture1DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())

-- | Usage: <tt><a>glFramebufferTexture2D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTexture2DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())

-- | Usage: <tt><a>glFramebufferTexture3D</a> target attachment textarget
--   texture level zoffset</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glFramebufferTexture3DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glFramebufferTextureLayer</a> target attachment texture
--   level layer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml</a>
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glFramebufferTextureLayerFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glFrontFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>FrontFaceDirection</tt>, one of:
--   <a>GL_CCW</a>, <a>GL_CW</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml</a>
glFrontFace :: MonadIO m => GLenum -> m ()
glFrontFaceFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glGenBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml</a>
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGenFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml</a>
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGenQueries</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenQueries.xhtml</a>
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGenRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml</a>
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGenTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml</a>
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGenVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml</a>
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGenerateMipmap</a> target</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml</a>
glGenerateMipmap :: MonadIO m => GLenum -> m ()
glGenerateMipmapFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glGetActiveAttrib</a> program index bufSize length size
--   type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveAttrib.xhtml</a>
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
glGetActiveAttribFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetActiveUniform</a> program index bufSize length size
--   type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniform.xhtml</a>
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
glGetActiveUniformFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetActiveUniformBlockName</a> program
--   uniformBlockIndex bufSize length uniformBlockName</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml</a>
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetActiveUniformBlockNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetActiveUniformBlockiv</a> program uniformBlockIndex
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,uniformBlockIndex,pname)</tt>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetActiveUniformBlockivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetActiveUniformName</a> program uniformIndex bufSize
--   length uniformName</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>uniformName</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformName.xhtml</a>
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetActiveUniformNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetActiveUniformsiv</a> program uniformCount
--   uniformIndices pname params</tt>
--   
--   The length of <tt>uniformIndices</tt> should be <tt>uniformCount</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(uniformCount,pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml</a>
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
glGetActiveUniformsivFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetAttachedShaders</a> program maxCount count
--   shaders</tt>
--   
--   The length of <tt>count</tt> should be <tt>1</tt>.
--   
--   The length of <tt>shaders</tt> should be <tt>maxCount</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml</a>
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
glGetAttachedShadersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetAttribLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml</a>
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
glGetAttribLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)

-- | Usage: <tt><a>glGetBooleani_v</a> target index data</tt>
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
glGetBooleani_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())

-- | Usage: <tt><a>glGetBooleanv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()
glGetBooleanvFunPtr :: FunPtr (GLenum -> Ptr GLboolean -> IO ())

-- | Usage: <tt><a>glGetBufferParameteri64v</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()
glGetBufferParameteri64vFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())

-- | Usage: <tt><a>glGetBufferParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetBufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetBufferPointerv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPointerNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetBufferPointerv.xhtml</a>
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
glGetBufferPointervFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())

-- | Usage: <tt><a>glGetBufferSubData</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetBufferSubData.xhtml</a>
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
glGetBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetCompressedTexImage</a> target level img</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>img</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>img</tt> should be <tt>COMPSIZE(target,level)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetCompressedTexImage.xhtml</a>
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
glGetCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetDoublev</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glGetDoublevFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glGetError</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml</a>
glGetError :: MonadIO m => m GLenum
glGetErrorFunPtr :: FunPtr (IO GLenum)

-- | Usage: <tt><a>glGetFloatv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetFloatvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetFragDataLocation</a> program name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetFragDataLocation.xhtml</a>
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
glGetFragDataLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)

-- | Usage: <tt><a>glGetFramebufferAttachmentParameteriv</a> target
--   attachment pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetFramebufferAttachmentParameterivFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetInteger64i_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()
glGetInteger64i_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())

-- | Usage: <tt><a>glGetInteger64v</a> pname data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
glGetInteger64vFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())

-- | Usage: <tt><a>glGetIntegeri_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetIntegeri_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetIntegerv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glGetIntegervFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetMultisamplefv</a> pname index val</tt>
--   
--   The length of <tt>val</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetMultisamplefvFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetProgramInfoLog</a> program bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramInfoLog.xhtml</a>
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetProgramInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetProgramiv</a> program pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetProgramivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetQueryObjectiv</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetQueryObjectivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetQueryObjectuiv</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetQueryObjectuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetQueryiv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetQueryiv.xhtml</a>
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetQueryivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetRenderbufferParameteriv</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetRenderbufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetShaderInfoLog</a> shader bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderInfoLog.xhtml</a>
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetShaderInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetShaderSource</a> shader bufSize length source</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>source</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml</a>
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetShaderiv</a> shader pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetShaderivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetString</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>StringName</tt>, one of:
--   <a>GL_EXTENSIONS</a>, <a>GL_RENDERER</a>, <a>GL_VENDOR</a>,
--   <a>GL_VERSION</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml</a>
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)
glGetStringFunPtr :: FunPtr (GLenum -> IO (Ptr GLubyte))

-- | Usage: <tt><a>glGetStringi</a> name index</tt>
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)
glGetStringiFunPtr :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))

-- | Usage: <tt><a>glGetSynciv</a> sync pname bufSize length values</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
glGetSyncivFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTexImage</a> target level format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(target,level,format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTexImage.xhtml</a>
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
glGetTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetTexLevelParameterfv</a> target level pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
glGetTexLevelParameterfvFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetTexLevelParameteriv</a> target level pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
glGetTexLevelParameterivFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTexParameterIiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTexParameterIuiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glGetTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTransformFeedbackVarying</a> program index bufSize
--   length size type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTransformFeedbackVarying.xhtml</a>
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
glGetTransformFeedbackVaryingFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetUniformBlockIndex</a> program uniformBlockName</tt>
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>COMPSIZE()</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml</a>
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint
glGetUniformBlockIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)

-- | Usage: <tt><a>glGetUniformIndices</a> program uniformCount
--   uniformNames uniformIndices</tt>
--   
--   The length of <tt>uniformNames</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   The length of <tt>uniformIndices</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml</a>
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
glGetUniformIndicesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetUniformLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml</a>
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
glGetUniformLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)

-- | Usage: <tt><a>glGetUniformfv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()
glGetUniformfvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetUniformiv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()
glGetUniformivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetUniformuiv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
glGetUniformuivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetVertexAttribIiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexAttribIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetVertexAttribIuiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetVertexAttribIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetVertexAttribPointerv</a> index pname pointer</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexAttribPointerPropertyARB</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml</a>
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
glGetVertexAttribPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())

-- | Usage: <tt><a>glGetVertexAttribdv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetVertexAttribdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glGetVertexAttribfv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVertexAttribfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetVertexAttribiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexAttribivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glHint</a> target mode</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HintTarget</tt>, one of:
--   <a>GL_ALLOW_DRAW_FRG_HINT_PGI</a>, <a>GL_ALLOW_DRAW_MEM_HINT_PGI</a>,
--   <a>GL_ALLOW_DRAW_OBJ_HINT_PGI</a>, <a>GL_ALLOW_DRAW_WIN_HINT_PGI</a>,
--   <a>GL_ALWAYS_FAST_HINT_PGI</a>, <a>GL_ALWAYS_SOFT_HINT_PGI</a>,
--   <a>GL_BACK_NORMALS_HINT_PGI</a>, <a>GL_BINNING_CONTROL_HINT_QCOM</a>,
--   <a>GL_CLIP_FAR_HINT_PGI</a>, <a>GL_CLIP_NEAR_HINT_PGI</a>,
--   <a>GL_CLIP_VOLUME_CLIPPING_HINT_EXT</a>,
--   <a>GL_CONSERVE_MEMORY_HINT_PGI</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_FOG_HINT</a>, <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES</a>,
--   <a>GL_FULL_STIPPLE_HINT_PGI</a>, <a>GL_GENERATE_MIPMAP_HINT</a>,
--   <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <tt>GL_LINE_QUALITY_HINT_SGIX</tt>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_MATERIAL_SIDE_HINT_PGI</a>, <a>GL_MAX_VERTEX_HINT_PGI</a>,
--   <a>GL_MULTISAMPLE_FILTER_HINT_NV</a>,
--   <a>GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI</a>,
--   <a>GL_NATIVE_GRAPHICS_END_HINT_PGI</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PERSPECTIVE_CORRECTION_HINT</a>, <a>GL_PHONG_HINT_WIN</a>,
--   <a>GL_POINT_SMOOTH_HINT</a>, <a>GL_POLYGON_SMOOTH_HINT</a>,
--   <a>GL_PREFER_DOUBLEBUFFER_HINT_PGI</a>,
--   <a>GL_PROGRAM_BINARY_RETRIEVABLE_HINT</a>,
--   <a>GL_RECLAIM_MEMORY_HINT_PGI</a>, <a>GL_SCALEBIAS_HINT_SGIX</a>,
--   <a>GL_STRICT_DEPTHFUNC_HINT_PGI</a>,
--   <a>GL_STRICT_LIGHTING_HINT_PGI</a>, <a>GL_STRICT_SCISSOR_HINT_PGI</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT_ARB</a>,
--   <a>GL_TEXTURE_MULTI_BUFFER_HINT_SGIX</a>,
--   <a>GL_TEXTURE_STORAGE_HINT_APPLE</a>, <a>GL_TRANSFORM_HINT_APPLE</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_STORAGE_HINT_APPLE</a>,
--   <a>GL_VERTEX_CONSISTENT_HINT_PGI</a>, <a>GL_VERTEX_DATA_HINT_PGI</a>,
--   <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>, <a>GL_VERTEX_PRECLIP_SGIX</a>,
--   <a>GL_WIDE_LINE_HINT_PGI</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>HintMode</tt>, one of:
--   <a>GL_DONT_CARE</a>, <a>GL_FASTEST</a>, <a>GL_NICEST</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glHint.xhtml</a>
glHint :: MonadIO m => GLenum -> GLenum -> m ()
glHintFunPtr :: FunPtr (GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glIsBuffer</a> buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml</a>
glIsBuffer :: MonadIO m => GLuint -> m GLboolean
glIsBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glIsEnabled</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml</a>
glIsEnabled :: MonadIO m => GLenum -> m GLboolean
glIsEnabledFunPtr :: FunPtr (GLenum -> IO GLboolean)

-- | Usage: <tt><a>glIsEnabledi</a> target index</tt>
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean
glIsEnablediFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)

-- | Usage: <tt><a>glIsFramebuffer</a> framebuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml</a>
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean
glIsFramebufferFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glIsProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsProgram.xhtml</a>
glIsProgram :: MonadIO m => GLuint -> m GLboolean
glIsProgramFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glIsQuery</a> id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsQuery.xhtml</a>
glIsQuery :: MonadIO m => GLuint -> m GLboolean
glIsQueryFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glIsRenderbuffer</a> renderbuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml</a>
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean
glIsRenderbufferFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glIsShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsShader.xhtml</a>
glIsShader :: MonadIO m => GLuint -> m GLboolean
glIsShaderFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glIsSync</a> sync</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsSync.xhtml</a>
glIsSync :: MonadIO m => GLsync -> m GLboolean
glIsSyncFunPtr :: FunPtr (GLsync -> IO GLboolean)

-- | Usage: <tt><a>glIsTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml</a>
glIsTexture :: MonadIO m => GLuint -> m GLboolean
glIsTextureFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glIsVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml</a>
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean
glIsVertexArrayFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glLineWidth</a> width</tt>
--   
--   The parameter <tt>width</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml</a>
glLineWidth :: MonadIO m => GLfloat -> m ()
glLineWidthFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glLinkProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml</a>
glLinkProgram :: MonadIO m => GLuint -> m ()
glLinkProgramFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glLogicOp</a> opcode</tt>
--   
--   The parameter <tt>opcode</tt> is a <tt>LogicOp</tt>, one of:
--   <a>GL_AND</a>, <a>GL_AND_INVERTED</a>, <a>GL_AND_REVERSE</a>,
--   <a>GL_CLEAR</a>, <a>GL_COPY</a>, <a>GL_COPY_INVERTED</a>,
--   <a>GL_EQUIV</a>, <a>GL_INVERT</a>, <a>GL_NAND</a>, <a>GL_NOOP</a>,
--   <a>GL_NOR</a>, <a>GL_OR</a>, <a>GL_OR_INVERTED</a>,
--   <a>GL_OR_REVERSE</a>, <a>GL_SET</a>, <a>GL_XOR</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLogicOp.xhtml</a>
glLogicOp :: MonadIO m => GLenum -> m ()
glLogicOpFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glMapBuffer</a> target access</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMapBuffer.xhtml</a>
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
glMapBufferFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))

-- | Usage: <tt><a>glMapBufferRange</a> target offset length access</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessMask</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml</a>
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
glMapBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))

-- | Usage: <tt><a>glMultiDrawArrays</a> mode first count drawcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>first</tt> should be <tt>COMPSIZE(count)</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawArrays.xhtml</a>
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
glMultiDrawArraysFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glMultiDrawElements</a> mode count type indices
--   drawcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawElements.xhtml</a>
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
glMultiDrawElementsFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ())

-- | Usage: <tt><a>glMultiDrawElementsBaseVertex</a> mode count type
--   indices drawcount basevertex</tt>
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>basevertex</tt> should be
--   <tt>COMPSIZE(drawcount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsBaseVertex.xhtml</a>
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
glMultiDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glPixelStoref</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelStoreParameter</tt>, one
--   of: <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_PACK_IMAGE_HEIGHT</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_OML</a>,
--   <a>GL_PACK_RESAMPLE_SGIX</a>, <a>GL_PACK_ROW_LENGTH</a>,
--   <a>GL_PACK_SKIP_IMAGES</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_UNPACK_ALIGNMENT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT</a>, <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_UNPACK_LSB_FIRST</a>, <a>GL_UNPACK_RESAMPLE_OML</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_ROW_LENGTH_EXT</a>, <a>GL_UNPACK_SKIP_IMAGES</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_PIXELS_EXT</a>, <a>GL_UNPACK_SKIP_ROWS</a>,
--   <a>GL_UNPACK_SKIP_ROWS_EXT</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()
glPixelStorefFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glPixelStorei</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelStoreParameter</tt>, one
--   of: <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_PACK_IMAGE_HEIGHT</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_OML</a>,
--   <a>GL_PACK_RESAMPLE_SGIX</a>, <a>GL_PACK_ROW_LENGTH</a>,
--   <a>GL_PACK_SKIP_IMAGES</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_UNPACK_ALIGNMENT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT</a>, <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_UNPACK_LSB_FIRST</a>, <a>GL_UNPACK_RESAMPLE_OML</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_ROW_LENGTH_EXT</a>, <a>GL_UNPACK_SKIP_IMAGES</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_PIXELS_EXT</a>, <a>GL_UNPACK_SKIP_ROWS</a>,
--   <a>GL_UNPACK_SKIP_ROWS_EXT</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()
glPixelStoreiFunPtr :: FunPtr (GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glPointParameterf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()
glPointParameterfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glPointParameterfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glPointParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glPointParameteri</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()
glPointParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glPointParameteriv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glPointParameterivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glPointSize</a> size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPointSize.xhtml</a>
glPointSize :: MonadIO m => GLfloat -> m ()
glPointSizeFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glPolygonMode</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>PolygonMode</tt>, one of:
--   <a>GL_FILL</a>, <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPolygonMode.xhtml</a>
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()
glPolygonModeFunPtr :: FunPtr (GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glPolygonOffset</a> factor units</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml</a>
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
glPolygonOffsetFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glPrimitiveRestartIndex</a> index</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPrimitiveRestartIndex.xhtml</a>
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()
glPrimitiveRestartIndexFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glProvokingVertex</a> mode</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glProvokingVertex.xhtml</a>
glProvokingVertex :: MonadIO m => GLenum -> m ()
glProvokingVertexFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glReadBuffer</a> src</tt>
--   
--   The parameter <tt>src</tt> is a <tt>ReadBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_LEFT</a>, <a>GL_FRONT_RIGHT</a>,
--   <a>GL_LEFT</a>, <a>GL_RIGHT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReadBuffer.xhtml</a>
glReadBuffer :: MonadIO m => GLenum -> m ()
glReadBufferFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glReadPixels</a> x y width height format type
--   pixels</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml</a>
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glReadPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glRenderbufferStorage</a> target internalformat width
--   height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml</a>
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glRenderbufferStorageMultisample</a> target samples
--   internalformat width height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml</a>
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glSampleCoverage</a> value invert</tt>
--   
--   The parameter <tt>invert</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml</a>
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()
glSampleCoverageFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())

-- | Usage: <tt><a>glSampleMaski</a> maskNumber mask</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleMaski.xhtml</a>
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()
glSampleMaskiFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())

-- | Usage: <tt><a>glScissor</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml</a>
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
glScissorFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glShaderSource</a> shader count string length</tt>
--   
--   The length of <tt>string</tt> should be <tt>count</tt>.
--   
--   The length of <tt>length</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderSource.xhtml</a>
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
glShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glStencilFunc</a> func ref mask</tt>
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml</a>
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
glStencilFuncFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())

-- | Usage: <tt><a>glStencilFuncSeparate</a> face func ref mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml</a>
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
glStencilFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())

-- | Usage: <tt><a>glStencilMask</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml</a>
glStencilMask :: MonadIO m => GLuint -> m ()
glStencilMaskFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glStencilMaskSeparate</a> face mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml</a>
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()
glStencilMaskSeparateFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glStencilOp</a> fail zfail zpass</tt>
--   
--   The parameter <tt>fail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zpass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml</a>
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()
glStencilOpFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glStencilOpSeparate</a> face sfail dpfail dppass</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>sfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dpfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dppass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml</a>
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
glStencilOpSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glTexBuffer</a> target internalformat buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexBuffer.xhtml</a>
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glTexBufferFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glTexImage1D</a> target level internalformat width
--   border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage1D.xhtml</a>
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
glTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glTexImage2D</a> target level internalformat width
--   height border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml</a>
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
glTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glTexImage2DMultisample</a> target samples
--   internalformat width height fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage2DMultisample.xhtml</a>
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())

-- | Usage: <tt><a>glTexImage3D</a> target level internalformat width
--   height depth border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage3D.xhtml</a>
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
glTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glTexImage3DMultisample</a> target samples
--   internalformat width height depth fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage3DMultisample.xhtml</a>
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())

-- | Usage: <tt><a>glTexParameterIiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glTexParameterIuiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glTexParameterf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glTexParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glTexParameteri</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glTexParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glTexSubImage1D</a> target level xoffset width format
--   type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage1D.xhtml</a>
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glTexSubImage2D</a> target level xoffset yoffset width
--   height format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml</a>
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glTexSubImage3D</a> target level xoffset yoffset zoffset
--   width height depth format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage3D.xhtml</a>
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glTransformFeedbackVaryings</a> program count varyings
--   bufferMode</tt>
--   
--   The length of <tt>varyings</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackVaryings.xhtml</a>
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
glTransformFeedbackVaryingsFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())

-- | Usage: <tt><a>glUniform1f</a> location v0</tt>
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()
glUniform1fFunPtr :: FunPtr (GLint -> GLfloat -> IO ())

-- | Usage: <tt><a>glUniform1fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
glUniform1fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniform1i</a> location v0</tt>
glUniform1i :: MonadIO m => GLint -> GLint -> m ()
glUniform1iFunPtr :: FunPtr (GLint -> GLint -> IO ())

-- | Usage: <tt><a>glUniform1iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
glUniform1ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glUniform1ui</a> location v0</tt>
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()
glUniform1uiFunPtr :: FunPtr (GLint -> GLuint -> IO ())

-- | Usage: <tt><a>glUniform1uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform1uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glUniform2f</a> location v0 v1</tt>
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
glUniform2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glUniform2fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
glUniform2fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniform2i</a> location v0 v1</tt>
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glUniform2iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glUniform2iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
glUniform2ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glUniform2ui</a> location v0 v1</tt>
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
glUniform2uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glUniform2uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glUniform3f</a> location v0 v1 v2</tt>
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
glUniform3fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glUniform3fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
glUniform3fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniform3i</a> location v0 v1 v2</tt>
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glUniform3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glUniform3iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
glUniform3ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glUniform3ui</a> location v0 v1 v2</tt>
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
glUniform3uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glUniform3uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glUniform4f</a> location v0 v1 v2 v3</tt>
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glUniform4fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glUniform4fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
glUniform4fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniform4i</a> location v0 v1 v2 v3</tt>
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
glUniform4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glUniform4iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
glUniform4ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glUniform4ui</a> location v0 v1 v2 v3</tt>
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glUniform4uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glUniform4uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glUniformBlockBinding</a> program uniformBlockIndex
--   uniformBlockBinding</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml</a>
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glUniformBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glUniformMatrix2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniformMatrix2x3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniformMatrix2x4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniformMatrix3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniformMatrix3x2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniformMatrix3x4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniformMatrix4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniformMatrix4x2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUniformMatrix4x3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glUnmapBuffer</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUnmapBuffer.xhtml</a>
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean
glUnmapBufferFunPtr :: FunPtr (GLenum -> IO GLboolean)

-- | Usage: <tt><a>glUseProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml</a>
glUseProgram :: MonadIO m => GLuint -> m ()
glUseProgramFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glValidateProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glValidateProgram.xhtml</a>
glValidateProgram :: MonadIO m => GLuint -> m ()
glValidateProgramFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttrib1d</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()
glVertexAttrib1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib1dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib1f</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()
glVertexAttrib1fFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib1fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib1fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib1s</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()
glVertexAttrib1sFunPtr :: FunPtr (GLuint -> GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib1sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib1svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib2d</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
glVertexAttrib2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib2dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib2f</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
glVertexAttrib2fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib2fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib2fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib2s</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
glVertexAttrib2sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib2sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib2svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib3d</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttrib3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib3dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib3f</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexAttrib3fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib3fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib3fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib3s</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
glVertexAttrib3sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib3sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib3svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4Nbv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
glVertexAttrib4NbvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4Niv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttrib4NivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttrib4Nsv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib4NsvFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4Nub</a> index x y z w</tt>
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
glVertexAttrib4NubFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4Nubv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVertexAttrib4NubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4Nuiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttrib4NuivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttrib4Nusv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glVertexAttrib4NusvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4bv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
glVertexAttrib4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4d</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttrib4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib4dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib4f</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexAttrib4fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib4fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib4fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib4iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttrib4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttrib4s</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glVertexAttrib4sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4ubv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVertexAttrib4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttrib4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttrib4usv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glVertexAttrib4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())

-- | Usage: <tt><a>glVertexAttribI1i</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()
glVertexAttribI1iFunPtr :: FunPtr (GLuint -> GLint -> IO ())

-- | Usage: <tt><a>glVertexAttribI1iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttribI1ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttribI1ui</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()
glVertexAttribI1uiFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribI1uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttribI1uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribI2i</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
glVertexAttribI2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glVertexAttribI2iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttribI2ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttribI2ui</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexAttribI2uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribI2uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttribI2uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribI3i</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI3iv</a>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
glVertexAttribI3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glVertexAttribI3iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttribI3ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttribI3ui</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
glVertexAttribI3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribI3uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttribI3uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribI4bv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
glVertexAttribI4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())

-- | Usage: <tt><a>glVertexAttribI4i</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glVertexAttribI4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glVertexAttribI4iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttribI4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttribI4sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttribI4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttribI4ubv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVertexAttribI4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glVertexAttribI4ui</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glVertexAttribI4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribI4uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttribI4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribI4usv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glVertexAttribI4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())

-- | Usage: <tt><a>glVertexAttribIPointer</a> index size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glVertexAttribIPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glVertexAttribPointer</a> index size type normalized
--   stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml</a>
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
glVertexAttribPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glViewport</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml</a>
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
glViewportFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glWaitSync</a> sync flags timeout</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glWaitSync.xhtml</a>
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
glWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())

-- | Usage: <tt><a>glBindFragDataLocationIndexed</a> program colorNumber
--   index name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocationIndexed.xhtml</a>
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
glBindFragDataLocationIndexedFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glBindSampler</a> unit sampler</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindSampler.xhtml</a>
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()
glBindSamplerFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glDeleteSamplers</a> count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteSamplers.xhtml</a>
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGenSamplers</a> count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenSamplers.xhtml</a>
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetFragDataIndex</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetFragDataIndex.xhtml</a>
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
glGetFragDataIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)

-- | Usage: <tt><a>glGetQueryObjecti64v</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
glGetQueryObjecti64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())

-- | Usage: <tt><a>glGetQueryObjectui64v</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
glGetQueryObjectui64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())

-- | Usage: <tt><a>glGetSamplerParameterIiv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetSamplerParameterIuiv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetSamplerParameterfv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetSamplerParameteriv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glIsSampler</a> sampler</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsSampler.xhtml</a>
glIsSampler :: MonadIO m => GLuint -> m GLboolean
glIsSamplerFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glQueryCounter</a> id target</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glQueryCounter.xhtml</a>
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()
glQueryCounterFunPtr :: FunPtr (GLuint -> GLenum -> IO ())

-- | Usage: <tt><a>glSamplerParameterIiv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glSamplerParameterIuiv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glSamplerParameterf</a> sampler pname param</tt>
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
glSamplerParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glSamplerParameterfv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glSamplerParameteri</a> sampler pname param</tt>
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glSamplerParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glSamplerParameteriv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttribDivisor</a> index divisor</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribDivisor.xhtml</a>
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()
glVertexAttribDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribP1ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP1uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribP1uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
glVertexAttribP1uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribP2ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP2uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribP2uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
glVertexAttribP2uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribP3ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP3uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribP3uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
glVertexAttribP3uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribP4ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribP4uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribP4uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
glVertexAttribP4uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glBeginQueryIndexed</a> target index id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginQueryIndexed.xhtml</a>
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
glBeginQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glBindTransformFeedback</a> target id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTransformFeedback.xhtml</a>
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
glBindTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glBlendEquationSeparatei</a> buf modeRGB modeAlpha</tt>
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
glBlendEquationSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glBlendEquationi</a> buf mode</tt>
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()
glBlendEquationiFunPtr :: FunPtr (GLuint -> GLenum -> IO ())

-- | Usage: <tt><a>glBlendFuncSeparatei</a> buf srcRGB dstRGB srcAlpha
--   dstAlpha</tt>
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glBlendFuncSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glBlendFunci</a> buf src dst</tt>
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
glBlendFunciFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glDeleteTransformFeedbacks</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteTransformFeedbacks.xhtml</a>
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glDrawArraysIndirect</a> mode indirect</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysIndirect.xhtml</a>
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()
glDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glDrawElementsIndirect</a> mode type indirect</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsIndirect.xhtml</a>
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
glDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glDrawTransformFeedback</a> mode id</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedback.xhtml</a>
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
glDrawTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glDrawTransformFeedbackStream</a> mode id stream</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStream.xhtml</a>
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
glDrawTransformFeedbackStreamFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glEndQueryIndexed</a> target index</tt>
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()
glEndQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glGenTransformFeedbacks</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTransformFeedbacks.xhtml</a>
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetActiveSubroutineName</a> program shadertype index
--   bufsize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufsize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineName.xhtml</a>
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetActiveSubroutineNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetActiveSubroutineUniformName</a> program shadertype
--   index bufsize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufsize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineUniformName.xhtml</a>
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetActiveSubroutineUniformNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetActiveSubroutineUniformiv</a> program shadertype
--   index pname values</tt>
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetActiveSubroutineUniformivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetProgramStageiv</a> program shadertype pname
--   values</tt>
--   
--   The length of <tt>values</tt> should be <tt>1</tt>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetProgramStageivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetQueryIndexediv</a> target index pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetQueryIndexedivFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetSubroutineIndex</a> program shadertype name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetSubroutineIndex.xhtml</a>
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
glGetSubroutineIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)

-- | Usage: <tt><a>glGetSubroutineUniformLocation</a> program shadertype
--   name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetSubroutineUniformLocation.xhtml</a>
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
glGetSubroutineUniformLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)

-- | Usage: <tt><a>glGetUniformSubroutineuiv</a> shadertype location
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
glGetUniformSubroutineuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetUniformdv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()
glGetUniformdvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glIsTransformFeedback</a> id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsTransformFeedback.xhtml</a>
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean
glIsTransformFeedbackFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glMinSampleShading</a> value</tt>
--   
--   The parameter <tt>value</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMinSampleShading.xhtml</a>
glMinSampleShading :: MonadIO m => GLfloat -> m ()
glMinSampleShadingFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glPatchParameterfv</a> pname values</tt>
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(pname)</tt>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glPatchParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glPatchParameteri</a> pname value</tt>
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()
glPatchParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glPauseTransformFeedback</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPauseTransformFeedback.xhtml</a>
glPauseTransformFeedback :: MonadIO m => m ()
glPauseTransformFeedbackFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glResumeTransformFeedback</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glResumeTransformFeedback.xhtml</a>
glResumeTransformFeedback :: MonadIO m => m ()
glResumeTransformFeedbackFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glUniform1d</a> location x</tt>
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
glUniform1dFunPtr :: FunPtr (GLint -> GLdouble -> IO ())

-- | Usage: <tt><a>glUniform1dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
glUniform1dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniform2d</a> location x y</tt>
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glUniform2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glUniform2dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
glUniform2dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniform3d</a> location x y z</tt>
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform3dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glUniform3dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
glUniform3dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniform4d</a> location x y z w</tt>
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glUniform4dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glUniform4dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
glUniform4dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformMatrix2dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformMatrix2x3dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix2x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformMatrix2x4dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix2x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformMatrix3dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformMatrix3x2dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix3x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformMatrix3x4dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix3x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformMatrix4dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformMatrix4x2dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix4x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformMatrix4x3dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glUniformMatrix4x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glUniformSubroutinesuiv</a> shadertype count
--   indices</tt>
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glUniformSubroutinesuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glActiveShaderProgram</a> pipeline program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveShaderProgram.xhtml</a>
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()
glActiveShaderProgramFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glBindProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindProgramPipeline.xhtml</a>
glBindProgramPipeline :: MonadIO m => GLuint -> m ()
glBindProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glClearDepthf</a> d</tt>
glClearDepthf :: MonadIO m => GLfloat -> m ()
glClearDepthfFunPtr :: FunPtr (GLfloat -> IO ())

-- | Usage: <tt><a>glCreateShaderProgramv</a> type count strings</tt>
--   
--   The length of <tt>strings</tt> should be <tt>count</tt>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
glCreateShaderProgramvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)

-- | Usage: <tt><a>glDeleteProgramPipelines</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteProgramPipelines.xhtml</a>
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glDepthRangeArrayv</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glDepthRangeArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glDepthRangeIndexed</a> index n f</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthRangeIndexed.xhtml</a>
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
glDepthRangeIndexedFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glDepthRangef</a> n f</tt>
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()
glDepthRangefFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glGenProgramPipelines</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenProgramPipelines.xhtml</a>
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetDoublei_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetDoublei_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glGetFloati_v</a> target index data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetFloati_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetProgramBinary</a> program bufSize length
--   binaryFormat binary</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binaryFormat</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binary</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramBinary.xhtml</a>
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
glGetProgramBinaryFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetProgramPipelineInfoLog</a> pipeline bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramPipelineInfoLog.xhtml</a>
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetProgramPipelineInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetProgramPipelineiv</a> pipeline pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetProgramPipelineivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetShaderPrecisionFormat</a> shadertype precisiontype
--   range precision</tt>
--   
--   The length of <tt>range</tt> should be <tt>2</tt>.
--   
--   The length of <tt>precision</tt> should be <tt>2</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderPrecisionFormat.xhtml</a>
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
glGetShaderPrecisionFormatFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetVertexAttribLdv</a> index pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetVertexAttribLdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glIsProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsProgramPipeline.xhtml</a>
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean
glIsProgramPipelineFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glProgramBinary</a> program binaryFormat binary
--   length</tt>
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml</a>
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
glProgramBinaryFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())

-- | Usage: <tt><a>glProgramParameteri</a> program pname value</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramParameterPName</tt>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform1d</a> program location v0</tt>
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
glProgramUniform1dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniform1dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glProgramUniform1dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniform1f</a> program location v0</tt>
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
glProgramUniform1fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform1fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glProgramUniform1fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform1i</a> program location v0</tt>
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
glProgramUniform1iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform1iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glProgramUniform1ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform1ui</a> program location v0</tt>
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
glProgramUniform1uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform1uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform1uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform2d</a> program location v0 v1</tt>
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
glProgramUniform2dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniform2dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glProgramUniform2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniform2f</a> program location v0 v1</tt>
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
glProgramUniform2fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform2fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glProgramUniform2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform2i</a> program location v0 v1</tt>
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
glProgramUniform2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform2iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glProgramUniform2ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform2ui</a> program location v0 v1</tt>
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
glProgramUniform2uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform2uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform3d</a> program location v0 v1 v2</tt>
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform3dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniform3dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glProgramUniform3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniform3f</a> program location v0 v1 v2</tt>
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramUniform3fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform3fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glProgramUniform3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform3i</a> program location v0 v1 v2</tt>
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramUniform3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform3iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glProgramUniform3ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform3ui</a> program location v0 v1 v2</tt>
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
glProgramUniform3uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform3uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform4d</a> program location v0 v1 v2 v3</tt>
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramUniform4dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniform4dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glProgramUniform4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniform4f</a> program location v0 v1 v2 v3</tt>
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramUniform4fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform4fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glProgramUniform4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform4i</a> program location v0 v1 v2 v3</tt>
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramUniform4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform4iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glProgramUniform4ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform4ui</a> program location v0 v1 v2
--   v3</tt>
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glProgramUniform4uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform4uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix2dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix2x3dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix2x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix2x3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix2x4dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix2x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix2x4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix3dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix3x2dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix3x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix3x2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix3x4dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix3x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix3x4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix4dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix4x2dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix4x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix4x2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix4x3dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
glProgramUniformMatrix4x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix4x3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glReleaseShaderCompiler</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReleaseShaderCompiler.xhtml</a>
glReleaseShaderCompiler :: MonadIO m => m ()
glReleaseShaderCompilerFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glScissorArrayv</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
glScissorArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glScissorIndexed</a> index left bottom width height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glScissorIndexed.xhtml</a>
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glScissorIndexedFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glScissorIndexedv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()
glScissorIndexedvFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glShaderBinary</a> count shaders binaryformat binary
--   length</tt>
--   
--   The length of <tt>shaders</tt> should be <tt>count</tt>.
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderBinary.xhtml</a>
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
glShaderBinaryFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())

-- | Usage: <tt><a>glUseProgramStages</a> pipeline stages program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUseProgramStages.xhtml</a>
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
glUseProgramStagesFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())

-- | Usage: <tt><a>glValidateProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glValidateProgramPipeline.xhtml</a>
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()
glValidateProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribL1d</a> index x</tt>
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()
glVertexAttribL1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttribL1dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttribL2d</a> index x y</tt>
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
glVertexAttribL2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttribL2dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttribL3d</a> index x y z</tt>
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttribL3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttribL3dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttribL4d</a> index x y z w</tt>
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttribL4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttribL4dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttribLPointer</a> index size type stride
--   pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>size</tt>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glVertexAttribLPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glViewportArrayv</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glViewportArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glViewportIndexedf</a> index x y w h</tt>
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glViewportIndexedfFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glViewportIndexedfv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glViewportIndexedfvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glBindImageTexture</a> unit texture level layered layer
--   access format</tt>
--   
--   The parameter <tt>layered</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindImageTexture.xhtml</a>
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
glBindImageTextureFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glDrawArraysInstancedBaseInstance</a> mode first count
--   instancecount baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstancedBaseInstance.xhtml</a>
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
glDrawArraysInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())

-- | Usage: <tt><a>glDrawElementsInstancedBaseInstance</a> mode count type
--   indices instancecount baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseInstance.xhtml</a>
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
glDrawElementsInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertexBaseInstance</a> mode
--   count type indices instancecount basevertex baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml</a>
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
glDrawElementsInstancedBaseVertexBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())

-- | Usage: <tt><a>glDrawTransformFeedbackInstanced</a> mode id
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackInstanced.xhtml</a>
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
glDrawTransformFeedbackInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())

-- | Usage: <tt><a>glDrawTransformFeedbackStreamInstanced</a> mode id
--   stream instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStreamInstanced.xhtml</a>
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
glDrawTransformFeedbackStreamInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())

-- | Usage: <tt><a>glGetActiveAtomicCounterBufferiv</a> program bufferIndex
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveAtomicCounterBufferiv.xhtml</a>
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetActiveAtomicCounterBufferivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetInternalformativ</a> target internalformat pname
--   bufSize params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
glGetInternalformativFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glMemoryBarrier</a> barriers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMemoryBarrier.xhtml</a>
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()
glMemoryBarrierFunPtr :: FunPtr (GLbitfield -> IO ())

-- | Usage: <tt><a>glTexStorage1D</a> target levels internalformat
--   width</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage1D.xhtml</a>
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
glTexStorage1DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())

-- | Usage: <tt><a>glTexStorage2D</a> target levels internalformat width
--   height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml</a>
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glTexStorage2DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glTexStorage3D</a> target levels internalformat width
--   height depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage3D.xhtml</a>
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
glTexStorage3DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glBindVertexBuffer</a> bindingindex buffer offset
--   stride</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffer.xhtml</a>
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
glBindVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())

-- | Usage: <tt><a>glClearBufferData</a> target internalformat format type
--   data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearBufferData.xhtml</a>
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
glClearBufferDataFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glClearBufferSubData</a> target internalformat offset
--   size format type data</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearBufferSubData.xhtml</a>
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
glClearBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glCopyImageSubData</a> srcName srcTarget srcLevel srcX
--   srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight
--   srcDepth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyImageSubData.xhtml</a>
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
glCopyImageSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glDebugMessageCallback</a> callback userParam</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageCallback.xhtml</a>
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()
glDebugMessageCallbackFunPtr :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ())

-- | Usage: <tt><a>glDebugMessageControl</a> source type severity count ids
--   enabled</tt>
--   
--   The parameter <tt>enabled</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageControl.xhtml</a>
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
glDebugMessageControlFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())

-- | Usage: <tt><a>glDebugMessageInsert</a> source type id severity length
--   buf</tt>
--   
--   The length of <tt>buf</tt> should be <tt>COMPSIZE(buf,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageInsert.xhtml</a>
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
glDebugMessageInsertFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glDispatchCompute</a> num_groups_x num_groups_y
--   num_groups_z</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDispatchCompute.xhtml</a>
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glDispatchComputeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glDispatchComputeIndirect</a> indirect</tt>
--   
--   The parameter <tt>indirect</tt> is a <tt>BufferOffset</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDispatchComputeIndirect.xhtml</a>
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()
glDispatchComputeIndirectFunPtr :: FunPtr (GLintptr -> IO ())

-- | Usage: <tt><a>glFramebufferParameteri</a> target pname param</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferParameteri.xhtml</a>
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFramebufferParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glGetDebugMessageLog</a> count bufSize sources types ids
--   severities lengths messageLog</tt>
--   
--   The length of <tt>sources</tt> should be <tt>count</tt>.
--   
--   The length of <tt>types</tt> should be <tt>count</tt>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   The length of <tt>severities</tt> should be <tt>count</tt>.
--   
--   The length of <tt>lengths</tt> should be <tt>count</tt>.
--   
--   The length of <tt>messageLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetDebugMessageLog.xhtml</a>
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
glGetDebugMessageLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)

-- | Usage: <tt><a>glGetFramebufferParameteriv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFramebufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetInternalformati64v</a> target internalformat pname
--   bufSize params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
glGetInternalformati64vFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())

-- | Usage: <tt><a>glGetObjectLabel</a> identifier name bufSize length
--   label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetObjectLabel.xhtml</a>
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetObjectPtrLabel</a> ptr bufSize length label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetObjectPtrLabel.xhtml</a>
glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetProgramInterfaceiv</a> program programInterface
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetProgramInterfaceivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetProgramResourceIndex</a> program programInterface
--   name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceIndex.xhtml</a>
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
glGetProgramResourceIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)

-- | Usage: <tt><a>glGetProgramResourceLocation</a> program
--   programInterface name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocation.xhtml</a>
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
glGetProgramResourceLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)

-- | Usage: <tt><a>glGetProgramResourceLocationIndex</a> program
--   programInterface name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocationIndex.xhtml</a>
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
glGetProgramResourceLocationIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)

-- | Usage: <tt><a>glGetProgramResourceName</a> program programInterface
--   index bufSize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceName.xhtml</a>
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetProgramResourceNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glGetProgramResourceiv</a> program programInterface
--   index propCount props bufSize length params</tt>
--   
--   The length of <tt>props</tt> should be <tt>propCount</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
glGetProgramResourceivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glInvalidateBufferData</a> buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferData.xhtml</a>
glInvalidateBufferData :: MonadIO m => GLuint -> m ()
glInvalidateBufferDataFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glInvalidateBufferSubData</a> buffer offset length</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferSubData.xhtml</a>
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
glInvalidateBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())

-- | Usage: <tt><a>glInvalidateFramebuffer</a> target numAttachments
--   attachments</tt>
--   
--   The length of <tt>attachments</tt> should be <tt>numAttachments</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateFramebuffer.xhtml</a>
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
glInvalidateFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())

-- | Usage: <tt><a>glInvalidateSubFramebuffer</a> target numAttachments
--   attachments x y width height</tt>
--   
--   The length of <tt>attachments</tt> should be <tt>numAttachments</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateSubFramebuffer.xhtml</a>
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glInvalidateSubFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glInvalidateTexImage</a> texture level</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateTexImage.xhtml</a>
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()
glInvalidateTexImageFunPtr :: FunPtr (GLuint -> GLint -> IO ())

-- | Usage: <tt><a>glInvalidateTexSubImage</a> texture level xoffset
--   yoffset zoffset width height depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateTexSubImage.xhtml</a>
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
glInvalidateTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glMultiDrawArraysIndirect</a> mode indirect drawcount
--   stride</tt>
--   
--   The length of <tt>indirect</tt> should be
--   <tt>COMPSIZE(drawcount,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawArraysIndirect.xhtml</a>
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
glMultiDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glMultiDrawElementsIndirect</a> mode type indirect
--   drawcount stride</tt>
--   
--   The length of <tt>indirect</tt> should be
--   <tt>COMPSIZE(drawcount,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsIndirect.xhtml</a>
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
glMultiDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glObjectLabel</a> identifier name length label</tt>
--   
--   The length of <tt>label</tt> should be
--   <tt>COMPSIZE(label,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glObjectLabel.xhtml</a>
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
glObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glObjectPtrLabel</a> ptr length label</tt>
--   
--   The length of <tt>label</tt> should be
--   <tt>COMPSIZE(label,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glObjectPtrLabel.xhtml</a>
glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
glObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glPopDebugGroup</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPopDebugGroup.xhtml</a>
glPopDebugGroup :: MonadIO m => m ()
glPopDebugGroupFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glPushDebugGroup</a> source id length message</tt>
--   
--   The length of <tt>message</tt> should be
--   <tt>COMPSIZE(message,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPushDebugGroup.xhtml</a>
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
glPushDebugGroupFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glShaderStorageBlockBinding</a> program
--   storageBlockIndex storageBlockBinding</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderStorageBlockBinding.xhtml</a>
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glShaderStorageBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glTexBufferRange</a> target internalformat buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexBufferRange.xhtml</a>
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glTexBufferRangeFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())

-- | Usage: <tt><a>glTexStorage2DMultisample</a> target samples
--   internalformat width height fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage2DMultisample.xhtml</a>
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexStorage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())

-- | Usage: <tt><a>glTexStorage3DMultisample</a> target samples
--   internalformat width height depth fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage3DMultisample.xhtml</a>
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexStorage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())

-- | Usage: <tt><a>glTextureView</a> texture target origtexture
--   internalformat minlevel numlevels minlayer numlayers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTextureView.xhtml</a>
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glTextureViewFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribBinding</a> attribindex bindingindex</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribBinding.xhtml</a>
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()
glVertexAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribFormat</a> attribindex size type
--   normalized relativeoffset</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribFormat.xhtml</a>
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexAttribFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribIFormat</a> attribindex size type
--   relativeoffset</tt>
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexAttribIFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttribLFormat</a> attribindex size type
--   relativeoffset</tt>
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexAttribLFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexBindingDivisor</a> bindingindex divisor</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexBindingDivisor.xhtml</a>
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
glVertexBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glBindBuffersBase</a> target first count buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffersBase.xhtml</a>
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
glBindBuffersBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glBindBuffersRange</a> target first count buffers
--   offsets sizes</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>count</tt>.
--   
--   The length of <tt>offsets</tt> should be <tt>count</tt>.
--   
--   The length of <tt>sizes</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffersRange.xhtml</a>
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
glBindBuffersRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())

-- | Usage: <tt><a>glBindImageTextures</a> first count textures</tt>
--   
--   The length of <tt>textures</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindImageTextures.xhtml</a>
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
glBindImageTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glBindSamplers</a> first count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindSamplers.xhtml</a>
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
glBindSamplersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glBindTextures</a> first count textures</tt>
--   
--   The length of <tt>textures</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTextures.xhtml</a>
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
glBindTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glBindVertexBuffers</a> first count buffers offsets
--   strides</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>count</tt>.
--   
--   The length of <tt>offsets</tt> should be <tt>count</tt>.
--   
--   The length of <tt>strides</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffers.xhtml</a>
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
glBindVertexBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())

-- | Usage: <tt><a>glBufferStorage</a> target size data flags</tt>
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferStorage.xhtml</a>
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
glBufferStorageFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())

-- | Usage: <tt><a>glClearTexImage</a> texture level format type data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearTexImage.xhtml</a>
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
glClearTexImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glClearTexSubImage</a> texture level xoffset yoffset
--   zoffset width height depth format type data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearTexSubImage.xhtml</a>
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glClearTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glBindTextureUnit</a> unit texture</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTextureUnit.xhtml</a>
glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()
glBindTextureUnitFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glBlitNamedFramebuffer</a> readFramebuffer
--   drawFramebuffer srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask
--   filter</tt>
glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
glBlitNamedFramebufferFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())

-- | Usage: <tt><a>glCheckNamedFramebufferStatus</a> framebuffer
--   target</tt>
glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum
glCheckNamedFramebufferStatusFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)

-- | Usage: <tt><a>glClearNamedBufferData</a> buffer internalformat format
--   type data</tt>
glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
glClearNamedBufferDataFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glClearNamedBufferSubData</a> buffer internalformat
--   offset size format type data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
glClearNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glClearNamedFramebufferfi</a> framebuffer buffer
--   drawbuffer depth stencil</tt>
glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()
glClearNamedFramebufferfiFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ())

-- | Usage: <tt><a>glClearNamedFramebufferfv</a> framebuffer buffer
--   drawbuffer value</tt>
glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
glClearNamedFramebufferfvFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glClearNamedFramebufferiv</a> framebuffer buffer
--   drawbuffer value</tt>
glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
glClearNamedFramebufferivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glClearNamedFramebufferuiv</a> framebuffer buffer
--   drawbuffer value</tt>
glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
glClearNamedFramebufferuivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glClipControl</a> origin depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClipControl.xhtml</a>
glClipControl :: MonadIO m => GLenum -> GLenum -> m ()
glClipControlFunPtr :: FunPtr (GLenum -> GLenum -> IO ())

-- | Usage: <tt><a>glCompressedTextureSubImage1D</a> texture level xoffset
--   width format imageSize data</tt>
glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
glCompressedTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCompressedTextureSubImage2D</a> texture level xoffset
--   yoffset width height format imageSize data</tt>
glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
glCompressedTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCompressedTextureSubImage3D</a> texture level xoffset
--   yoffset zoffset width height depth format imageSize data</tt>
glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
glCompressedTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glCopyNamedBufferSubData</a> readBuffer writeBuffer
--   readOffset writeOffset size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
glCopyNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())

-- | Usage: <tt><a>glCopyTextureSubImage1D</a> texture level xoffset x y
--   width</tt>
glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
glCopyTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())

-- | Usage: <tt><a>glCopyTextureSubImage2D</a> texture level xoffset
--   yoffset x y width height</tt>
glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glCopyTextureSubImage3D</a> texture level xoffset
--   yoffset zoffset x y width height</tt>
glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glCreateBuffers</a> n buffers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateBuffers.xhtml</a>
glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glCreateFramebuffers</a> n framebuffers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateFramebuffers.xhtml</a>
glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glCreateProgramPipelines</a> n pipelines</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateProgramPipelines.xhtml</a>
glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glCreateQueries</a> target n ids</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateQueries.xhtml</a>
glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glCreateQueriesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glCreateRenderbuffers</a> n renderbuffers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateRenderbuffers.xhtml</a>
glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glCreateSamplers</a> n samplers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateSamplers.xhtml</a>
glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glCreateTextures</a> target n textures</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateTextures.xhtml</a>
glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glCreateTexturesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glCreateTransformFeedbacks</a> n ids</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateTransformFeedbacks.xhtml</a>
glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glCreateVertexArrays</a> n arrays</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateVertexArrays.xhtml</a>
glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glCreateVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glDisableVertexArrayAttrib</a> vaobj index</tt>
glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
glDisableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glEnableVertexArrayAttrib</a> vaobj index</tt>
glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
glEnableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glFlushMappedNamedBufferRange</a> buffer offset
--   length</tt>
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
glFlushMappedNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())

-- | Usage: <tt><a>glGenerateTextureMipmap</a> texture</tt>
glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()
glGenerateTextureMipmapFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glGetCompressedTextureImage</a> texture level bufSize
--   pixels</tt>
glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()
glGetCompressedTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetCompressedTextureSubImage</a> texture level xoffset
--   yoffset zoffset width height depth bufSize pixels</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetCompressedTextureSubImage.xhtml</a>
glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
glGetCompressedTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetGraphicsResetStatus</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml</a>
glGetGraphicsResetStatus :: MonadIO m => m GLenum
glGetGraphicsResetStatusFunPtr :: FunPtr (IO GLenum)

-- | Usage: <tt><a>glGetNamedBufferParameteri64v</a> buffer pname
--   params</tt>
glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
glGetNamedBufferParameteri64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())

-- | Usage: <tt><a>glGetNamedBufferParameteriv</a> buffer pname params</tt>
glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedBufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetNamedBufferPointerv</a> buffer pname params</tt>
glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
glGetNamedBufferPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())

-- | Usage: <tt><a>glGetNamedBufferSubData</a> buffer offset size data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
glGetNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetNamedFramebufferAttachmentParameteriv</a>
--   framebuffer attachment pname params</tt>
glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetNamedFramebufferAttachmentParameterivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetNamedFramebufferParameteriv</a> framebuffer pname
--   param</tt>
glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedFramebufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetNamedRenderbufferParameteriv</a> renderbuffer pname
--   params</tt>
glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetNamedRenderbufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetQueryBufferObjecti64v</a> id buffer pname
--   offset</tt>
glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjecti64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())

-- | Usage: <tt><a>glGetQueryBufferObjectiv</a> id buffer pname offset</tt>
glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())

-- | Usage: <tt><a>glGetQueryBufferObjectui64v</a> id buffer pname
--   offset</tt>
glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectui64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())

-- | Usage: <tt><a>glGetQueryBufferObjectuiv</a> id buffer pname
--   offset</tt>
glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
glGetQueryBufferObjectuivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())

-- | Usage: <tt><a>glGetTextureImage</a> texture level format type bufSize
--   pixels</tt>
glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetTextureLevelParameterfv</a> texture level pname
--   params</tt>
glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
glGetTextureLevelParameterfvFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetTextureLevelParameteriv</a> texture level pname
--   params</tt>
glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
glGetTextureLevelParameterivFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTextureParameterIiv</a> texture pname params</tt>
glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTextureParameterIuiv</a> texture pname params</tt>
glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetTextureParameterfv</a> texture pname params</tt>
glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetTextureParameteriv</a> texture pname params</tt>
glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTextureSubImage</a> texture level xoffset yoffset
--   zoffset width height depth format type bufSize pixels</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTextureSubImage.xhtml</a>
glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetTransformFeedbacki64_v</a> xfb pname index
--   param</tt>
glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
glGetTransformFeedbacki64_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())

-- | Usage: <tt><a>glGetTransformFeedbacki_v</a> xfb pname index param</tt>
glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
glGetTransformFeedbacki_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTransformFeedbackiv</a> xfb pname param</tt>
glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetTransformFeedbackivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetVertexArrayIndexed64iv</a> vaobj index pname
--   param</tt>
glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
glGetVertexArrayIndexed64ivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())

-- | Usage: <tt><a>glGetVertexArrayIndexediv</a> vaobj index pname
--   param</tt>
glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexArrayIndexedivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetVertexArrayiv</a> vaobj pname param</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetVertexArrayiv.xhtml</a>
glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexArrayivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetnUniformfv</a> program location bufSize params</tt>
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glGetnUniformfvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetnUniformiv</a> program location bufSize params</tt>
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glGetnUniformivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetnUniformuiv</a> program location bufSize
--   params</tt>
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glGetnUniformuivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glInvalidateNamedFramebufferData</a> framebuffer
--   numAttachments attachments</tt>
glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
glInvalidateNamedFramebufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())

-- | Usage: <tt><a>glInvalidateNamedFramebufferSubData</a> framebuffer
--   numAttachments attachments x y width height</tt>
glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glInvalidateNamedFramebufferSubDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glMapNamedBuffer</a> buffer access</tt>
glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
glMapNamedBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))

-- | Usage: <tt><a>glMapNamedBufferRange</a> buffer offset length
--   access</tt>
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
glMapNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))

-- | Usage: <tt><a>glMemoryBarrierByRegion</a> barriers</tt>
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()
glMemoryBarrierByRegionFunPtr :: FunPtr (GLbitfield -> IO ())

-- | Usage: <tt><a>glNamedBufferData</a> buffer size data usage</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
glNamedBufferDataFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ())

-- | Usage: <tt><a>glNamedBufferStorage</a> buffer size data flags</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
glNamedBufferStorageFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())

-- | Usage: <tt><a>glNamedBufferSubData</a> buffer offset size data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(size)</tt>.
glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
glNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())

-- | Usage: <tt><a>glNamedFramebufferDrawBuffer</a> framebuffer buf</tt>
glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()
glNamedFramebufferDrawBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())

-- | Usage: <tt><a>glNamedFramebufferDrawBuffers</a> framebuffer n
--   bufs</tt>
glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
glNamedFramebufferDrawBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())

-- | Usage: <tt><a>glNamedFramebufferParameteri</a> framebuffer pname
--   param</tt>
glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glNamedFramebufferParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glNamedFramebufferReadBuffer</a> framebuffer src</tt>
glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()
glNamedFramebufferReadBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())

-- | Usage: <tt><a>glNamedFramebufferRenderbuffer</a> framebuffer
--   attachment renderbuffertarget renderbuffer</tt>
glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
glNamedFramebufferRenderbufferFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glNamedFramebufferTexture</a> framebuffer attachment
--   texture level</tt>
glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
glNamedFramebufferTextureFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())

-- | Usage: <tt><a>glNamedFramebufferTextureLayer</a> framebuffer
--   attachment texture level layer</tt>
glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
glNamedFramebufferTextureLayerFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glNamedRenderbufferStorage</a> renderbuffer
--   internalformat width height</tt>
glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
glNamedRenderbufferStorageFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glNamedRenderbufferStorageMultisample</a> renderbuffer
--   samples internalformat width height</tt>
glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glNamedRenderbufferStorageMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glReadnPixels</a> x y width height format type bufSize
--   data</tt>
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glReadnPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glTextureBarrier</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTextureBarrier.xhtml</a>
glTextureBarrier :: MonadIO m => m ()
glTextureBarrierFunPtr :: FunPtr (IO ())

-- | Usage: <tt><a>glTextureBuffer</a> texture internalformat buffer</tt>
glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
glTextureBufferFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glTextureBufferRange</a> texture internalformat buffer
--   offset size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glTextureBufferRangeFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())

-- | Usage: <tt><a>glTextureParameterIiv</a> texture pname params</tt>
glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glTextureParameterIuiv</a> texture pname params</tt>
glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glTextureParameterf</a> texture pname param</tt>
glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
glTextureParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())

-- | Usage: <tt><a>glTextureParameterfv</a> texture pname param</tt>
glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glTextureParameteri</a> texture pname param</tt>
glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glTextureParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glTextureParameteriv</a> texture pname param</tt>
glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glTextureStorage1D</a> texture levels internalformat
--   width</tt>
glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
glTextureStorage1DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())

-- | Usage: <tt><a>glTextureStorage2D</a> texture levels internalformat
--   width height</tt>
glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glTextureStorage2DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glTextureStorage2DMultisample</a> texture samples
--   internalformat width height fixedsamplelocations</tt>
glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureStorage2DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())

-- | Usage: <tt><a>glTextureStorage3D</a> texture levels internalformat
--   width height depth</tt>
glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
glTextureStorage3DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glTextureStorage3DMultisample</a> texture samples
--   internalformat width height depth fixedsamplelocations</tt>
glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureStorage3DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())

-- | Usage: <tt><a>glTextureSubImage1D</a> texture level xoffset width
--   format type pixels</tt>
glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glTextureSubImage2D</a> texture level xoffset yoffset
--   width height format type pixels</tt>
glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glTextureSubImage3D</a> texture level xoffset yoffset
--   zoffset width height depth format type pixels</tt>
glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glTransformFeedbackBufferBase</a> xfb index buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferBase.xhtml</a>
glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glTransformFeedbackBufferBaseFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glTransformFeedbackBufferRange</a> xfb index buffer
--   offset size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferRange.xhtml</a>
glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glTransformFeedbackBufferRangeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())

-- | Usage: <tt><a>glUnmapNamedBuffer</a> buffer</tt>
glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean
glUnmapNamedBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glVertexArrayAttribBinding</a> vaobj attribindex
--   bindingindex</tt>
glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexArrayAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexArrayAttribFormat</a> vaobj attribindex size
--   type normalized relativeoffset</tt>
glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
glVertexArrayAttribFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexArrayAttribIFormat</a> vaobj attribindex size
--   type relativeoffset</tt>
glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexArrayAttribIFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexArrayAttribLFormat</a> vaobj attribindex size
--   type relativeoffset</tt>
glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
glVertexArrayAttribLFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexArrayBindingDivisor</a> vaobj bindingindex
--   divisor</tt>
glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexArrayBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexArrayElementBuffer</a> vaobj buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexArrayElementBuffer.xhtml</a>
glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()
glVertexArrayElementBufferFunPtr :: FunPtr (GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glVertexArrayVertexBuffer</a> vaobj bindingindex buffer
--   offset stride</tt>
glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
glVertexArrayVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())

-- | Usage: <tt><a>glVertexArrayVertexBuffers</a> vaobj first count buffers
--   offsets strides</tt>
glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
glVertexArrayVertexBuffersFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())

-- | Usage: <tt><a>glGetUniformi64vNV</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
glGetUniformi64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())

-- | Usage: <tt><a>glGetUniformui64vNV</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
glGetUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform1i64NV</a> program location x</tt>
glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
glProgramUniform1i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform1i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform1i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform1ui64NV</a> program location x</tt>
glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
glProgramUniform1ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform1ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform1ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform2i64NV</a> program location x y</tt>
glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform2i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform2i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform2i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform2ui64NV</a> program location x y</tt>
glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform2ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform2ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform2ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform3i64NV</a> program location x y z</tt>
glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform3i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform3i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform3i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform3ui64NV</a> program location x y z</tt>
glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform3ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform3ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform3ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform4i64NV</a> program location x y z w</tt>
glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glProgramUniform4i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform4i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glProgramUniform4i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform4ui64NV</a> program location x y z
--   w</tt>
glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glProgramUniform4ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())

-- | Usage: <tt><a>glProgramUniform4ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glProgramUniform4ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())

-- | Usage: <tt><a>glUniform1i64NV</a> location x</tt>
glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
glUniform1i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> IO ())

-- | Usage: <tt><a>glUniform1i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform1i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())

-- | Usage: <tt><a>glUniform1ui64NV</a> location x</tt>
glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
glUniform1ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())

-- | Usage: <tt><a>glUniform1ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform1ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())

-- | Usage: <tt><a>glUniform2i64NV</a> location x y</tt>
glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
glUniform2i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())

-- | Usage: <tt><a>glUniform2i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform2i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())

-- | Usage: <tt><a>glUniform2ui64NV</a> location x y</tt>
glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform2ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())

-- | Usage: <tt><a>glUniform2ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform2ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())

-- | Usage: <tt><a>glUniform3i64NV</a> location x y z</tt>
glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glUniform3i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())

-- | Usage: <tt><a>glUniform3i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform3i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())

-- | Usage: <tt><a>glUniform3ui64NV</a> location x y z</tt>
glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform3ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())

-- | Usage: <tt><a>glUniform3ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform3ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())

-- | Usage: <tt><a>glUniform4i64NV</a> location x y z w</tt>
glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
glUniform4i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())

-- | Usage: <tt><a>glUniform4i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
glUniform4i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())

-- | Usage: <tt><a>glUniform4ui64NV</a> location x y z w</tt>
glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
glUniform4ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())

-- | Usage: <tt><a>glUniform4ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
glUniform4ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())

-- | Usage: <tt><a>glBindProgramARB</a> target program</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
glBindProgramARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glDeleteProgramsARB</a> n programs</tt>
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGenProgramsARB</a> n programs</tt>
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetProgramEnvParameterdvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetProgramEnvParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glGetProgramEnvParameterfvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetProgramEnvParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetProgramLocalParameterdvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glGetProgramLocalParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glGetProgramLocalParameterfvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetProgramLocalParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetProgramStringARB</a> target pname string</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramStringPropertyARB</tt>.
--   
--   The length of <tt>string</tt> should be
--   <tt>COMPSIZE(target,pname)</tt>.
glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
glGetProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())

-- | Usage: <tt><a>glGetProgramivARB</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetProgramivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glIsProgramARB</a> program</tt>
glIsProgramARB :: MonadIO m => GLuint -> m GLboolean
glIsProgramARBFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glProgramEnvParameter4dARB</a> target index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramEnvParameter4dvARB</a>.
glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramEnvParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glProgramEnvParameter4dvARB</a> target index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glProgramEnvParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramEnvParameter4fARB</a> target index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramEnvParameter4fvARB</a>.
glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramEnvParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramEnvParameter4fvARB</a> target index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glProgramEnvParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramLocalParameter4dARB</a> target index x y z
--   w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramLocalParameter4dvARB</a>.
glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramLocalParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glProgramLocalParameter4dvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glProgramLocalParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glProgramLocalParameter4fARB</a> target index x y z
--   w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramLocalParameter4fvARB</a>.
glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramLocalParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramLocalParameter4fvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glProgramLocalParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramStringARB</a> target format len string</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>ProgramFormatARB</tt>.
--   
--   The length of <tt>string</tt> should be <tt>len</tt>.
glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glDisableVertexAttribArrayARB</a> index</tt>
--   
--   This command is an alias for <a>glDisableVertexAttribArray</a>.
glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
glDisableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glEnableVertexAttribArrayARB</a> index</tt>
--   
--   This command is an alias for <a>glEnableVertexAttribArray</a>.
glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
glEnableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())

-- | Usage: <tt><a>glGetVertexAttribPointervARB</a> index pname
--   pointer</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexAttribPointerPropertyARB</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribPointerv</a>.
glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
glGetVertexAttribPointervARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())

-- | Usage: <tt><a>glGetVertexAttribdvARB</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribdv</a>.
glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetVertexAttribdvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glGetVertexAttribfvARB</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribfv</a>.
glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVertexAttribfvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glGetVertexAttribivARB</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribiv</a>.
glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexAttribivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttrib1dARB</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1dvARB</a>.
glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()
glVertexAttrib1dARBFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib1dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1dv</a>.
glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib1dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib1fARB</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1fvARB</a>.
glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()
glVertexAttrib1fARBFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib1fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1fv</a>.
glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib1fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib1sARB</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1svARB</a>.
glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()
glVertexAttrib1sARBFunPtr :: FunPtr (GLuint -> GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib1svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1sv</a>.
glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib1svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib2dARB</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2dvARB</a>.
glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
glVertexAttrib2dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib2dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2dv</a>.
glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib2dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib2fARB</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2fvARB</a>.
glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
glVertexAttrib2fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib2fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2fv</a>.
glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib2fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib2sARB</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2svARB</a>.
glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
glVertexAttrib2sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib2svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2sv</a>.
glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib2svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib3dARB</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3dvARB</a>.
glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttrib3dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib3dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3dv</a>.
glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib3dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib3fARB</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3fvARB</a>.
glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexAttrib3fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib3fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3fv</a>.
glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib3fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib3sARB</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3svARB</a>.
glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
glVertexAttrib3sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib3svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3sv</a>.
glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib3svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4NbvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nbv</a>.
glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
glVertexAttrib4NbvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4NivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Niv</a>.
glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttrib4NivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttrib4NsvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nsv</a>.
glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib4NsvARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4NubARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4Nub</a>.
glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
glVertexAttrib4NubARBFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4NubvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nubv</a>.
glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVertexAttrib4NubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4NuivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nuiv</a>.
glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttrib4NuivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttrib4NusvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nusv</a>.
glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glVertexAttrib4NusvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4bvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4bv</a>.
glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
glVertexAttrib4bvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4dARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4dvARB</a>.
glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttrib4dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib4dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4dv</a>.
glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib4dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())

-- | Usage: <tt><a>glVertexAttrib4fARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4fvARB</a>.
glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexAttrib4fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib4fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4fv</a>.
glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib4fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glVertexAttrib4ivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4iv</a>.
glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttrib4ivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glVertexAttrib4sARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4svARB</a>.
glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glVertexAttrib4sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4sv</a>.
glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib4svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())

-- | Usage: <tt><a>glVertexAttrib4ubvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4ubv</a>.
glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVertexAttrib4ubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())

-- | Usage: <tt><a>glVertexAttrib4uivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4uiv</a>.
glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttrib4uivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glVertexAttrib4usvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4usv</a>.
glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glVertexAttrib4usvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())

-- | Usage: <tt><a>glVertexAttribPointerARB</a> index size type normalized
--   stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   This command is an alias for <a>glVertexAttribPointer</a>.
glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
glVertexAttribPointerARBFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())

-- | Usage: <tt><a>glBindFragDataLocationEXT</a> program color name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   This command is an alias for <a>glBindFragDataLocation</a>.
glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
glBindFragDataLocationEXTFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())

-- | Usage: <tt><a>glDisableIndexedEXT</a> target index</tt>
--   
--   This command is an alias for <a>glDisablei</a>.
glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glDisableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glEnableIndexedEXT</a> target index</tt>
--   
--   This command is an alias for <a>glEnablei</a>.
glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
glEnableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glGetBooleanIndexedvEXT</a> target index data</tt>
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetBooleani_v</a>.
glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
glGetBooleanIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())

-- | Usage: <tt><a>glGetIntegerIndexedvEXT</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetIntegeri_v</a>.
glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetIntegerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glIsEnabledIndexedEXT</a> target index</tt>
--   
--   This command is an alias for <a>glIsEnabledi</a>.
glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
glIsEnabledIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)

-- | Usage: <tt><a>glProgramUniform1fEXT</a> program location v0</tt>
--   
--   This command is an alias for <a>glProgramUniform1f</a>.
glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
glProgramUniform1fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform1fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniform1fv</a>.
glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glProgramUniform1fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform1iEXT</a> program location v0</tt>
--   
--   This command is an alias for <a>glProgramUniform1i</a>.
glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
glProgramUniform1iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform1ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniform1iv</a>.
glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glProgramUniform1ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform1uiEXT</a> program location v0</tt>
--   
--   This command is an alias for <a>glProgramUniform1ui</a>.
glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
glProgramUniform1uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform1uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniform1uiv</a>.
glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform1uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform2fEXT</a> program location v0 v1</tt>
--   
--   This command is an alias for <a>glProgramUniform2f</a>.
glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
glProgramUniform2fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform2fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glProgramUniform2fv</a>.
glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glProgramUniform2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform2iEXT</a> program location v0 v1</tt>
--   
--   This command is an alias for <a>glProgramUniform2i</a>.
glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
glProgramUniform2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform2ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glProgramUniform2iv</a>.
glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glProgramUniform2ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform2uiEXT</a> program location v0 v1</tt>
--   
--   This command is an alias for <a>glProgramUniform2ui</a>.
glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
glProgramUniform2uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform2uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glProgramUniform2uiv</a>.
glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform2uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform3fEXT</a> program location v0 v1 v2</tt>
--   
--   This command is an alias for <a>glProgramUniform3f</a>.
glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramUniform3fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform3fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glProgramUniform3fv</a>.
glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glProgramUniform3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform3iEXT</a> program location v0 v1 v2</tt>
--   
--   This command is an alias for <a>glProgramUniform3i</a>.
glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramUniform3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform3ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glProgramUniform3iv</a>.
glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glProgramUniform3ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform3uiEXT</a> program location v0 v1
--   v2</tt>
--   
--   This command is an alias for <a>glProgramUniform3ui</a>.
glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
glProgramUniform3uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform3uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glProgramUniform3uiv</a>.
glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform3uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform4fEXT</a> program location v0 v1 v2
--   v3</tt>
--   
--   This command is an alias for <a>glProgramUniform4f</a>.
glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramUniform4fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform4fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniform4fv</a>.
glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glProgramUniform4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniform4iEXT</a> program location v0 v1 v2
--   v3</tt>
--   
--   This command is an alias for <a>glProgramUniform4i</a>.
glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramUniform4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform4ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniform4iv</a>.
glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glProgramUniform4ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glProgramUniform4uiEXT</a> program location v0 v1 v2
--   v3</tt>
--   
--   This command is an alias for <a>glProgramUniform4ui</a>.
glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glProgramUniform4uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniform4uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniform4uiv</a>.
glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glProgramUniform4uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix2fvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix2fv</a>.
glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix2x3fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix2x3fv</a>.
glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix2x4fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix2x4fv</a>.
glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix2x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix3fvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix3fv</a>.
glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix3x2fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix3x2fv</a>.
glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix3x4fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix3x4fv</a>.
glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix3x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix4fvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix4fv</a>.
glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix4x2fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix4x2fv</a>.
glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glProgramUniformMatrix4x3fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix4x3fv</a>.
glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glProgramUniformMatrix4x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())

-- | Usage: <tt><a>glTextureStorage1DEXT</a> texture target levels
--   internalformat width</tt>
glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
glTextureStorage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())

-- | Usage: <tt><a>glTextureStorage2DEXT</a> texture target levels
--   internalformat width height</tt>
glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glTextureStorage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glTextureStorage3DEXT</a> texture target levels
--   internalformat width height depth</tt>
glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
glTextureStorage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glBeginQueryEXT</a> target id</tt>
glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()
glBeginQueryEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glDeleteQueriesEXT</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glEndQueryEXT</a> target</tt>
glEndQueryEXT :: MonadIO m => GLenum -> m ()
glEndQueryEXTFunPtr :: FunPtr (GLenum -> IO ())

-- | Usage: <tt><a>glGenQueriesEXT</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetQueryObjecti64vEXT</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetQueryObjecti64v</a>.
glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
glGetQueryObjecti64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())

-- | Usage: <tt><a>glGetQueryObjectui64vEXT</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetQueryObjectui64v</a>.
glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
glGetQueryObjectui64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())

-- | Usage: <tt><a>glGetQueryObjectuivEXT</a> id pname params</tt>
glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetQueryObjectuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glGetQueryivEXT</a> target pname params</tt>
glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetQueryivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glIsQueryEXT</a> id</tt>
glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean
glIsQueryEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)

-- | Usage: <tt><a>glDrawArraysInstancedEXT</a> mode start count
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
glDrawArraysInstancedEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glDrawElementsInstancedEXT</a> mode count type indices
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
glDrawElementsInstancedEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())

-- | Usage: <tt><a>glRenderbufferStorageMultisampleEXT</a> target samples
--   internalformat width height</tt>
--   
--   This command is an alias for <a>glRenderbufferStorageMultisample</a>.
glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
glRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())

-- | Usage: <tt><a>glFramebufferTextureEXT</a> target attachment texture
--   level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
glFramebufferTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())

-- | Usage: <tt><a>glProgramParameteriEXT</a> program pname value</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramParameterPName</tt>.
--   
--   This command is an alias for <a>glProgramParameteri</a>.
glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glProgramParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())

-- | Usage: <tt><a>glRasterSamplesEXT</a> samples fixedsamplelocations</tt>
glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()
glRasterSamplesEXTFunPtr :: FunPtr (GLuint -> GLboolean -> IO ())

-- | Usage: <tt><a>glFramebufferTextureLayerEXT</a> target attachment
--   texture level layer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glFramebufferTextureLayer</a>.
glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
glFramebufferTextureLayerEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())

-- | Usage: <tt><a>glGetTexParameterIivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetTexParameterIiv</a>.
glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glGetTexParameterIuivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetTexParameterIuiv</a>.
glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glGetTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glTexParameterIivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glTexParameterIiv</a>.
glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())

-- | Usage: <tt><a>glTexParameterIuivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glTexParameterIuiv</a>.
glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
glTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())

-- | Usage: <tt><a>glTexBufferEXT</a> target internalformat buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   This command is an alias for <a>glTexBuffer</a>.
glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
glTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glDisableiOES</a> target index</tt>
--   
--   This command is an alias for <a>glDisablei</a>.
glDisableiOES :: MonadIO m => GLenum -> GLuint -> m ()
glDisableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glEnableiOES</a> target index</tt>
--   
--   This command is an alias for <a>glEnablei</a>.
glEnableiOES :: MonadIO m => GLenum -> GLuint -> m ()
glEnableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())

-- | Usage: <tt><a>glIsEnablediOES</a> target index</tt>
--   
--   This command is an alias for <a>glIsEnabledi</a>.
glIsEnablediOES :: MonadIO m => GLenum -> GLuint -> m GLboolean
glIsEnablediOESFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)

-- | Usage: <tt><a>glGetTexGenxvOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glGetTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())

-- | Usage: <tt><a>glTexGenxOES</a> coord pname param</tt>
glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
glTexGenxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())

-- | Usage: <tt><a>glTexGenxvOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
glTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())

module Graphics.GL.Standard10

-- | Usage: <tt><a>glAccum</a> op value</tt>
--   
--   The parameter <tt>op</tt> is a <tt>AccumOp</tt>, one of:
--   <a>GL_ACCUM</a>, <a>GL_LOAD</a>, <a>GL_RETURN</a>, <a>GL_MULT</a>,
--   <a>GL_ADD</a>.
--   
--   The parameter <tt>value</tt> is a <tt>CoordF</tt>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glAlphaFunc</a> func ref</tt>
--   
--   The parameter <tt>func</tt> is a <tt>AlphaFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glBegin</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBitmap</a> width height xorig yorig xmove ymove
--   bitmap</tt>
--   
--   The parameter <tt>xorig</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>yorig</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>xmove</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>ymove</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>bitmap</tt> should be
--   <tt>COMPSIZE(width,height)</tt>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glBlendFunc</a> sfactor dfactor</tt>
--   
--   The parameter <tt>sfactor</tt> is a <tt>BlendingFactorSrc</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_DST_COLOR</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_DST_COLOR</a>, <a>GL_ONE_MINUS_SRC_ALPHA</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_ALPHA_SATURATE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dfactor</tt> is a <tt>BlendingFactorDest</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_SRC_ALPHA</a>, <a>GL_ONE_MINUS_SRC_COLOR</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_COLOR</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml</a>
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glCallList</a> list</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCallLists</a> n type lists</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ListNameType</tt>, one of:
--   <a>GL_2_BYTES</a>, <a>GL_3_BYTES</a>, <a>GL_4_BYTES</a>,
--   <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>,
--   <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>lists</tt> should be <tt>COMPSIZE(n,type)</tt>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClear</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClear.xhtml</a>
glClear :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glClearAccum</a> red green blue alpha</tt>
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glClearColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml</a>
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glClearDepth</a> depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearDepth.xhtml</a>
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glClearIndex</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>MaskedColorIndexValueF</tt>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glClearStencil</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>StencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml</a>
glClearStencil :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glClipPlane</a> plane equation</tt>
--   
--   The parameter <tt>plane</tt> is a <tt>ClipPlaneName</tt>, one of:
--   <a>GL_CLIP_DISTANCE0</a>, <a>GL_CLIP_DISTANCE1</a>,
--   <a>GL_CLIP_DISTANCE2</a>, <a>GL_CLIP_DISTANCE3</a>,
--   <a>GL_CLIP_DISTANCE4</a>, <a>GL_CLIP_DISTANCE5</a>,
--   <a>GL_CLIP_DISTANCE6</a>, <a>GL_CLIP_DISTANCE7</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>.
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glColor3b</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   The vector equivalent of this command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glColor3bv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glColor3d</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   The vector equivalent of this command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glColor3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glColor3f</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glColor3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColor3i</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   The vector equivalent of this command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glColor3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glColor3s</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   The vector equivalent of this command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glColor3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glColor3ub</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glColor3ubv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glColor3ui</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   The vector equivalent of this command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glColor3uiv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Usage: <tt><a>glColor3us</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   The vector equivalent of this command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Usage: <tt><a>glColor3usv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Usage: <tt><a>glColor4b</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorB</tt>.
--   
--   The vector equivalent of this command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glColor4bv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glColor4d</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorD</tt>.
--   
--   The vector equivalent of this command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glColor4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glColor4f</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glColor4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColor4i</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorI</tt>.
--   
--   The vector equivalent of this command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glColor4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glColor4s</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorS</tt>.
--   
--   The vector equivalent of this command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glColor4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glColor4ub</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glColor4ubv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glColor4ui</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUI</tt>.
--   
--   The vector equivalent of this command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glColor4uiv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Usage: <tt><a>glColor4us</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUS</tt>.
--   
--   The vector equivalent of this command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Usage: <tt><a>glColor4usv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Usage: <tt><a>glColorMask</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>green</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>blue</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>alpha</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml</a>
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glColorMaterial</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>ColorMaterialParameter</tt>, one
--   of: <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>, <a>GL_SPECULAR</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glCopyPixels</a> x y width height type</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelCopyType</tt>, one of:
--   <a>GL_COLOR</a>, <a>GL_COLOR_EXT</a>, <a>GL_DEPTH</a>,
--   <a>GL_DEPTH_EXT</a>, <a>GL_STENCIL</a>, <a>GL_STENCIL_EXT</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Usage: <tt><a>glCullFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>CullFaceMode</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml</a>
glCullFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDeleteLists</a> list range</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Usage: <tt><a>glDepthFunc</a> func</tt>
--   
--   The parameter <tt>func</tt> is a <tt>DepthFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml</a>
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDepthMask</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml</a>
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Usage: <tt><a>glDepthRange</a> near far</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthRange.xhtml</a>
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glDisable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDrawBuffer</a> buf</tt>
--   
--   The parameter <tt>buf</tt> is a <tt>DrawBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>, <a>GL_FRONT_LEFT</a>,
--   <a>GL_FRONT_RIGHT</a>, <a>GL_LEFT</a>, <a>GL_NONE</a>,
--   <a>GL_NONE_OES</a>, <a>GL_RIGHT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawBuffer.xhtml</a>
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDrawPixels</a> width height format type pixels</tt>
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glEdgeFlag</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The vector equivalent of this command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Usage: <tt><a>glEdgeFlagv</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>flag</tt> should be <tt>1</tt>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Usage: <tt><a>glEnable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml</a>
glEnable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glEnd</a></tt>
glEnd :: MonadIO m => m ()

-- | Usage: <tt><a>glEndList</a></tt>
glEndList :: MonadIO m => m ()

-- | Usage: <tt><a>glEvalCoord1d</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glEvalCoord1dv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>u</tt> should be <tt>1</tt>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glEvalCoord1f</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glEvalCoord1fv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>u</tt> should be <tt>1</tt>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glEvalCoord2d</a> u v</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glEvalCoord2dv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>u</tt> should be <tt>2</tt>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glEvalCoord2f</a> u v</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glEvalCoord2fv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>u</tt> should be <tt>2</tt>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glEvalMesh1</a> mode i1 i2</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MeshMode1</tt>, one of:
--   <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   The parameter <tt>i1</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>i2</tt> is a <tt>CheckedInt32</tt>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glEvalMesh2</a> mode i1 i2 j1 j2</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MeshMode2</tt>, one of:
--   <a>GL_FILL</a>, <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   The parameter <tt>i1</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>i2</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>j1</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>j2</tt> is a <tt>CheckedInt32</tt>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glEvalPoint1</a> i</tt>
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glEvalPoint2</a> i j</tt>
--   
--   The parameter <tt>i</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>j</tt> is a <tt>CheckedInt32</tt>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glFeedbackBuffer</a> size type buffer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>FeedbackType</tt>, one of:
--   <a>GL_2D</a>, <a>GL_3D</a>, <a>GL_3D_COLOR</a>,
--   <a>GL_3D_COLOR_TEXTURE</a>, <a>GL_4D_COLOR_TEXTURE</a>.
--   
--   The parameter <tt>buffer</tt> is a <tt>FeedbackElement</tt>.
--   
--   The length of <tt>buffer</tt> should be <tt>size</tt>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glFinish</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml</a>
glFinish :: MonadIO m => m ()

-- | Usage: <tt><a>glFlush</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml</a>
glFlush :: MonadIO m => m ()

-- | Usage: <tt><a>glFogf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glFogfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glFogi</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glFogiv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glFrontFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>FrontFaceDirection</tt>, one of:
--   <a>GL_CCW</a>, <a>GL_CW</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml</a>
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glFrustum</a> left right bottom top zNear zFar</tt>
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glGenLists</a> range</tt>
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Usage: <tt><a>glGetBooleanv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetClipPlane</a> plane equation</tt>
--   
--   The parameter <tt>plane</tt> is a <tt>ClipPlaneName</tt>, one of:
--   <a>GL_CLIP_DISTANCE0</a>, <a>GL_CLIP_DISTANCE1</a>,
--   <a>GL_CLIP_DISTANCE2</a>, <a>GL_CLIP_DISTANCE3</a>,
--   <a>GL_CLIP_DISTANCE4</a>, <a>GL_CLIP_DISTANCE5</a>,
--   <a>GL_CLIP_DISTANCE6</a>, <a>GL_CLIP_DISTANCE7</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>.
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetDoublev</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetError</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml</a>
glGetError :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetFloatv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetIntegerv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetLightfv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetLightiv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMapdv</a> target query v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>query</tt> is a <tt>GetMapQuery</tt>, one of:
--   <a>GL_COEFF</a>, <a>GL_DOMAIN</a>, <a>GL_ORDER</a>.
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(target,query)</tt>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetMapfv</a> target query v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>query</tt> is a <tt>GetMapQuery</tt>, one of:
--   <a>GL_COEFF</a>, <a>GL_DOMAIN</a>, <a>GL_ORDER</a>.
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(target,query)</tt>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMapiv</a> target query v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>query</tt> is a <tt>GetMapQuery</tt>, one of:
--   <a>GL_COEFF</a>, <a>GL_DOMAIN</a>, <a>GL_ORDER</a>.
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(target,query)</tt>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMaterialfv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMaterialiv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetPixelMapfv</a> map values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(map)</tt>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPixelMapuiv</a> map values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(map)</tt>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetPixelMapusv</a> map values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(map)</tt>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glGetPolygonStipple</a> mask</tt>
--   
--   The length of <tt>mask</tt> should be <tt>COMPSIZE()</tt>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glGetString</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>StringName</tt>, one of:
--   <a>GL_EXTENSIONS</a>, <a>GL_RENDERER</a>, <a>GL_VENDOR</a>,
--   <a>GL_VERSION</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml</a>
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Usage: <tt><a>glGetTexEnvfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexEnviv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexGendv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetTexGenfv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexGeniv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexImage</a> target level format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(target,level,format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTexImage.xhtml</a>
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetTexLevelParameterfv</a> target level pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexLevelParameteriv</a> target level pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glHint</a> target mode</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HintTarget</tt>, one of:
--   <a>GL_ALLOW_DRAW_FRG_HINT_PGI</a>, <a>GL_ALLOW_DRAW_MEM_HINT_PGI</a>,
--   <a>GL_ALLOW_DRAW_OBJ_HINT_PGI</a>, <a>GL_ALLOW_DRAW_WIN_HINT_PGI</a>,
--   <a>GL_ALWAYS_FAST_HINT_PGI</a>, <a>GL_ALWAYS_SOFT_HINT_PGI</a>,
--   <a>GL_BACK_NORMALS_HINT_PGI</a>, <a>GL_BINNING_CONTROL_HINT_QCOM</a>,
--   <a>GL_CLIP_FAR_HINT_PGI</a>, <a>GL_CLIP_NEAR_HINT_PGI</a>,
--   <a>GL_CLIP_VOLUME_CLIPPING_HINT_EXT</a>,
--   <a>GL_CONSERVE_MEMORY_HINT_PGI</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_FOG_HINT</a>, <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES</a>,
--   <a>GL_FULL_STIPPLE_HINT_PGI</a>, <a>GL_GENERATE_MIPMAP_HINT</a>,
--   <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <tt>GL_LINE_QUALITY_HINT_SGIX</tt>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_MATERIAL_SIDE_HINT_PGI</a>, <a>GL_MAX_VERTEX_HINT_PGI</a>,
--   <a>GL_MULTISAMPLE_FILTER_HINT_NV</a>,
--   <a>GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI</a>,
--   <a>GL_NATIVE_GRAPHICS_END_HINT_PGI</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PERSPECTIVE_CORRECTION_HINT</a>, <a>GL_PHONG_HINT_WIN</a>,
--   <a>GL_POINT_SMOOTH_HINT</a>, <a>GL_POLYGON_SMOOTH_HINT</a>,
--   <a>GL_PREFER_DOUBLEBUFFER_HINT_PGI</a>,
--   <a>GL_PROGRAM_BINARY_RETRIEVABLE_HINT</a>,
--   <a>GL_RECLAIM_MEMORY_HINT_PGI</a>, <a>GL_SCALEBIAS_HINT_SGIX</a>,
--   <a>GL_STRICT_DEPTHFUNC_HINT_PGI</a>,
--   <a>GL_STRICT_LIGHTING_HINT_PGI</a>, <a>GL_STRICT_SCISSOR_HINT_PGI</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT_ARB</a>,
--   <a>GL_TEXTURE_MULTI_BUFFER_HINT_SGIX</a>,
--   <a>GL_TEXTURE_STORAGE_HINT_APPLE</a>, <a>GL_TRANSFORM_HINT_APPLE</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_STORAGE_HINT_APPLE</a>,
--   <a>GL_VERTEX_CONSISTENT_HINT_PGI</a>, <a>GL_VERTEX_DATA_HINT_PGI</a>,
--   <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>, <a>GL_VERTEX_PRECLIP_SGIX</a>,
--   <a>GL_WIDE_LINE_HINT_PGI</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>HintMode</tt>, one of:
--   <a>GL_DONT_CARE</a>, <a>GL_FASTEST</a>, <a>GL_NICEST</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glHint.xhtml</a>
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glIndexMask</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedColorIndexValueI</tt>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glIndexd</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueD</tt>.
--   
--   The vector equivalent of this command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glIndexdv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueD</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glIndexf</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueF</tt>.
--   
--   The vector equivalent of this command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glIndexfv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueF</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glIndexi</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueI</tt>.
--   
--   The vector equivalent of this command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glIndexiv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueI</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glIndexs</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueS</tt>.
--   
--   The vector equivalent of this command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Usage: <tt><a>glIndexsv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueS</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glInitNames</a></tt>
glInitNames :: MonadIO m => m ()

-- | Usage: <tt><a>glIsEnabled</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml</a>
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Usage: <tt><a>glIsList</a> list</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glLightModelf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glLightModelfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLightModeli</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glLightModeliv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glLightf</a> light pname param</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glLightfv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLighti</a> light pname param</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glLightiv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glLineStipple</a> factor pattern</tt>
--   
--   The parameter <tt>factor</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pattern</tt> is a <tt>LineStipple</tt>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Usage: <tt><a>glLineWidth</a> width</tt>
--   
--   The parameter <tt>width</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml</a>
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glListBase</a> base</tt>
--   
--   The parameter <tt>base</tt> is a <tt>List</tt>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glLoadIdentity</a></tt>
glLoadIdentity :: MonadIO m => m ()

-- | Usage: <tt><a>glLoadMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glLoadMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLoadName</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>SelectName</tt>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glLogicOp</a> opcode</tt>
--   
--   The parameter <tt>opcode</tt> is a <tt>LogicOp</tt>, one of:
--   <a>GL_AND</a>, <a>GL_AND_INVERTED</a>, <a>GL_AND_REVERSE</a>,
--   <a>GL_CLEAR</a>, <a>GL_COPY</a>, <a>GL_COPY_INVERTED</a>,
--   <a>GL_EQUIV</a>, <a>GL_INVERT</a>, <a>GL_NAND</a>, <a>GL_NOOP</a>,
--   <a>GL_NOR</a>, <a>GL_OR</a>, <a>GL_OR_INVERTED</a>,
--   <a>GL_OR_REVERSE</a>, <a>GL_SET</a>, <a>GL_XOR</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLogicOp.xhtml</a>
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMap1d</a> target u1 u2 stride order points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>order</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,stride,order)</tt>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMap1f</a> target u1 u2 stride order points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>order</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,stride,order)</tt>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMap2d</a> target u1 u2 ustride uorder v1 v2 vstride
--   vorder points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,ustride,uorder,vstride,vorder)</tt>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMap2f</a> target u1 u2 ustride uorder v1 v2 vstride
--   vorder points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,ustride,uorder,vstride,vorder)</tt>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMapGrid1d</a> un u1 u2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMapGrid1f</a> un u1 u2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMapGrid2d</a> un u1 u2 vn v1 v2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMapGrid2f</a> un u1 u2 vn v1 v2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMaterialf</a> face pname param</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glMaterialfv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMateriali</a> face pname param</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glMaterialiv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMatrixMode</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMultMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNewList</a> list mode</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
--   
--   The parameter <tt>mode</tt> is a <tt>ListMode</tt>, one of:
--   <a>GL_COMPILE</a>, <a>GL_COMPILE_AND_EXECUTE</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glNormal3b</a> nx ny nz</tt>
--   
--   The vector equivalent of this command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glNormal3bv</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glNormal3d</a> nx ny nz</tt>
--   
--   The parameter <tt>nx</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>ny</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>nz</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glNormal3dv</a>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glNormal3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glNormal3f</a> nx ny nz</tt>
--   
--   The parameter <tt>nx</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>ny</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>nz</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glNormal3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNormal3i</a> nx ny nz</tt>
--   
--   The vector equivalent of this command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glNormal3iv</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glNormal3s</a> nx ny nz</tt>
--   
--   The vector equivalent of this command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glNormal3sv</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glOrtho</a> left right bottom top zNear zFar</tt>
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glPassThrough</a> token</tt>
--   
--   The parameter <tt>token</tt> is a <tt>FeedbackElement</tt>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glPixelMapfv</a> map mapsize values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The parameter <tt>mapsize</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>values</tt> should be <tt>mapsize</tt>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPixelMapuiv</a> map mapsize values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The parameter <tt>mapsize</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>values</tt> should be <tt>mapsize</tt>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glPixelMapusv</a> map mapsize values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The parameter <tt>mapsize</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>values</tt> should be <tt>mapsize</tt>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glPixelStoref</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelStoreParameter</tt>, one
--   of: <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_PACK_IMAGE_HEIGHT</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_OML</a>,
--   <a>GL_PACK_RESAMPLE_SGIX</a>, <a>GL_PACK_ROW_LENGTH</a>,
--   <a>GL_PACK_SKIP_IMAGES</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_UNPACK_ALIGNMENT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT</a>, <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_UNPACK_LSB_FIRST</a>, <a>GL_UNPACK_RESAMPLE_OML</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_ROW_LENGTH_EXT</a>, <a>GL_UNPACK_SKIP_IMAGES</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_PIXELS_EXT</a>, <a>GL_UNPACK_SKIP_ROWS</a>,
--   <a>GL_UNPACK_SKIP_ROWS_EXT</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPixelStorei</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelStoreParameter</tt>, one
--   of: <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_PACK_IMAGE_HEIGHT</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_OML</a>,
--   <a>GL_PACK_RESAMPLE_SGIX</a>, <a>GL_PACK_ROW_LENGTH</a>,
--   <a>GL_PACK_SKIP_IMAGES</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_UNPACK_ALIGNMENT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT</a>, <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_UNPACK_LSB_FIRST</a>, <a>GL_UNPACK_RESAMPLE_OML</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_ROW_LENGTH_EXT</a>, <a>GL_UNPACK_SKIP_IMAGES</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_PIXELS_EXT</a>, <a>GL_UNPACK_SKIP_ROWS</a>,
--   <a>GL_UNPACK_SKIP_ROWS_EXT</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPixelTransferf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransferParameter</tt>, one
--   of: <a>GL_ALPHA_BIAS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_BLUE_BIAS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_SCALE</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_SCALE</a>, <a>GL_INDEX_OFFSET</a>,
--   <a>GL_INDEX_SHIFT</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>, <a>GL_RED_BIAS</a>,
--   <a>GL_RED_SCALE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPixelTransferi</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransferParameter</tt>, one
--   of: <a>GL_ALPHA_BIAS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_BLUE_BIAS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_SCALE</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_SCALE</a>, <a>GL_INDEX_OFFSET</a>,
--   <a>GL_INDEX_SHIFT</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>, <a>GL_RED_BIAS</a>,
--   <a>GL_RED_SCALE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPixelZoom</a> xfactor yfactor</tt>
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glPointSize</a> size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPointSize.xhtml</a>
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glPolygonMode</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>PolygonMode</tt>, one of:
--   <a>GL_FILL</a>, <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPolygonMode.xhtml</a>
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glPolygonStipple</a> mask</tt>
--   
--   The length of <tt>mask</tt> should be <tt>COMPSIZE()</tt>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glPopAttrib</a></tt>
glPopAttrib :: MonadIO m => m ()

-- | Usage: <tt><a>glPopMatrix</a></tt>
glPopMatrix :: MonadIO m => m ()

-- | Usage: <tt><a>glPopName</a></tt>
glPopName :: MonadIO m => m ()

-- | Usage: <tt><a>glPushAttrib</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>AttribMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_ALL_ATTRIB_BITS</a>,
--   <a>GL_COLOR_BUFFER_BIT</a>, <a>GL_CURRENT_BIT</a>,
--   <a>GL_DEPTH_BUFFER_BIT</a>, <a>GL_ENABLE_BIT</a>, <a>GL_EVAL_BIT</a>,
--   <a>GL_FOG_BIT</a>, <a>GL_HINT_BIT</a>, <a>GL_LIGHTING_BIT</a>,
--   <a>GL_LINE_BIT</a>, <a>GL_LIST_BIT</a>, <a>GL_MULTISAMPLE_BIT</a>,
--   <a>GL_MULTISAMPLE_BIT_3DFX</a>, <a>GL_MULTISAMPLE_BIT_ARB</a>,
--   <a>GL_MULTISAMPLE_BIT_EXT</a>, <a>GL_PIXEL_MODE_BIT</a>,
--   <a>GL_POINT_BIT</a>, <a>GL_POLYGON_BIT</a>,
--   <a>GL_POLYGON_STIPPLE_BIT</a>, <a>GL_SCISSOR_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>, <a>GL_TEXTURE_BIT</a>,
--   <a>GL_TRANSFORM_BIT</a>, <a>GL_VIEWPORT_BIT</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glPushMatrix</a></tt>
glPushMatrix :: MonadIO m => m ()

-- | Usage: <tt><a>glPushName</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>SelectName</tt>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glRasterPos2d</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos2f</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos2i</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glRasterPos2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glRasterPos2s</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glRasterPos2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glRasterPos3d</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos3f</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos3i</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glRasterPos3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glRasterPos3s</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glRasterPos3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glRasterPos4d</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos4f</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos4i</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glRasterPos4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glRasterPos4s</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glRasterPos4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glReadBuffer</a> src</tt>
--   
--   The parameter <tt>src</tt> is a <tt>ReadBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_LEFT</a>, <a>GL_FRONT_RIGHT</a>,
--   <a>GL_LEFT</a>, <a>GL_RIGHT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReadBuffer.xhtml</a>
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glReadPixels</a> x y width height format type
--   pixels</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml</a>
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glRectd</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRectdv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glRectf</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glRectfv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRecti</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glRectiv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glRects</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glRectsv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glRenderMode</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>RenderingMode</tt>, one of:
--   <a>GL_FEEDBACK</a>, <a>GL_RENDER</a>, <a>GL_SELECT</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Usage: <tt><a>glRotated</a> angle x y z</tt>
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRotatef</a> angle x y z</tt>
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glScaled</a> x y z</tt>
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glScalef</a> x y z</tt>
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glScissor</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml</a>
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glSelectBuffer</a> size buffer</tt>
--   
--   The parameter <tt>buffer</tt> is a <tt>SelectName</tt>.
--   
--   The length of <tt>buffer</tt> should be <tt>size</tt>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glShadeModel</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>ShadingModel</tt>, one of:
--   <a>GL_FLAT</a>, <a>GL_SMOOTH</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glStencilFunc</a> func ref mask</tt>
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml</a>
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilMask</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml</a>
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glStencilOp</a> fail zfail zpass</tt>
--   
--   The parameter <tt>fail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zpass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml</a>
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glTexCoord1d</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord1dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord1f</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord1fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord1i</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glTexCoord1iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glTexCoord1s</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Usage: <tt><a>glTexCoord1sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glTexCoord2d</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord2f</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2i</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glTexCoord2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glTexCoord2s</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glTexCoord2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glTexCoord3d</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord3f</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord3i</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glTexCoord3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glTexCoord3s</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glTexCoord3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glTexCoord4d</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord4f</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord4i</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glTexCoord4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glTexCoord4s</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glTexCoord4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glTexEnvf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexEnvfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexEnvi</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexEnviv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexGend</a> coord pname param</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Usage: <tt><a>glTexGendv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexGenf</a> coord pname param</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexGenfv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexGeni</a> coord pname param</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexGeniv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexImage1D</a> target level internalformat width
--   border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage1D.xhtml</a>
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexImage2D</a> target level internalformat width
--   height border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml</a>
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexParameterf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexParameteri</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTranslated</a> x y z</tt>
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glTranslatef</a> x y z</tt>
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertex2d</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertex2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertex2f</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2fv</a>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertex2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertex2i</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertex2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glVertex2s</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertex2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertex3d</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertex3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertex3f</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertex3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertex3i</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertex3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glVertex3s</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertex3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertex4d</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertex4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertex4f</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertex4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertex4i</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertex4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glVertex4s</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertex4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glViewport</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml</a>
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Standard11

-- | Usage: <tt><a>glAreTexturesResident</a> n textures residences</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>residences</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   The length of <tt>residences</tt> should be <tt>n</tt>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Usage: <tt><a>glArrayElement</a> i</tt>
glArrayElement :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glBindTexture</a> target texture</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml</a>
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glColorPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyTexImage1D</a> target level internalformat x y
--   width border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexImage1D.xhtml</a>
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTexImage2D</a> target level internalformat x y
--   width height border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml</a>
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTexSubImage1D</a> target level xoffset x y
--   width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage1D.xhtml</a>
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTexSubImage2D</a> target level xoffset yoffset x y
--   width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml</a>
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDeleteTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml</a>
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDisableClientState</a> array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDrawArrays</a> mode first count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml</a>
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElements</a> mode count type indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml</a>
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glEdgeFlagPointer</a> stride pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>COMPSIZE(stride)</tt>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glEnableClientState</a> array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGenTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml</a>
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetPointerv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPointervPName</tt>, one of:
--   <a>GL_COLOR_ARRAY_POINTER</a>, <a>GL_COLOR_ARRAY_POINTER_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER_EXT</a>,
--   <a>GL_FEEDBACK_BUFFER_POINTER</a>, <a>GL_INDEX_ARRAY_POINTER</a>,
--   <a>GL_INDEX_ARRAY_POINTER_EXT</a>,
--   <a>GL_INSTRUMENT_BUFFER_POINTER_SGIX</a>,
--   <a>GL_NORMAL_ARRAY_POINTER</a>, <a>GL_NORMAL_ARRAY_POINTER_EXT</a>,
--   <a>GL_SELECTION_BUFFER_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER_EXT</a>,
--   <a>GL_VERTEX_ARRAY_POINTER</a>, <a>GL_VERTEX_ARRAY_POINTER_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml</a>
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glIndexPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>IndexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glIndexub</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueUB</tt>.
--   
--   The vector equivalent of this command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Usage: <tt><a>glIndexubv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueUB</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glInterleavedArrays</a> format stride pointer</tt>
--   
--   The parameter <tt>format</tt> is a <tt>InterleavedArrayFormat</tt>,
--   one of: <a>GL_C3F_V3F</a>, <a>GL_C4F_N3F_V3F</a>, <a>GL_C4UB_V2F</a>,
--   <a>GL_C4UB_V3F</a>, <a>GL_N3F_V3F</a>, <a>GL_T2F_C3F_V3F</a>,
--   <a>GL_T2F_C4F_N3F_V3F</a>, <a>GL_T2F_C4UB_V3F</a>,
--   <a>GL_T2F_N3F_V3F</a>, <a>GL_T2F_V3F</a>, <a>GL_T4F_C4F_N3F_V4F</a>,
--   <a>GL_T4F_V4F</a>, <a>GL_V2F</a>, <a>GL_V3F</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(format,stride)</tt>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glIsTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml</a>
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glNormalPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>NormalPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glPolygonOffset</a> factor units</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml</a>
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glPopClientAttrib</a></tt>
glPopClientAttrib :: MonadIO m => m ()

-- | Usage: <tt><a>glPrioritizeTextures</a> n textures priorities</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   The length of <tt>priorities</tt> should be <tt>n</tt>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPushClientAttrib</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClientAttribMask</tt>, one of:
--   <a>GL_CLIENT_ALL_ATTRIB_BITS</a>, <a>GL_CLIENT_PIXEL_STORE_BIT</a>,
--   <a>GL_CLIENT_VERTEX_ARRAY_BIT</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glTexCoordPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>TexCoordPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glTexSubImage1D</a> target level xoffset width format
--   type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage1D.xhtml</a>
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexSubImage2D</a> target level xoffset yoffset width
--   height format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml</a>
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glVertexPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Standard12

-- | Usage: <tt><a>glCopyTexSubImage3D</a> target level xoffset yoffset
--   zoffset x y width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage3D.xhtml</a>
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawRangeElements</a> mode start end count type
--   indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml</a>
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexImage3D</a> target level internalformat width
--   height depth border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage3D.xhtml</a>
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexSubImage3D</a> target level xoffset yoffset zoffset
--   width height depth format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage3D.xhtml</a>
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Standard13

-- | Usage: <tt><a>glActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml</a>
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glClientActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glCompressedTexImage1D</a> target level internalformat
--   width border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage1D.xhtml</a>
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexImage2D</a> target level internalformat
--   width height border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml</a>
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexImage3D</a> target level internalformat
--   width height depth border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage3D.xhtml</a>
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage1D</a> target level xoffset width
--   format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage1D.xhtml</a>
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage2D</a> target level xoffset
--   yoffset width height format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml</a>
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage3D</a> target level xoffset
--   yoffset zoffset width height depth format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage3D.xhtml</a>
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetCompressedTexImage</a> target level img</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>img</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>img</tt> should be <tt>COMPSIZE(target,level)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetCompressedTexImage.xhtml</a>
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()

-- | Usage: <tt><a>glLoadTransposeMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glLoadTransposeMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultTransposeMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultTransposeMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord1d</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord1dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord1f</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord1fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord1i</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord1iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord1s</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord1sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord2d</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord2dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord2f</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord2fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord2i</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord2iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord2s</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord2sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord3d</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord3dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord3f</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord3fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord3i</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord3iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord3s</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord3sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord4d</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord4dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord4f</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord4fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord4i</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord4iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord4s</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4sv</a>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord4sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glSampleCoverage</a> value invert</tt>
--   
--   The parameter <tt>invert</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml</a>
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

module Graphics.GL.Standard14

-- | Usage: <tt><a>glBlendColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml</a>
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glBlendEquation</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>BlendEquationMode</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml</a>
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparate</a> sfactorRGB dfactorRGB
--   sfactorAlpha dfactorAlpha</tt>
--   
--   The parameter <tt>sfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>sfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml</a>
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glFogCoordPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>FogPointerTypeEXT</tt>, one of:
--   <a>GL_FLOAT</a>, <a>GL_DOUBLE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glFogCoordd</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glFogCoorddv</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>coord</tt> should be <tt>1</tt>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glFogCoordf</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glFogCoordfv</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>coord</tt> should be <tt>1</tt>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiDrawArrays</a> mode first count drawcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>first</tt> should be <tt>COMPSIZE(count)</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawArrays.xhtml</a>
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawElements</a> mode count type indices
--   drawcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawElements.xhtml</a>
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()

-- | Usage: <tt><a>glPointParameterf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPointParameterfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPointParameteri</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPointParameteriv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glSecondaryColor3b</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3bv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3d</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glSecondaryColor3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glSecondaryColor3f</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glSecondaryColor3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSecondaryColor3i</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3iv</a>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glSecondaryColor3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glSecondaryColor3s</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glSecondaryColor3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glSecondaryColor3ub</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3ubv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3ui</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColor3uiv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColor3us</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Usage: <tt><a>glSecondaryColor3usv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Usage: <tt><a>glSecondaryColorPointer</a> size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glWindowPos2d</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos2f</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos2i</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glWindowPos2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glWindowPos2s</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glWindowPos2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glWindowPos3d</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos3f</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos3i</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glWindowPos3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glWindowPos3s</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glWindowPos3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()

module Graphics.GL.Standard15

-- | Usage: <tt><a>glBeginQuery</a> target id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginQuery.xhtml</a>
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindBuffer</a> target buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml</a>
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBufferData</a> target size data usage</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>usage</tt> is a <tt>BufferUsageARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml</a>
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glBufferSubData</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml</a>
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glDeleteBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml</a>
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteQueries</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteQueries.xhtml</a>
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glEndQuery</a> target</tt>
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGenBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml</a>
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenQueries</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenQueries.xhtml</a>
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetBufferParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetBufferPointerv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPointerNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetBufferPointerv.xhtml</a>
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetBufferSubData</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetBufferSubData.xhtml</a>
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glGetQueryObjectiv</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetQueryObjectuiv</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetQueryiv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetQueryiv.xhtml</a>
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsBuffer</a> buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml</a>
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsQuery</a> id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsQuery.xhtml</a>
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glMapBuffer</a> target access</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMapBuffer.xhtml</a>
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())

-- | Usage: <tt><a>glUnmapBuffer</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUnmapBuffer.xhtml</a>
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

module Graphics.GL.Standard20

-- | Usage: <tt><a>glAttachShader</a> program shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glAttachShader.xhtml</a>
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindAttribLocation</a> program index name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindAttribLocation.xhtml</a>
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glBlendEquationSeparate</a> modeRGB modeAlpha</tt>
--   
--   The parameter <tt>modeRGB</tt> is a <tt>BlendEquationModeEXT</tt>, one
--   of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   The parameter <tt>modeAlpha</tt> is a <tt>BlendEquationModeEXT</tt>,
--   one of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml</a>
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glCompileShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompileShader.xhtml</a>
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCreateProgram</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml</a>
glCreateProgram :: MonadIO m => m GLuint

-- | Usage: <tt><a>glCreateShader</a> type</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateShader.xhtml</a>
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Usage: <tt><a>glDeleteProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteProgram.xhtml</a>
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteShader.xhtml</a>
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDetachShader</a> program shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDetachShader.xhtml</a>
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDisableVertexAttribArray</a> index</tt>
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDrawBuffers</a> n bufs</tt>
--   
--   The parameter <tt>bufs</tt> is a <tt>DrawBufferModeATI</tt>.
--   
--   The length of <tt>bufs</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawBuffers.xhtml</a>
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glEnableVertexAttribArray</a> index</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml</a>
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGetActiveAttrib</a> program index bufSize length size
--   type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveAttrib.xhtml</a>
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniform</a> program index bufSize length size
--   type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniform.xhtml</a>
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetAttachedShaders</a> program maxCount count
--   shaders</tt>
--   
--   The length of <tt>count</tt> should be <tt>1</tt>.
--   
--   The length of <tt>shaders</tt> should be <tt>maxCount</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml</a>
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetAttribLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml</a>
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetProgramInfoLog</a> program bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramInfoLog.xhtml</a>
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramiv</a> program pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetShaderInfoLog</a> shader bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderInfoLog.xhtml</a>
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetShaderSource</a> shader bufSize length source</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>source</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml</a>
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetShaderiv</a> shader pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetUniformLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml</a>
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetUniformfv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetUniformiv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexAttribPointerv</a> index pname pointer</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexAttribPointerPropertyARB</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml</a>
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetVertexAttribdv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetVertexAttribfv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVertexAttribiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsProgram.xhtml</a>
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsShader.xhtml</a>
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glLinkProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml</a>
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glShaderSource</a> shader count string length</tt>
--   
--   The length of <tt>string</tt> should be <tt>count</tt>.
--   
--   The length of <tt>length</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderSource.xhtml</a>
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Usage: <tt><a>glStencilFuncSeparate</a> face func ref mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml</a>
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilMaskSeparate</a> face mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml</a>
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glStencilOpSeparate</a> face sfail dpfail dppass</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>sfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dpfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dppass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml</a>
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glUniform1f</a> location v0</tt>
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform1fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform1i</a> location v0</tt>
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform1iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform2f</a> location v0 v1</tt>
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform2fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform2i</a> location v0 v1</tt>
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform2iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform3f</a> location v0 v1 v2</tt>
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform3fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform3i</a> location v0 v1 v2</tt>
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform3iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform4f</a> location v0 v1 v2 v3</tt>
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform4fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform4i</a> location v0 v1 v2 v3</tt>
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform4iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniformMatrix2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUseProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml</a>
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glValidateProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glValidateProgram.xhtml</a>
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib1d</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1f</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1s</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib1sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2d</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2f</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2s</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3d</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3f</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3s</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nbv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4Niv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nsv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nub</a> index x y z w</tt>
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nubv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nuiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nusv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttrib4bv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4d</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4f</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttrib4s</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4ubv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib4usv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttribPointer</a> index size type normalized
--   stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml</a>
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Standard21

-- | Usage: <tt><a>glUniformMatrix2x3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix2x4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3x2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3x4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4x2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4x3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

module Graphics.GL.Standard30

-- | Usage: <tt><a>glBeginConditionalRender</a> id mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>TypeEnum</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginConditionalRender.xhtml</a>
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glBeginTransformFeedback</a> primitiveMode</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginTransformFeedback.xhtml</a>
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBindBufferBase</a> target index buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml</a>
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindBufferRange</a> target index buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml</a>
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glBindFragDataLocation</a> program color name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocation.xhtml</a>
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glBindFramebuffer</a> target framebuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml</a>
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindRenderbuffer</a> target renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml</a>
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml</a>
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glBlitFramebuffer</a> srcX0 srcY0 srcX1 srcY1 dstX0
--   dstY0 dstX1 dstY1 mask filter</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml</a>
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Usage: <tt><a>glCheckFramebufferStatus</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml</a>
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Usage: <tt><a>glClampColor</a> target clamp</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ClampColorTargetARB</tt>.
--   
--   The parameter <tt>clamp</tt> is a <tt>ClampColorModeARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClampColor.xhtml</a>
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glClearBufferfi</a> buffer drawbuffer depth stencil</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Usage: <tt><a>glClearBufferfv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glClearBufferiv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glClearBufferuiv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glColorMaski</a> index r g b a</tt>
--   
--   The parameter <tt>r</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>g</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>b</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>a</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glDeleteFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml</a>
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml</a>
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml</a>
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDisablei</a> target index</tt>
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEnablei</a> target index</tt>
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEndConditionalRender</a></tt>
glEndConditionalRender :: MonadIO m => m ()

-- | Usage: <tt><a>glEndTransformFeedback</a></tt>
glEndTransformFeedback :: MonadIO m => m ()

-- | Usage: <tt><a>glFlushMappedBufferRange</a> target offset length</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml</a>
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glFramebufferRenderbuffer</a> target attachment
--   renderbuffertarget renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>renderbuffertarget</tt> is a
--   <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml</a>
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glFramebufferTexture1D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTexture2D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTexture3D</a> target attachment textarget
--   texture level zoffset</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTextureLayer</a> target attachment texture
--   level layer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml</a>
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glGenFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml</a>
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml</a>
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml</a>
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenerateMipmap</a> target</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml</a>
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGetBooleani_v</a> target index data</tt>
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetFragDataLocation</a> program name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetFragDataLocation.xhtml</a>
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetFramebufferAttachmentParameteriv</a> target
--   attachment pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetIntegeri_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetRenderbufferParameteriv</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetStringi</a> name index</tt>
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Usage: <tt><a>glGetTexParameterIiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexParameterIuiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetTransformFeedbackVarying</a> program index bufSize
--   length size type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTransformFeedbackVarying.xhtml</a>
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetUniformuiv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetVertexAttribIiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexAttribIuiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsEnabledi</a> target index</tt>
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Usage: <tt><a>glIsFramebuffer</a> framebuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml</a>
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsRenderbuffer</a> renderbuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml</a>
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml</a>
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glMapBufferRange</a> target offset length access</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessMask</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml</a>
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())

-- | Usage: <tt><a>glRenderbufferStorage</a> target internalformat width
--   height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml</a>
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glRenderbufferStorageMultisample</a> target samples
--   internalformat width height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml</a>
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTexParameterIiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexParameterIuiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTransformFeedbackVaryings</a> program count varyings
--   bufferMode</tt>
--   
--   The length of <tt>varyings</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackVaryings.xhtml</a>
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Usage: <tt><a>glUniform1ui</a> location v0</tt>
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform1uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform2ui</a> location v0 v1</tt>
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform2uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform3ui</a> location v0 v1 v2</tt>
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform3uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform4ui</a> location v0 v1 v2 v3</tt>
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform4uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI1i</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI1iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI1ui</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI1uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI2i</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI2iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI2ui</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI2uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI3i</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI3iv</a>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI3iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI3ui</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI3uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4bv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttribI4i</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI4iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI4sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttribI4ubv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttribI4ui</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4usv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttribIPointer</a> index size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Standard31

-- | Usage: <tt><a>glCopyBufferSubData</a> readTarget writeTarget
--   readOffset writeOffset size</tt>
--   
--   The parameter <tt>readOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>writeOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml</a>
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glDrawArraysInstanced</a> mode first count
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml</a>
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElementsInstanced</a> mode count type indices
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstanced.xhtml</a>
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glGetActiveUniformBlockName</a> program
--   uniformBlockIndex bufSize length uniformBlockName</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml</a>
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniformBlockiv</a> program uniformBlockIndex
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,uniformBlockIndex,pname)</tt>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetActiveUniformName</a> program uniformIndex bufSize
--   length uniformName</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>uniformName</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformName.xhtml</a>
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniformsiv</a> program uniformCount
--   uniformIndices pname params</tt>
--   
--   The length of <tt>uniformIndices</tt> should be <tt>uniformCount</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(uniformCount,pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml</a>
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetUniformBlockIndex</a> program uniformBlockName</tt>
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>COMPSIZE()</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml</a>
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetUniformIndices</a> program uniformCount
--   uniformNames uniformIndices</tt>
--   
--   The length of <tt>uniformNames</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   The length of <tt>uniformIndices</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml</a>
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glPrimitiveRestartIndex</a> index</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPrimitiveRestartIndex.xhtml</a>
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glTexBuffer</a> target internalformat buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexBuffer.xhtml</a>
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glUniformBlockBinding</a> program uniformBlockIndex
--   uniformBlockBinding</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml</a>
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

module Graphics.GL.SafetyCritical20

-- | Usage: <tt><a>glActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml</a>
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBindBuffer</a> target buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml</a>
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindFramebuffer</a> target framebuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml</a>
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindRenderbuffer</a> target renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml</a>
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindTexture</a> target texture</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml</a>
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBlendColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml</a>
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glBlendEquation</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>BlendEquationMode</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml</a>
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBlendEquationSeparate</a> modeRGB modeAlpha</tt>
--   
--   The parameter <tt>modeRGB</tt> is a <tt>BlendEquationModeEXT</tt>, one
--   of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   The parameter <tt>modeAlpha</tt> is a <tt>BlendEquationModeEXT</tt>,
--   one of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml</a>
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFunc</a> sfactor dfactor</tt>
--   
--   The parameter <tt>sfactor</tt> is a <tt>BlendingFactorSrc</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_DST_COLOR</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_DST_COLOR</a>, <a>GL_ONE_MINUS_SRC_ALPHA</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_ALPHA_SATURATE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dfactor</tt> is a <tt>BlendingFactorDest</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_SRC_ALPHA</a>, <a>GL_ONE_MINUS_SRC_COLOR</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_COLOR</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml</a>
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparate</a> sfactorRGB dfactorRGB
--   sfactorAlpha dfactorAlpha</tt>
--   
--   The parameter <tt>sfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>sfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml</a>
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBufferData</a> target size data usage</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>usage</tt> is a <tt>BufferUsageARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml</a>
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glBufferSubData</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml</a>
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glCheckFramebufferStatus</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml</a>
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Usage: <tt><a>glClear</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClear.xhtml</a>
glClear :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glClearColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml</a>
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glClearDepthf</a> d</tt>
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glClearStencil</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>StencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml</a>
glClearStencil :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glColorMask</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>green</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>blue</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>alpha</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml</a>
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage2D</a> target level xoffset
--   yoffset width height format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml</a>
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCreateProgram</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml</a>
glCreateProgram :: MonadIO m => m GLuint

-- | Usage: <tt><a>glCullFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>CullFaceMode</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml</a>
glCullFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDepthFunc</a> func</tt>
--   
--   The parameter <tt>func</tt> is a <tt>DepthFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml</a>
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDepthMask</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml</a>
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Usage: <tt><a>glDepthRangef</a> n f</tt>
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glDisable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDisableVertexAttribArray</a> index</tt>
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDrawArrays</a> mode first count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml</a>
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawRangeElements</a> mode start end count type
--   indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml</a>
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glEnable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml</a>
glEnable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glEnableVertexAttribArray</a> index</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml</a>
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glFinish</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml</a>
glFinish :: MonadIO m => m ()

-- | Usage: <tt><a>glFlush</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml</a>
glFlush :: MonadIO m => m ()

-- | Usage: <tt><a>glFramebufferRenderbuffer</a> target attachment
--   renderbuffertarget renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>renderbuffertarget</tt> is a
--   <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml</a>
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glFramebufferTexture2D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFrontFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>FrontFaceDirection</tt>, one of:
--   <a>GL_CCW</a>, <a>GL_CW</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml</a>
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGenBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml</a>
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml</a>
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml</a>
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml</a>
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenerateMipmap</a> target</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml</a>
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGetAttribLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml</a>
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetBooleanv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetBufferParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetError</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml</a>
glGetError :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetFloatv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFramebufferAttachmentParameteriv</a> target
--   attachment pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetGraphicsResetStatus</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml</a>
glGetGraphicsResetStatus :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetIntegerv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramiv</a> program pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetRenderbufferParameteriv</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetString</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>StringName</tt>, one of:
--   <a>GL_EXTENSIONS</a>, <a>GL_RENDERER</a>, <a>GL_VENDOR</a>,
--   <a>GL_VERSION</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml</a>
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Usage: <tt><a>glGetTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetUniformLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml</a>
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetVertexAttribPointerv</a> index pname pointer</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexAttribPointerPropertyARB</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml</a>
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetVertexAttribfv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVertexAttribiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetnUniformfv</a> program location bufSize params</tt>
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnUniformiv</a> program location bufSize params</tt>
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glHint</a> target mode</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HintTarget</tt>, one of:
--   <a>GL_ALLOW_DRAW_FRG_HINT_PGI</a>, <a>GL_ALLOW_DRAW_MEM_HINT_PGI</a>,
--   <a>GL_ALLOW_DRAW_OBJ_HINT_PGI</a>, <a>GL_ALLOW_DRAW_WIN_HINT_PGI</a>,
--   <a>GL_ALWAYS_FAST_HINT_PGI</a>, <a>GL_ALWAYS_SOFT_HINT_PGI</a>,
--   <a>GL_BACK_NORMALS_HINT_PGI</a>, <a>GL_BINNING_CONTROL_HINT_QCOM</a>,
--   <a>GL_CLIP_FAR_HINT_PGI</a>, <a>GL_CLIP_NEAR_HINT_PGI</a>,
--   <a>GL_CLIP_VOLUME_CLIPPING_HINT_EXT</a>,
--   <a>GL_CONSERVE_MEMORY_HINT_PGI</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_FOG_HINT</a>, <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES</a>,
--   <a>GL_FULL_STIPPLE_HINT_PGI</a>, <a>GL_GENERATE_MIPMAP_HINT</a>,
--   <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <tt>GL_LINE_QUALITY_HINT_SGIX</tt>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_MATERIAL_SIDE_HINT_PGI</a>, <a>GL_MAX_VERTEX_HINT_PGI</a>,
--   <a>GL_MULTISAMPLE_FILTER_HINT_NV</a>,
--   <a>GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI</a>,
--   <a>GL_NATIVE_GRAPHICS_END_HINT_PGI</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PERSPECTIVE_CORRECTION_HINT</a>, <a>GL_PHONG_HINT_WIN</a>,
--   <a>GL_POINT_SMOOTH_HINT</a>, <a>GL_POLYGON_SMOOTH_HINT</a>,
--   <a>GL_PREFER_DOUBLEBUFFER_HINT_PGI</a>,
--   <a>GL_PROGRAM_BINARY_RETRIEVABLE_HINT</a>,
--   <a>GL_RECLAIM_MEMORY_HINT_PGI</a>, <a>GL_SCALEBIAS_HINT_SGIX</a>,
--   <a>GL_STRICT_DEPTHFUNC_HINT_PGI</a>,
--   <a>GL_STRICT_LIGHTING_HINT_PGI</a>, <a>GL_STRICT_SCISSOR_HINT_PGI</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT_ARB</a>,
--   <a>GL_TEXTURE_MULTI_BUFFER_HINT_SGIX</a>,
--   <a>GL_TEXTURE_STORAGE_HINT_APPLE</a>, <a>GL_TRANSFORM_HINT_APPLE</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_STORAGE_HINT_APPLE</a>,
--   <a>GL_VERTEX_CONSISTENT_HINT_PGI</a>, <a>GL_VERTEX_DATA_HINT_PGI</a>,
--   <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>, <a>GL_VERTEX_PRECLIP_SGIX</a>,
--   <a>GL_WIDE_LINE_HINT_PGI</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>HintMode</tt>, one of:
--   <a>GL_DONT_CARE</a>, <a>GL_FASTEST</a>, <a>GL_NICEST</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glHint.xhtml</a>
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glIsEnabled</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml</a>
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Usage: <tt><a>glLineWidth</a> width</tt>
--   
--   The parameter <tt>width</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml</a>
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glPixelStorei</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelStoreParameter</tt>, one
--   of: <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_PACK_IMAGE_HEIGHT</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_OML</a>,
--   <a>GL_PACK_RESAMPLE_SGIX</a>, <a>GL_PACK_ROW_LENGTH</a>,
--   <a>GL_PACK_SKIP_IMAGES</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_UNPACK_ALIGNMENT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT</a>, <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_UNPACK_LSB_FIRST</a>, <a>GL_UNPACK_RESAMPLE_OML</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_ROW_LENGTH_EXT</a>, <a>GL_UNPACK_SKIP_IMAGES</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_PIXELS_EXT</a>, <a>GL_UNPACK_SKIP_ROWS</a>,
--   <a>GL_UNPACK_SKIP_ROWS_EXT</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPolygonOffset</a> factor units</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml</a>
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramBinary</a> program binaryFormat binary
--   length</tt>
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml</a>
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glReadnPixels</a> x y width height format type bufSize
--   data</tt>
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glRenderbufferStorage</a> target internalformat width
--   height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml</a>
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glSampleCoverage</a> value invert</tt>
--   
--   The parameter <tt>invert</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml</a>
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Usage: <tt><a>glScissor</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml</a>
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glStencilFunc</a> func ref mask</tt>
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml</a>
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilFuncSeparate</a> face func ref mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml</a>
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilMask</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml</a>
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glStencilMaskSeparate</a> face mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml</a>
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glStencilOp</a> fail zfail zpass</tt>
--   
--   The parameter <tt>fail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zpass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml</a>
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glStencilOpSeparate</a> face sfail dpfail dppass</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>sfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dpfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dppass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml</a>
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glTexParameterf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexParameteri</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexStorage2D</a> target levels internalformat width
--   height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml</a>
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTexSubImage2D</a> target level xoffset yoffset width
--   height format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml</a>
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glUniform1f</a> location v0</tt>
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform1fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform1i</a> location v0</tt>
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform1iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform2f</a> location v0 v1</tt>
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform2fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform2i</a> location v0 v1</tt>
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform2iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform3f</a> location v0 v1 v2</tt>
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform3fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform3i</a> location v0 v1 v2</tt>
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform3iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform4f</a> location v0 v1 v2 v3</tt>
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform4fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform4i</a> location v0 v1 v2 v3</tt>
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform4iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniformMatrix2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUseProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml</a>
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib1f</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2f</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3f</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4f</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttribPointer</a> index size type normalized
--   stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml</a>
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glViewport</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml</a>
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Embedded20

-- | Usage: <tt><a>glActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml</a>
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glAttachShader</a> program shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glAttachShader.xhtml</a>
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindAttribLocation</a> program index name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindAttribLocation.xhtml</a>
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glBindBuffer</a> target buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml</a>
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindFramebuffer</a> target framebuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml</a>
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindRenderbuffer</a> target renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml</a>
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindTexture</a> target texture</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml</a>
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBlendColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml</a>
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glBlendEquation</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>BlendEquationMode</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml</a>
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBlendEquationSeparate</a> modeRGB modeAlpha</tt>
--   
--   The parameter <tt>modeRGB</tt> is a <tt>BlendEquationModeEXT</tt>, one
--   of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   The parameter <tt>modeAlpha</tt> is a <tt>BlendEquationModeEXT</tt>,
--   one of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml</a>
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFunc</a> sfactor dfactor</tt>
--   
--   The parameter <tt>sfactor</tt> is a <tt>BlendingFactorSrc</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_DST_COLOR</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_DST_COLOR</a>, <a>GL_ONE_MINUS_SRC_ALPHA</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_ALPHA_SATURATE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dfactor</tt> is a <tt>BlendingFactorDest</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_SRC_ALPHA</a>, <a>GL_ONE_MINUS_SRC_COLOR</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_COLOR</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml</a>
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparate</a> sfactorRGB dfactorRGB
--   sfactorAlpha dfactorAlpha</tt>
--   
--   The parameter <tt>sfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>sfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml</a>
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBufferData</a> target size data usage</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>usage</tt> is a <tt>BufferUsageARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml</a>
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glBufferSubData</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml</a>
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glCheckFramebufferStatus</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml</a>
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Usage: <tt><a>glClear</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClear.xhtml</a>
glClear :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glClearColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml</a>
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glClearDepthf</a> d</tt>
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glClearStencil</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>StencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml</a>
glClearStencil :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glColorMask</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>green</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>blue</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>alpha</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml</a>
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glCompileShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompileShader.xhtml</a>
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCompressedTexImage2D</a> target level internalformat
--   width height border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml</a>
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage2D</a> target level xoffset
--   yoffset width height format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml</a>
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyTexImage2D</a> target level internalformat x y
--   width height border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml</a>
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTexSubImage2D</a> target level xoffset yoffset x y
--   width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml</a>
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCreateProgram</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml</a>
glCreateProgram :: MonadIO m => m GLuint

-- | Usage: <tt><a>glCreateShader</a> type</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateShader.xhtml</a>
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Usage: <tt><a>glCullFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>CullFaceMode</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml</a>
glCullFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDeleteBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml</a>
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml</a>
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteProgram.xhtml</a>
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml</a>
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteShader.xhtml</a>
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml</a>
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDepthFunc</a> func</tt>
--   
--   The parameter <tt>func</tt> is a <tt>DepthFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml</a>
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDepthMask</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml</a>
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Usage: <tt><a>glDepthRangef</a> n f</tt>
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glDetachShader</a> program shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDetachShader.xhtml</a>
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDisable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDisableVertexAttribArray</a> index</tt>
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDrawArrays</a> mode first count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml</a>
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElements</a> mode count type indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml</a>
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glEnable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml</a>
glEnable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glEnableVertexAttribArray</a> index</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml</a>
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glFinish</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml</a>
glFinish :: MonadIO m => m ()

-- | Usage: <tt><a>glFlush</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml</a>
glFlush :: MonadIO m => m ()

-- | Usage: <tt><a>glFramebufferRenderbuffer</a> target attachment
--   renderbuffertarget renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>renderbuffertarget</tt> is a
--   <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml</a>
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glFramebufferTexture2D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFrontFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>FrontFaceDirection</tt>, one of:
--   <a>GL_CCW</a>, <a>GL_CW</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml</a>
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGenBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml</a>
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml</a>
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml</a>
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml</a>
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenerateMipmap</a> target</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml</a>
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGetActiveAttrib</a> program index bufSize length size
--   type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveAttrib.xhtml</a>
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniform</a> program index bufSize length size
--   type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniform.xhtml</a>
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetAttachedShaders</a> program maxCount count
--   shaders</tt>
--   
--   The length of <tt>count</tt> should be <tt>1</tt>.
--   
--   The length of <tt>shaders</tt> should be <tt>maxCount</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml</a>
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetAttribLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml</a>
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetBooleanv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetBufferParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetError</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml</a>
glGetError :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetFloatv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFramebufferAttachmentParameteriv</a> target
--   attachment pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetIntegerv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramInfoLog</a> program bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramInfoLog.xhtml</a>
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramiv</a> program pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetRenderbufferParameteriv</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetShaderInfoLog</a> shader bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderInfoLog.xhtml</a>
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetShaderPrecisionFormat</a> shadertype precisiontype
--   range precision</tt>
--   
--   The length of <tt>range</tt> should be <tt>2</tt>.
--   
--   The length of <tt>precision</tt> should be <tt>2</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderPrecisionFormat.xhtml</a>
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetShaderSource</a> shader bufSize length source</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>source</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml</a>
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetShaderiv</a> shader pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetString</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>StringName</tt>, one of:
--   <a>GL_EXTENSIONS</a>, <a>GL_RENDERER</a>, <a>GL_VENDOR</a>,
--   <a>GL_VERSION</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml</a>
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Usage: <tt><a>glGetTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetUniformLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml</a>
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetUniformfv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetUniformiv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexAttribPointerv</a> index pname pointer</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexAttribPointerPropertyARB</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml</a>
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetVertexAttribfv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVertexAttribiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glHint</a> target mode</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HintTarget</tt>, one of:
--   <a>GL_ALLOW_DRAW_FRG_HINT_PGI</a>, <a>GL_ALLOW_DRAW_MEM_HINT_PGI</a>,
--   <a>GL_ALLOW_DRAW_OBJ_HINT_PGI</a>, <a>GL_ALLOW_DRAW_WIN_HINT_PGI</a>,
--   <a>GL_ALWAYS_FAST_HINT_PGI</a>, <a>GL_ALWAYS_SOFT_HINT_PGI</a>,
--   <a>GL_BACK_NORMALS_HINT_PGI</a>, <a>GL_BINNING_CONTROL_HINT_QCOM</a>,
--   <a>GL_CLIP_FAR_HINT_PGI</a>, <a>GL_CLIP_NEAR_HINT_PGI</a>,
--   <a>GL_CLIP_VOLUME_CLIPPING_HINT_EXT</a>,
--   <a>GL_CONSERVE_MEMORY_HINT_PGI</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_FOG_HINT</a>, <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES</a>,
--   <a>GL_FULL_STIPPLE_HINT_PGI</a>, <a>GL_GENERATE_MIPMAP_HINT</a>,
--   <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <tt>GL_LINE_QUALITY_HINT_SGIX</tt>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_MATERIAL_SIDE_HINT_PGI</a>, <a>GL_MAX_VERTEX_HINT_PGI</a>,
--   <a>GL_MULTISAMPLE_FILTER_HINT_NV</a>,
--   <a>GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI</a>,
--   <a>GL_NATIVE_GRAPHICS_END_HINT_PGI</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PERSPECTIVE_CORRECTION_HINT</a>, <a>GL_PHONG_HINT_WIN</a>,
--   <a>GL_POINT_SMOOTH_HINT</a>, <a>GL_POLYGON_SMOOTH_HINT</a>,
--   <a>GL_PREFER_DOUBLEBUFFER_HINT_PGI</a>,
--   <a>GL_PROGRAM_BINARY_RETRIEVABLE_HINT</a>,
--   <a>GL_RECLAIM_MEMORY_HINT_PGI</a>, <a>GL_SCALEBIAS_HINT_SGIX</a>,
--   <a>GL_STRICT_DEPTHFUNC_HINT_PGI</a>,
--   <a>GL_STRICT_LIGHTING_HINT_PGI</a>, <a>GL_STRICT_SCISSOR_HINT_PGI</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT_ARB</a>,
--   <a>GL_TEXTURE_MULTI_BUFFER_HINT_SGIX</a>,
--   <a>GL_TEXTURE_STORAGE_HINT_APPLE</a>, <a>GL_TRANSFORM_HINT_APPLE</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_STORAGE_HINT_APPLE</a>,
--   <a>GL_VERTEX_CONSISTENT_HINT_PGI</a>, <a>GL_VERTEX_DATA_HINT_PGI</a>,
--   <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>, <a>GL_VERTEX_PRECLIP_SGIX</a>,
--   <a>GL_WIDE_LINE_HINT_PGI</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>HintMode</tt>, one of:
--   <a>GL_DONT_CARE</a>, <a>GL_FASTEST</a>, <a>GL_NICEST</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glHint.xhtml</a>
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glIsBuffer</a> buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml</a>
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsEnabled</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml</a>
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Usage: <tt><a>glIsFramebuffer</a> framebuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml</a>
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsProgram.xhtml</a>
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsRenderbuffer</a> renderbuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml</a>
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsShader.xhtml</a>
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml</a>
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glLineWidth</a> width</tt>
--   
--   The parameter <tt>width</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml</a>
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glLinkProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml</a>
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glPixelStorei</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelStoreParameter</tt>, one
--   of: <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_PACK_IMAGE_HEIGHT</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_OML</a>,
--   <a>GL_PACK_RESAMPLE_SGIX</a>, <a>GL_PACK_ROW_LENGTH</a>,
--   <a>GL_PACK_SKIP_IMAGES</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_UNPACK_ALIGNMENT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT</a>, <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_UNPACK_LSB_FIRST</a>, <a>GL_UNPACK_RESAMPLE_OML</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_ROW_LENGTH_EXT</a>, <a>GL_UNPACK_SKIP_IMAGES</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_PIXELS_EXT</a>, <a>GL_UNPACK_SKIP_ROWS</a>,
--   <a>GL_UNPACK_SKIP_ROWS_EXT</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPolygonOffset</a> factor units</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml</a>
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glReadPixels</a> x y width height format type
--   pixels</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml</a>
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glReleaseShaderCompiler</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReleaseShaderCompiler.xhtml</a>
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Usage: <tt><a>glRenderbufferStorage</a> target internalformat width
--   height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml</a>
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glSampleCoverage</a> value invert</tt>
--   
--   The parameter <tt>invert</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml</a>
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Usage: <tt><a>glScissor</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml</a>
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glShaderBinary</a> count shaders binaryformat binary
--   length</tt>
--   
--   The length of <tt>shaders</tt> should be <tt>count</tt>.
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderBinary.xhtml</a>
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glShaderSource</a> shader count string length</tt>
--   
--   The length of <tt>string</tt> should be <tt>count</tt>.
--   
--   The length of <tt>length</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderSource.xhtml</a>
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Usage: <tt><a>glStencilFunc</a> func ref mask</tt>
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml</a>
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilFuncSeparate</a> face func ref mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml</a>
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilMask</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml</a>
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glStencilMaskSeparate</a> face mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml</a>
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glStencilOp</a> fail zfail zpass</tt>
--   
--   The parameter <tt>fail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zpass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml</a>
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glStencilOpSeparate</a> face sfail dpfail dppass</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>sfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dpfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dppass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml</a>
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glTexImage2D</a> target level internalformat width
--   height border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml</a>
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexParameterf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexParameteri</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexSubImage2D</a> target level xoffset yoffset width
--   height format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml</a>
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glUniform1f</a> location v0</tt>
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform1fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform1i</a> location v0</tt>
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform1iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform2f</a> location v0 v1</tt>
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform2fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform2i</a> location v0 v1</tt>
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform2iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform3f</a> location v0 v1 v2</tt>
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform3fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform3i</a> location v0 v1 v2</tt>
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform3iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform4f</a> location v0 v1 v2 v3</tt>
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform4fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform4i</a> location v0 v1 v2 v3</tt>
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform4iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniformMatrix2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUseProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml</a>
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glValidateProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glValidateProgram.xhtml</a>
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib1f</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2f</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3f</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4f</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttribPointer</a> index size type normalized
--   stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml</a>
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glViewport</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml</a>
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Embedded30

-- | Usage: <tt><a>glBeginQuery</a> target id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginQuery.xhtml</a>
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBeginTransformFeedback</a> primitiveMode</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginTransformFeedback.xhtml</a>
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBindBufferBase</a> target index buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml</a>
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindBufferRange</a> target index buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml</a>
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glBindSampler</a> unit sampler</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindSampler.xhtml</a>
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindTransformFeedback</a> target id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTransformFeedback.xhtml</a>
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml</a>
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glBlitFramebuffer</a> srcX0 srcY0 srcX1 srcY1 dstX0
--   dstY0 dstX1 dstY1 mask filter</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml</a>
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Usage: <tt><a>glClearBufferfi</a> buffer drawbuffer depth stencil</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Usage: <tt><a>glClearBufferfv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glClearBufferiv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glClearBufferuiv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glClientWaitSync</a> sync flags timeout</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClientWaitSync.xhtml</a>
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Usage: <tt><a>glCompressedTexImage3D</a> target level internalformat
--   width height depth border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage3D.xhtml</a>
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage3D</a> target level xoffset
--   yoffset zoffset width height depth format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage3D.xhtml</a>
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyBufferSubData</a> readTarget writeTarget
--   readOffset writeOffset size</tt>
--   
--   The parameter <tt>readOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>writeOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml</a>
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glCopyTexSubImage3D</a> target level xoffset yoffset
--   zoffset x y width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage3D.xhtml</a>
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDeleteQueries</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteQueries.xhtml</a>
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteSamplers</a> count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteSamplers.xhtml</a>
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteSync</a> sync</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteSync.xhtml</a>
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Usage: <tt><a>glDeleteTransformFeedbacks</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteTransformFeedbacks.xhtml</a>
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml</a>
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDrawArraysInstanced</a> mode first count
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml</a>
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawBuffers</a> n bufs</tt>
--   
--   The parameter <tt>bufs</tt> is a <tt>DrawBufferModeATI</tt>.
--   
--   The length of <tt>bufs</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawBuffers.xhtml</a>
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glDrawElementsInstanced</a> mode count type indices
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstanced.xhtml</a>
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawRangeElements</a> mode start end count type
--   indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml</a>
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glEndQuery</a> target</tt>
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glEndTransformFeedback</a></tt>
glEndTransformFeedback :: MonadIO m => m ()

-- | Usage: <tt><a>glFenceSync</a> condition flags</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFenceSync.xhtml</a>
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Usage: <tt><a>glFlushMappedBufferRange</a> target offset length</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml</a>
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glFramebufferTextureLayer</a> target attachment texture
--   level layer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml</a>
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glGenQueries</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenQueries.xhtml</a>
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenSamplers</a> count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenSamplers.xhtml</a>
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenTransformFeedbacks</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTransformFeedbacks.xhtml</a>
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml</a>
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetActiveUniformBlockName</a> program
--   uniformBlockIndex bufSize length uniformBlockName</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml</a>
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniformBlockiv</a> program uniformBlockIndex
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,uniformBlockIndex,pname)</tt>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetActiveUniformsiv</a> program uniformCount
--   uniformIndices pname params</tt>
--   
--   The length of <tt>uniformIndices</tt> should be <tt>uniformCount</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(uniformCount,pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml</a>
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetBufferParameteri64v</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetBufferPointerv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPointerNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetBufferPointerv.xhtml</a>
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetFragDataLocation</a> program name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetFragDataLocation.xhtml</a>
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetInteger64i_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetInteger64v</a> pname data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetIntegeri_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetInternalformativ</a> target internalformat pname
--   bufSize params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramBinary</a> program bufSize length
--   binaryFormat binary</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binaryFormat</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binary</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramBinary.xhtml</a>
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetQueryObjectuiv</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetQueryiv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetQueryiv.xhtml</a>
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSamplerParameterfv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetSamplerParameteriv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetStringi</a> name index</tt>
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Usage: <tt><a>glGetSynciv</a> sync pname bufSize length values</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTransformFeedbackVarying</a> program index bufSize
--   length size type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTransformFeedbackVarying.xhtml</a>
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetUniformBlockIndex</a> program uniformBlockName</tt>
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>COMPSIZE()</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml</a>
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetUniformIndices</a> program uniformCount
--   uniformNames uniformIndices</tt>
--   
--   The length of <tt>uniformNames</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   The length of <tt>uniformIndices</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml</a>
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetUniformuiv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetVertexAttribIiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexAttribIuiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glInvalidateFramebuffer</a> target numAttachments
--   attachments</tt>
--   
--   The length of <tt>attachments</tt> should be <tt>numAttachments</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateFramebuffer.xhtml</a>
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glInvalidateSubFramebuffer</a> target numAttachments
--   attachments x y width height</tt>
--   
--   The length of <tt>attachments</tt> should be <tt>numAttachments</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateSubFramebuffer.xhtml</a>
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glIsQuery</a> id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsQuery.xhtml</a>
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsSampler</a> sampler</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsSampler.xhtml</a>
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsSync</a> sync</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsSync.xhtml</a>
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Usage: <tt><a>glIsTransformFeedback</a> id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsTransformFeedback.xhtml</a>
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml</a>
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glMapBufferRange</a> target offset length access</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessMask</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml</a>
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())

-- | Usage: <tt><a>glPauseTransformFeedback</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPauseTransformFeedback.xhtml</a>
glPauseTransformFeedback :: MonadIO m => m ()

-- | Usage: <tt><a>glProgramBinary</a> program binaryFormat binary
--   length</tt>
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml</a>
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glProgramParameteri</a> program pname value</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramParameterPName</tt>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glReadBuffer</a> src</tt>
--   
--   The parameter <tt>src</tt> is a <tt>ReadBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_LEFT</a>, <a>GL_FRONT_RIGHT</a>,
--   <a>GL_LEFT</a>, <a>GL_RIGHT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReadBuffer.xhtml</a>
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glRenderbufferStorageMultisample</a> target samples
--   internalformat width height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml</a>
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glResumeTransformFeedback</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glResumeTransformFeedback.xhtml</a>
glResumeTransformFeedback :: MonadIO m => m ()

-- | Usage: <tt><a>glSamplerParameterf</a> sampler pname param</tt>
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glSamplerParameterfv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSamplerParameteri</a> sampler pname param</tt>
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glSamplerParameteriv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexImage3D</a> target level internalformat width
--   height depth border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage3D.xhtml</a>
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexStorage2D</a> target levels internalformat width
--   height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml</a>
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTexStorage3D</a> target levels internalformat width
--   height depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage3D.xhtml</a>
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTexSubImage3D</a> target level xoffset yoffset zoffset
--   width height depth format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage3D.xhtml</a>
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTransformFeedbackVaryings</a> program count varyings
--   bufferMode</tt>
--   
--   The length of <tt>varyings</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackVaryings.xhtml</a>
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Usage: <tt><a>glUniform1ui</a> location v0</tt>
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform1uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform2ui</a> location v0 v1</tt>
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform2uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform3ui</a> location v0 v1 v2</tt>
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform3uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform4ui</a> location v0 v1 v2 v3</tt>
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform4uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniformBlockBinding</a> program uniformBlockIndex
--   uniformBlockBinding</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml</a>
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniformMatrix2x3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix2x4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3x2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3x4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4x2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4x3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUnmapBuffer</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUnmapBuffer.xhtml</a>
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Usage: <tt><a>glVertexAttribDivisor</a> index divisor</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribDivisor.xhtml</a>
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4i</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI4iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI4ui</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribIPointer</a> index size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glWaitSync</a> sync flags timeout</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glWaitSync.xhtml</a>
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

module Graphics.GL.Embedded31

-- | Usage: <tt><a>glActiveShaderProgram</a> pipeline program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveShaderProgram.xhtml</a>
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindImageTexture</a> unit texture level layered layer
--   access format</tt>
--   
--   The parameter <tt>layered</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindImageTexture.xhtml</a>
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBindProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindProgramPipeline.xhtml</a>
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glBindVertexBuffer</a> bindingindex buffer offset
--   stride</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffer.xhtml</a>
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Usage: <tt><a>glCreateShaderProgramv</a> type count strings</tt>
--   
--   The length of <tt>strings</tt> should be <tt>count</tt>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Usage: <tt><a>glDeleteProgramPipelines</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteProgramPipelines.xhtml</a>
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDispatchCompute</a> num_groups_x num_groups_y
--   num_groups_z</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDispatchCompute.xhtml</a>
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDispatchComputeIndirect</a> indirect</tt>
--   
--   The parameter <tt>indirect</tt> is a <tt>BufferOffset</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDispatchComputeIndirect.xhtml</a>
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Usage: <tt><a>glDrawArraysIndirect</a> mode indirect</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysIndirect.xhtml</a>
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glDrawElementsIndirect</a> mode type indirect</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsIndirect.xhtml</a>
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glFramebufferParameteri</a> target pname param</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferParameteri.xhtml</a>
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glGenProgramPipelines</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenProgramPipelines.xhtml</a>
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetBooleani_v</a> target index data</tt>
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetFramebufferParameteriv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMultisamplefv</a> pname index val</tt>
--   
--   The length of <tt>val</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetProgramInterfaceiv</a> program programInterface
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramPipelineInfoLog</a> pipeline bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramPipelineInfoLog.xhtml</a>
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramPipelineiv</a> pipeline pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramResourceIndex</a> program programInterface
--   name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceIndex.xhtml</a>
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetProgramResourceLocation</a> program
--   programInterface name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocation.xhtml</a>
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetProgramResourceName</a> program programInterface
--   index bufSize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceName.xhtml</a>
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramResourceiv</a> program programInterface
--   index propCount props bufSize length params</tt>
--   
--   The length of <tt>props</tt> should be <tt>propCount</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexLevelParameterfv</a> target level pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexLevelParameteriv</a> target level pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsProgramPipeline.xhtml</a>
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glMemoryBarrier</a> barriers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMemoryBarrier.xhtml</a>
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glMemoryBarrierByRegion</a> barriers</tt>
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glProgramUniform1f</a> program location v0</tt>
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1i</a> program location v0</tt>
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1ui</a> program location v0</tt>
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform1uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2f</a> program location v0 v1</tt>
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2i</a> program location v0 v1</tt>
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2ui</a> program location v0 v1</tt>
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3f</a> program location v0 v1 v2</tt>
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3i</a> program location v0 v1 v2</tt>
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3ui</a> program location v0 v1 v2</tt>
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4f</a> program location v0 v1 v2 v3</tt>
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4i</a> program location v0 v1 v2 v3</tt>
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4ui</a> program location v0 v1 v2
--   v3</tt>
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSampleMaski</a> maskNumber mask</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleMaski.xhtml</a>
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Usage: <tt><a>glTexStorage2DMultisample</a> target samples
--   internalformat width height fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage2DMultisample.xhtml</a>
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glUseProgramStages</a> pipeline stages program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUseProgramStages.xhtml</a>
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Usage: <tt><a>glValidateProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glValidateProgramPipeline.xhtml</a>
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribBinding</a> attribindex bindingindex</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribBinding.xhtml</a>
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribFormat</a> attribindex size type
--   normalized relativeoffset</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribFormat.xhtml</a>
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribIFormat</a> attribindex size type
--   relativeoffset</tt>
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexBindingDivisor</a> bindingindex divisor</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexBindingDivisor.xhtml</a>
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()

module Graphics.GL.Core32

-- | Usage: <tt><a>glActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml</a>
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glAttachShader</a> program shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glAttachShader.xhtml</a>
glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBeginConditionalRender</a> id mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>TypeEnum</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginConditionalRender.xhtml</a>
glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glBeginQuery</a> target id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginQuery.xhtml</a>
glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBeginTransformFeedback</a> primitiveMode</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginTransformFeedback.xhtml</a>
glBeginTransformFeedback :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBindAttribLocation</a> program index name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindAttribLocation.xhtml</a>
glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glBindBuffer</a> target buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml</a>
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindBufferBase</a> target index buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml</a>
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindBufferRange</a> target index buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml</a>
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glBindFragDataLocation</a> program color name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocation.xhtml</a>
glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glBindFramebuffer</a> target framebuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml</a>
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindRenderbuffer</a> target renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml</a>
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindTexture</a> target texture</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml</a>
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml</a>
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glBlendColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml</a>
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glBlendEquation</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>BlendEquationMode</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml</a>
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBlendEquationSeparate</a> modeRGB modeAlpha</tt>
--   
--   The parameter <tt>modeRGB</tt> is a <tt>BlendEquationModeEXT</tt>, one
--   of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   The parameter <tt>modeAlpha</tt> is a <tt>BlendEquationModeEXT</tt>,
--   one of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml</a>
glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFunc</a> sfactor dfactor</tt>
--   
--   The parameter <tt>sfactor</tt> is a <tt>BlendingFactorSrc</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_DST_COLOR</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_DST_COLOR</a>, <a>GL_ONE_MINUS_SRC_ALPHA</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_ALPHA_SATURATE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dfactor</tt> is a <tt>BlendingFactorDest</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_SRC_ALPHA</a>, <a>GL_ONE_MINUS_SRC_COLOR</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_COLOR</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml</a>
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparate</a> sfactorRGB dfactorRGB
--   sfactorAlpha dfactorAlpha</tt>
--   
--   The parameter <tt>sfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>sfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml</a>
glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlitFramebuffer</a> srcX0 srcY0 srcX1 srcY1 dstX0
--   dstY0 dstX1 dstY1 mask filter</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml</a>
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Usage: <tt><a>glBufferData</a> target size data usage</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>usage</tt> is a <tt>BufferUsageARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml</a>
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glBufferSubData</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml</a>
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glCheckFramebufferStatus</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml</a>
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Usage: <tt><a>glClampColor</a> target clamp</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ClampColorTargetARB</tt>.
--   
--   The parameter <tt>clamp</tt> is a <tt>ClampColorModeARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClampColor.xhtml</a>
glClampColor :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glClear</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClear.xhtml</a>
glClear :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glClearBufferfi</a> buffer drawbuffer depth stencil</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Usage: <tt><a>glClearBufferfv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glClearBufferiv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glClearBufferuiv</a> buffer drawbuffer value</tt>
--   
--   The parameter <tt>drawbuffer</tt> is a <tt>DrawBufferName</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(buffer)</tt>.
glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glClearColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml</a>
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glClearDepth</a> depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearDepth.xhtml</a>
glClearDepth :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glClearStencil</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>StencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml</a>
glClearStencil :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glClientWaitSync</a> sync flags timeout</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClientWaitSync.xhtml</a>
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Usage: <tt><a>glColorMask</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>green</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>blue</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>alpha</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml</a>
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glColorMaski</a> index r g b a</tt>
--   
--   The parameter <tt>r</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>g</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>b</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>a</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glCompileShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompileShader.xhtml</a>
glCompileShader :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCompressedTexImage1D</a> target level internalformat
--   width border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage1D.xhtml</a>
glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexImage2D</a> target level internalformat
--   width height border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml</a>
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexImage3D</a> target level internalformat
--   width height depth border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage3D.xhtml</a>
glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage1D</a> target level xoffset width
--   format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage1D.xhtml</a>
glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage2D</a> target level xoffset
--   yoffset width height format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml</a>
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage3D</a> target level xoffset
--   yoffset zoffset width height depth format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage3D.xhtml</a>
glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyBufferSubData</a> readTarget writeTarget
--   readOffset writeOffset size</tt>
--   
--   The parameter <tt>readOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>writeOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml</a>
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glCopyTexImage1D</a> target level internalformat x y
--   width border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexImage1D.xhtml</a>
glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTexImage2D</a> target level internalformat x y
--   width height border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml</a>
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTexSubImage1D</a> target level xoffset x y
--   width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage1D.xhtml</a>
glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTexSubImage2D</a> target level xoffset yoffset x y
--   width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml</a>
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTexSubImage3D</a> target level xoffset yoffset
--   zoffset x y width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage3D.xhtml</a>
glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCreateProgram</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml</a>
glCreateProgram :: MonadIO m => m GLuint

-- | Usage: <tt><a>glCreateShader</a> type</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateShader.xhtml</a>
glCreateShader :: MonadIO m => GLenum -> m GLuint

-- | Usage: <tt><a>glCullFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>CullFaceMode</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml</a>
glCullFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDeleteBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml</a>
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml</a>
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteProgram.xhtml</a>
glDeleteProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteQueries</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteQueries.xhtml</a>
glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml</a>
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteShader.xhtml</a>
glDeleteShader :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteSync</a> sync</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteSync.xhtml</a>
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Usage: <tt><a>glDeleteTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml</a>
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml</a>
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDepthFunc</a> func</tt>
--   
--   The parameter <tt>func</tt> is a <tt>DepthFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml</a>
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDepthMask</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml</a>
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Usage: <tt><a>glDepthRange</a> near far</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthRange.xhtml</a>
glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glDetachShader</a> program shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDetachShader.xhtml</a>
glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDisable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDisableVertexAttribArray</a> index</tt>
glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDisablei</a> target index</tt>
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDrawArrays</a> mode first count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml</a>
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawArraysInstanced</a> mode first count
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml</a>
glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawBuffer</a> buf</tt>
--   
--   The parameter <tt>buf</tt> is a <tt>DrawBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>, <a>GL_FRONT_LEFT</a>,
--   <a>GL_FRONT_RIGHT</a>, <a>GL_LEFT</a>, <a>GL_NONE</a>,
--   <a>GL_NONE_OES</a>, <a>GL_RIGHT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawBuffer.xhtml</a>
glDrawBuffer :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDrawBuffers</a> n bufs</tt>
--   
--   The parameter <tt>bufs</tt> is a <tt>DrawBufferModeATI</tt>.
--   
--   The length of <tt>bufs</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawBuffers.xhtml</a>
glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glDrawElements</a> mode count type indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml</a>
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glDrawElementsBaseVertex</a> mode count type indices
--   basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsBaseVertex.xhtml</a>
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glDrawElementsInstanced</a> mode count type indices
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstanced.xhtml</a>
glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertex</a> mode count type
--   indices instancecount basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertex.xhtml</a>
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glDrawRangeElements</a> mode start end count type
--   indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml</a>
glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glDrawRangeElementsBaseVertex</a> mode start end count
--   type indices basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawRangeElementsBaseVertex.xhtml</a>
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glEnable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml</a>
glEnable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glEnableVertexAttribArray</a> index</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml</a>
glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glEnablei</a> target index</tt>
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEndConditionalRender</a></tt>
glEndConditionalRender :: MonadIO m => m ()

-- | Usage: <tt><a>glEndQuery</a> target</tt>
glEndQuery :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glEndTransformFeedback</a></tt>
glEndTransformFeedback :: MonadIO m => m ()

-- | Usage: <tt><a>glFenceSync</a> condition flags</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFenceSync.xhtml</a>
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Usage: <tt><a>glFinish</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml</a>
glFinish :: MonadIO m => m ()

-- | Usage: <tt><a>glFlush</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml</a>
glFlush :: MonadIO m => m ()

-- | Usage: <tt><a>glFlushMappedBufferRange</a> target offset length</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml</a>
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glFramebufferRenderbuffer</a> target attachment
--   renderbuffertarget renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>renderbuffertarget</tt> is a
--   <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml</a>
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glFramebufferTexture</a> target attachment texture
--   level</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferTexture.xhtml</a>
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTexture1D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTexture2D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTexture3D</a> target attachment textarget
--   texture level zoffset</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTextureLayer</a> target attachment texture
--   level layer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml</a>
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glFrontFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>FrontFaceDirection</tt>, one of:
--   <a>GL_CCW</a>, <a>GL_CW</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml</a>
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGenBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml</a>
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml</a>
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenQueries</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenQueries.xhtml</a>
glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml</a>
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml</a>
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml</a>
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenerateMipmap</a> target</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml</a>
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGetActiveAttrib</a> program index bufSize length size
--   type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveAttrib.xhtml</a>
glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniform</a> program index bufSize length size
--   type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniform.xhtml</a>
glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniformBlockName</a> program
--   uniformBlockIndex bufSize length uniformBlockName</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml</a>
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniformBlockiv</a> program uniformBlockIndex
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,uniformBlockIndex,pname)</tt>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetActiveUniformName</a> program uniformIndex bufSize
--   length uniformName</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>uniformName</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformName.xhtml</a>
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniformsiv</a> program uniformCount
--   uniformIndices pname params</tt>
--   
--   The length of <tt>uniformIndices</tt> should be <tt>uniformCount</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(uniformCount,pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml</a>
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetAttachedShaders</a> program maxCount count
--   shaders</tt>
--   
--   The length of <tt>count</tt> should be <tt>1</tt>.
--   
--   The length of <tt>shaders</tt> should be <tt>maxCount</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml</a>
glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetAttribLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml</a>
glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetBooleani_v</a> target index data</tt>
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetBooleanv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetBufferParameteri64v</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetBufferParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetBufferPointerv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPointerNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetBufferPointerv.xhtml</a>
glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetBufferSubData</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetBufferSubData.xhtml</a>
glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glGetCompressedTexImage</a> target level img</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>img</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>img</tt> should be <tt>COMPSIZE(target,level)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetCompressedTexImage.xhtml</a>
glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()

-- | Usage: <tt><a>glGetDoublev</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetError</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml</a>
glGetError :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetFloatv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFragDataLocation</a> program name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetFragDataLocation.xhtml</a>
glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetFramebufferAttachmentParameteriv</a> target
--   attachment pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetInteger64i_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetInteger64v</a> pname data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetIntegeri_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetIntegerv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMultisamplefv</a> pname index val</tt>
--   
--   The length of <tt>val</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetProgramInfoLog</a> program bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramInfoLog.xhtml</a>
glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramiv</a> program pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetQueryObjectiv</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetQueryObjectuiv</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetQueryiv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetQueryiv.xhtml</a>
glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetRenderbufferParameteriv</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetShaderInfoLog</a> shader bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderInfoLog.xhtml</a>
glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetShaderSource</a> shader bufSize length source</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>source</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml</a>
glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetShaderiv</a> shader pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetString</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>StringName</tt>, one of:
--   <a>GL_EXTENSIONS</a>, <a>GL_RENDERER</a>, <a>GL_VENDOR</a>,
--   <a>GL_VERSION</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml</a>
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Usage: <tt><a>glGetStringi</a> name index</tt>
glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)

-- | Usage: <tt><a>glGetSynciv</a> sync pname bufSize length values</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexImage</a> target level format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(target,level,format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTexImage.xhtml</a>
glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetTexLevelParameterfv</a> target level pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexLevelParameteriv</a> target level pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexParameterIiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexParameterIuiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTransformFeedbackVarying</a> program index bufSize
--   length size type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTransformFeedbackVarying.xhtml</a>
glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetUniformBlockIndex</a> program uniformBlockName</tt>
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>COMPSIZE()</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml</a>
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetUniformIndices</a> program uniformCount
--   uniformNames uniformIndices</tt>
--   
--   The length of <tt>uniformNames</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   The length of <tt>uniformIndices</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml</a>
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetUniformLocation</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml</a>
glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetUniformfv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetUniformiv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetUniformuiv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetVertexAttribIiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexAttribIuiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetVertexAttribPointerv</a> index pname pointer</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexAttribPointerPropertyARB</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml</a>
glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetVertexAttribdv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetVertexAttribfv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVertexAttribiv</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glHint</a> target mode</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HintTarget</tt>, one of:
--   <a>GL_ALLOW_DRAW_FRG_HINT_PGI</a>, <a>GL_ALLOW_DRAW_MEM_HINT_PGI</a>,
--   <a>GL_ALLOW_DRAW_OBJ_HINT_PGI</a>, <a>GL_ALLOW_DRAW_WIN_HINT_PGI</a>,
--   <a>GL_ALWAYS_FAST_HINT_PGI</a>, <a>GL_ALWAYS_SOFT_HINT_PGI</a>,
--   <a>GL_BACK_NORMALS_HINT_PGI</a>, <a>GL_BINNING_CONTROL_HINT_QCOM</a>,
--   <a>GL_CLIP_FAR_HINT_PGI</a>, <a>GL_CLIP_NEAR_HINT_PGI</a>,
--   <a>GL_CLIP_VOLUME_CLIPPING_HINT_EXT</a>,
--   <a>GL_CONSERVE_MEMORY_HINT_PGI</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_FOG_HINT</a>, <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES</a>,
--   <a>GL_FULL_STIPPLE_HINT_PGI</a>, <a>GL_GENERATE_MIPMAP_HINT</a>,
--   <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <tt>GL_LINE_QUALITY_HINT_SGIX</tt>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_MATERIAL_SIDE_HINT_PGI</a>, <a>GL_MAX_VERTEX_HINT_PGI</a>,
--   <a>GL_MULTISAMPLE_FILTER_HINT_NV</a>,
--   <a>GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI</a>,
--   <a>GL_NATIVE_GRAPHICS_END_HINT_PGI</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PERSPECTIVE_CORRECTION_HINT</a>, <a>GL_PHONG_HINT_WIN</a>,
--   <a>GL_POINT_SMOOTH_HINT</a>, <a>GL_POLYGON_SMOOTH_HINT</a>,
--   <a>GL_PREFER_DOUBLEBUFFER_HINT_PGI</a>,
--   <a>GL_PROGRAM_BINARY_RETRIEVABLE_HINT</a>,
--   <a>GL_RECLAIM_MEMORY_HINT_PGI</a>, <a>GL_SCALEBIAS_HINT_SGIX</a>,
--   <a>GL_STRICT_DEPTHFUNC_HINT_PGI</a>,
--   <a>GL_STRICT_LIGHTING_HINT_PGI</a>, <a>GL_STRICT_SCISSOR_HINT_PGI</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT_ARB</a>,
--   <a>GL_TEXTURE_MULTI_BUFFER_HINT_SGIX</a>,
--   <a>GL_TEXTURE_STORAGE_HINT_APPLE</a>, <a>GL_TRANSFORM_HINT_APPLE</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_STORAGE_HINT_APPLE</a>,
--   <a>GL_VERTEX_CONSISTENT_HINT_PGI</a>, <a>GL_VERTEX_DATA_HINT_PGI</a>,
--   <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>, <a>GL_VERTEX_PRECLIP_SGIX</a>,
--   <a>GL_WIDE_LINE_HINT_PGI</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>HintMode</tt>, one of:
--   <a>GL_DONT_CARE</a>, <a>GL_FASTEST</a>, <a>GL_NICEST</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glHint.xhtml</a>
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glIsBuffer</a> buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml</a>
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsEnabled</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml</a>
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Usage: <tt><a>glIsEnabledi</a> target index</tt>
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Usage: <tt><a>glIsFramebuffer</a> framebuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml</a>
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsProgram.xhtml</a>
glIsProgram :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsQuery</a> id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsQuery.xhtml</a>
glIsQuery :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsRenderbuffer</a> renderbuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml</a>
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsShader</a> shader</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsShader.xhtml</a>
glIsShader :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsSync</a> sync</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsSync.xhtml</a>
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Usage: <tt><a>glIsTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml</a>
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml</a>
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glLineWidth</a> width</tt>
--   
--   The parameter <tt>width</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml</a>
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glLinkProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml</a>
glLinkProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glLogicOp</a> opcode</tt>
--   
--   The parameter <tt>opcode</tt> is a <tt>LogicOp</tt>, one of:
--   <a>GL_AND</a>, <a>GL_AND_INVERTED</a>, <a>GL_AND_REVERSE</a>,
--   <a>GL_CLEAR</a>, <a>GL_COPY</a>, <a>GL_COPY_INVERTED</a>,
--   <a>GL_EQUIV</a>, <a>GL_INVERT</a>, <a>GL_NAND</a>, <a>GL_NOOP</a>,
--   <a>GL_NOR</a>, <a>GL_OR</a>, <a>GL_OR_INVERTED</a>,
--   <a>GL_OR_REVERSE</a>, <a>GL_SET</a>, <a>GL_XOR</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLogicOp.xhtml</a>
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMapBuffer</a> target access</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMapBuffer.xhtml</a>
glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())

-- | Usage: <tt><a>glMapBufferRange</a> target offset length access</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessMask</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml</a>
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())

-- | Usage: <tt><a>glMultiDrawArrays</a> mode first count drawcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>first</tt> should be <tt>COMPSIZE(count)</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawArrays.xhtml</a>
glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawElements</a> mode count type indices
--   drawcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawElements.xhtml</a>
glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawElementsBaseVertex</a> mode count type
--   indices drawcount basevertex</tt>
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>basevertex</tt> should be
--   <tt>COMPSIZE(drawcount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsBaseVertex.xhtml</a>
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glPixelStoref</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelStoreParameter</tt>, one
--   of: <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_PACK_IMAGE_HEIGHT</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_OML</a>,
--   <a>GL_PACK_RESAMPLE_SGIX</a>, <a>GL_PACK_ROW_LENGTH</a>,
--   <a>GL_PACK_SKIP_IMAGES</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_UNPACK_ALIGNMENT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT</a>, <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_UNPACK_LSB_FIRST</a>, <a>GL_UNPACK_RESAMPLE_OML</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_ROW_LENGTH_EXT</a>, <a>GL_UNPACK_SKIP_IMAGES</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_PIXELS_EXT</a>, <a>GL_UNPACK_SKIP_ROWS</a>,
--   <a>GL_UNPACK_SKIP_ROWS_EXT</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPixelStorei</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelStoreParameter</tt>, one
--   of: <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_PACK_IMAGE_HEIGHT</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_OML</a>,
--   <a>GL_PACK_RESAMPLE_SGIX</a>, <a>GL_PACK_ROW_LENGTH</a>,
--   <a>GL_PACK_SKIP_IMAGES</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_UNPACK_ALIGNMENT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT</a>, <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_UNPACK_LSB_FIRST</a>, <a>GL_UNPACK_RESAMPLE_OML</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_ROW_LENGTH_EXT</a>, <a>GL_UNPACK_SKIP_IMAGES</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_PIXELS_EXT</a>, <a>GL_UNPACK_SKIP_ROWS</a>,
--   <a>GL_UNPACK_SKIP_ROWS_EXT</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPointParameterf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPointParameterfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPointParameteri</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPointParameteriv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glPointSize</a> size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPointSize.xhtml</a>
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glPolygonMode</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>PolygonMode</tt>, one of:
--   <a>GL_FILL</a>, <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPolygonMode.xhtml</a>
glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glPolygonOffset</a> factor units</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml</a>
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glPrimitiveRestartIndex</a> index</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPrimitiveRestartIndex.xhtml</a>
glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glProvokingVertex</a> mode</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glProvokingVertex.xhtml</a>
glProvokingVertex :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glReadBuffer</a> src</tt>
--   
--   The parameter <tt>src</tt> is a <tt>ReadBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_LEFT</a>, <a>GL_FRONT_RIGHT</a>,
--   <a>GL_LEFT</a>, <a>GL_RIGHT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReadBuffer.xhtml</a>
glReadBuffer :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glReadPixels</a> x y width height format type
--   pixels</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml</a>
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glRenderbufferStorage</a> target internalformat width
--   height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml</a>
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glRenderbufferStorageMultisample</a> target samples
--   internalformat width height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml</a>
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glSampleCoverage</a> value invert</tt>
--   
--   The parameter <tt>invert</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml</a>
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Usage: <tt><a>glSampleMaski</a> maskNumber mask</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleMaski.xhtml</a>
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Usage: <tt><a>glScissor</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml</a>
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glShaderSource</a> shader count string length</tt>
--   
--   The length of <tt>string</tt> should be <tt>count</tt>.
--   
--   The length of <tt>length</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderSource.xhtml</a>
glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Usage: <tt><a>glStencilFunc</a> func ref mask</tt>
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml</a>
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilFuncSeparate</a> face func ref mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml</a>
glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilMask</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml</a>
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glStencilMaskSeparate</a> face mask</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml</a>
glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glStencilOp</a> fail zfail zpass</tt>
--   
--   The parameter <tt>fail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zpass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml</a>
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glStencilOpSeparate</a> face sfail dpfail dppass</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>sfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dpfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dppass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml</a>
glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glTexBuffer</a> target internalformat buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexBuffer.xhtml</a>
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexImage1D</a> target level internalformat width
--   border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage1D.xhtml</a>
glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexImage2D</a> target level internalformat width
--   height border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml</a>
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexImage2DMultisample</a> target samples
--   internalformat width height fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage2DMultisample.xhtml</a>
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTexImage3D</a> target level internalformat width
--   height depth border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage3D.xhtml</a>
glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexImage3DMultisample</a> target samples
--   internalformat width height depth fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage3DMultisample.xhtml</a>
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTexParameterIiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexParameterIuiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexParameterf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexParameteri</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexSubImage1D</a> target level xoffset width format
--   type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage1D.xhtml</a>
glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexSubImage2D</a> target level xoffset yoffset width
--   height format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml</a>
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexSubImage3D</a> target level xoffset yoffset zoffset
--   width height depth format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage3D.xhtml</a>
glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTransformFeedbackVaryings</a> program count varyings
--   bufferMode</tt>
--   
--   The length of <tt>varyings</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackVaryings.xhtml</a>
glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

-- | Usage: <tt><a>glUniform1f</a> location v0</tt>
glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform1fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform1i</a> location v0</tt>
glUniform1i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform1iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform1ui</a> location v0</tt>
glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform1uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform2f</a> location v0 v1</tt>
glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform2fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform2i</a> location v0 v1</tt>
glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform2iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform2ui</a> location v0 v1</tt>
glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform2uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform3f</a> location v0 v1 v2</tt>
glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform3fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform3i</a> location v0 v1 v2</tt>
glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform3iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform3ui</a> location v0 v1 v2</tt>
glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform3uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform4f</a> location v0 v1 v2 v3</tt>
glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform4fv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform4i</a> location v0 v1 v2 v3</tt>
glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform4iv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform4ui</a> location v0 v1 v2 v3</tt>
glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform4uiv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniformBlockBinding</a> program uniformBlockIndex
--   uniformBlockBinding</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml</a>
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniformMatrix2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix2x3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix2x4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3x2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3x4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4x2fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4x3fv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUnmapBuffer</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUnmapBuffer.xhtml</a>
glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean

-- | Usage: <tt><a>glUseProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml</a>
glUseProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glValidateProgram</a> program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glValidateProgram.xhtml</a>
glValidateProgram :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib1d</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1dv</a>.
glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1f</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1fv</a>.
glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1s</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib1sv</a>.
glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib1sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2d</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2dv</a>.
glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2f</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2fv</a>.
glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2s</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib2sv</a>.
glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3d</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3dv</a>.
glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3f</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3fv</a>.
glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3s</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib3sv</a>.
glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nbv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4Niv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nsv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nub</a> index x y z w</tt>
glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nubv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nuiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib4Nusv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttrib4bv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4d</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4dv</a>.
glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4f</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4fv</a>.
glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4fv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttrib4s</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttrib4sv</a>.
glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4ubv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib4usv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttribI1i</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI1iv</a>.
glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI1iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI1ui</a> index x</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI1uiv</a>.
glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI1uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI2i</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI2iv</a>.
glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI2iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI2ui</a> index x y</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI2uiv</a>.
glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI2uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI3i</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI3iv</a>.
glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI3iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI3ui</a> index x y z</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI3uiv</a>.
glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI3uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4bv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttribI4i</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI4iv</a>.
glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI4iv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI4sv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttribI4ubv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttribI4ui</a> index x y z w</tt>
--   
--   The vector equivalent of this command is <a>glVertexAttribI4uiv</a>.
glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4uiv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4usv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttribIPointer</a> index size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glVertexAttribPointer</a> index size type normalized
--   stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml</a>
glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glViewport</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml</a>
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glWaitSync</a> sync flags timeout</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glWaitSync.xhtml</a>
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

module Graphics.GL.Core33

-- | Usage: <tt><a>glBindFragDataLocationIndexed</a> program colorNumber
--   index name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocationIndexed.xhtml</a>
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glBindSampler</a> unit sampler</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindSampler.xhtml</a>
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteSamplers</a> count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteSamplers.xhtml</a>
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenSamplers</a> count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenSamplers.xhtml</a>
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetFragDataIndex</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetFragDataIndex.xhtml</a>
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetQueryObjecti64v</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetQueryObjectui64v</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glGetSamplerParameterIiv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSamplerParameterIuiv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetSamplerParameterfv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetSamplerParameteriv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsSampler</a> sampler</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsSampler.xhtml</a>
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glQueryCounter</a> id target</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glQueryCounter.xhtml</a>
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glSamplerParameterIiv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glSamplerParameterIuiv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glSamplerParameterf</a> sampler pname param</tt>
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glSamplerParameterfv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSamplerParameteri</a> sampler pname param</tt>
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glSamplerParameteriv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribDivisor</a> index divisor</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribDivisor.xhtml</a>
glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP1ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP1uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP2ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP2uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP3ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP3uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP4ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP4uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

module Graphics.GL.Core40

-- | Usage: <tt><a>glBeginQueryIndexed</a> target index id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginQueryIndexed.xhtml</a>
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindTransformFeedback</a> target id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTransformFeedback.xhtml</a>
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBlendEquationSeparatei</a> buf modeRGB modeAlpha</tt>
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendEquationi</a> buf mode</tt>
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparatei</a> buf srcRGB dstRGB srcAlpha
--   dstAlpha</tt>
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFunci</a> buf src dst</tt>
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glDeleteTransformFeedbacks</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteTransformFeedbacks.xhtml</a>
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDrawArraysIndirect</a> mode indirect</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysIndirect.xhtml</a>
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glDrawElementsIndirect</a> mode type indirect</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsIndirect.xhtml</a>
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glDrawTransformFeedback</a> mode id</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedback.xhtml</a>
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDrawTransformFeedbackStream</a> mode id stream</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStream.xhtml</a>
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glEndQueryIndexed</a> target index</tt>
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glGenTransformFeedbacks</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTransformFeedbacks.xhtml</a>
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetActiveSubroutineName</a> program shadertype index
--   bufsize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufsize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineName.xhtml</a>
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveSubroutineUniformName</a> program shadertype
--   index bufsize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufsize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineUniformName.xhtml</a>
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveSubroutineUniformiv</a> program shadertype
--   index pname values</tt>
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramStageiv</a> program shadertype pname
--   values</tt>
--   
--   The length of <tt>values</tt> should be <tt>1</tt>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetQueryIndexediv</a> target index pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSubroutineIndex</a> program shadertype name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetSubroutineIndex.xhtml</a>
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetSubroutineUniformLocation</a> program shadertype
--   name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetSubroutineUniformLocation.xhtml</a>
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetUniformSubroutineuiv</a> shadertype location
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetUniformdv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glIsTransformFeedback</a> id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsTransformFeedback.xhtml</a>
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glMinSampleShading</a> value</tt>
--   
--   The parameter <tt>value</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMinSampleShading.xhtml</a>
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glPatchParameterfv</a> pname values</tt>
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(pname)</tt>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPatchParameteri</a> pname value</tt>
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPauseTransformFeedback</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPauseTransformFeedback.xhtml</a>
glPauseTransformFeedback :: MonadIO m => m ()

-- | Usage: <tt><a>glResumeTransformFeedback</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glResumeTransformFeedback.xhtml</a>
glResumeTransformFeedback :: MonadIO m => m ()

-- | Usage: <tt><a>glUniform1d</a> location x</tt>
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()

-- | Usage: <tt><a>glUniform1dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniform2d</a> location x y</tt>
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glUniform2dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniform3d</a> location x y z</tt>
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glUniform3dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniform4d</a> location x y z w</tt>
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glUniform4dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix2dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix2x3dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix2x4dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix3dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix3x2dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix3x4dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix4dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix4x2dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix4x3dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformSubroutinesuiv</a> shadertype count
--   indices</tt>
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

module Graphics.GL.Core41

-- | Usage: <tt><a>glActiveShaderProgram</a> pipeline program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveShaderProgram.xhtml</a>
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindProgramPipeline.xhtml</a>
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glClearDepthf</a> d</tt>
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glCreateShaderProgramv</a> type count strings</tt>
--   
--   The length of <tt>strings</tt> should be <tt>count</tt>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Usage: <tt><a>glDeleteProgramPipelines</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteProgramPipelines.xhtml</a>
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDepthRangeArrayv</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glDepthRangeIndexed</a> index n f</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthRangeIndexed.xhtml</a>
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glDepthRangef</a> n f</tt>
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glGenProgramPipelines</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenProgramPipelines.xhtml</a>
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetDoublei_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetFloati_v</a> target index data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetProgramBinary</a> program bufSize length
--   binaryFormat binary</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binaryFormat</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binary</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramBinary.xhtml</a>
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetProgramPipelineInfoLog</a> pipeline bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramPipelineInfoLog.xhtml</a>
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramPipelineiv</a> pipeline pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetShaderPrecisionFormat</a> shadertype precisiontype
--   range precision</tt>
--   
--   The length of <tt>range</tt> should be <tt>2</tt>.
--   
--   The length of <tt>precision</tt> should be <tt>2</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderPrecisionFormat.xhtml</a>
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexAttribLdv</a> index pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glIsProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsProgramPipeline.xhtml</a>
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glProgramBinary</a> program binaryFormat binary
--   length</tt>
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml</a>
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glProgramParameteri</a> program pname value</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramParameterPName</tt>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1d</a> program location v0</tt>
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform1dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform1f</a> program location v0</tt>
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1i</a> program location v0</tt>
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1ui</a> program location v0</tt>
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform1uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2d</a> program location v0 v1</tt>
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform2dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform2f</a> program location v0 v1</tt>
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2i</a> program location v0 v1</tt>
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2ui</a> program location v0 v1</tt>
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3d</a> program location v0 v1 v2</tt>
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform3dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform3f</a> program location v0 v1 v2</tt>
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3i</a> program location v0 v1 v2</tt>
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3ui</a> program location v0 v1 v2</tt>
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4d</a> program location v0 v1 v2 v3</tt>
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform4dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform4f</a> program location v0 v1 v2 v3</tt>
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4i</a> program location v0 v1 v2 v3</tt>
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4ui</a> program location v0 v1 v2
--   v3</tt>
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x3dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x4dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x2dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x4dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x2dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x3dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glReleaseShaderCompiler</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReleaseShaderCompiler.xhtml</a>
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Usage: <tt><a>glScissorArrayv</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glScissorIndexed</a> index left bottom width height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glScissorIndexed.xhtml</a>
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glScissorIndexedv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glShaderBinary</a> count shaders binaryformat binary
--   length</tt>
--   
--   The length of <tt>shaders</tt> should be <tt>count</tt>.
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderBinary.xhtml</a>
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glUseProgramStages</a> pipeline stages program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUseProgramStages.xhtml</a>
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Usage: <tt><a>glValidateProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glValidateProgramPipeline.xhtml</a>
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribL1d</a> index x</tt>
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL1dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL2d</a> index x y</tt>
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL2dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL3d</a> index x y z</tt>
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL3dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL4d</a> index x y z w</tt>
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL4dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribLPointer</a> index size type stride
--   pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>size</tt>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glViewportArrayv</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glViewportIndexedf</a> index x y w h</tt>
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glViewportIndexedfv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

module Graphics.GL.Core42

-- | Usage: <tt><a>glBindImageTexture</a> unit texture level layered layer
--   access format</tt>
--   
--   The parameter <tt>layered</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindImageTexture.xhtml</a>
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glDrawArraysInstancedBaseInstance</a> mode first count
--   instancecount baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstancedBaseInstance.xhtml</a>
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseInstance</a> mode count type
--   indices instancecount baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseInstance.xhtml</a>
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertexBaseInstance</a> mode
--   count type indices instancecount basevertex baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml</a>
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glDrawTransformFeedbackInstanced</a> mode id
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackInstanced.xhtml</a>
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawTransformFeedbackStreamInstanced</a> mode id
--   stream instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStreamInstanced.xhtml</a>
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Usage: <tt><a>glGetActiveAtomicCounterBufferiv</a> program bufferIndex
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveAtomicCounterBufferiv.xhtml</a>
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetInternalformativ</a> target internalformat pname
--   bufSize params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMemoryBarrier</a> barriers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMemoryBarrier.xhtml</a>
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glTexStorage1D</a> target levels internalformat
--   width</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage1D.xhtml</a>
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glTexStorage2D</a> target levels internalformat width
--   height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml</a>
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTexStorage3D</a> target levels internalformat width
--   height depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage3D.xhtml</a>
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Core43

-- | Usage: <tt><a>glBindVertexBuffer</a> bindingindex buffer offset
--   stride</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffer.xhtml</a>
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Usage: <tt><a>glClearBufferData</a> target internalformat format type
--   data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearBufferData.xhtml</a>
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearBufferSubData</a> target internalformat offset
--   size format type data</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearBufferSubData.xhtml</a>
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyImageSubData</a> srcName srcTarget srcLevel srcX
--   srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight
--   srcDepth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyImageSubData.xhtml</a>
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDebugMessageCallback</a> callback userParam</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageCallback.xhtml</a>
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()

-- | Usage: <tt><a>glDebugMessageControl</a> source type severity count ids
--   enabled</tt>
--   
--   The parameter <tt>enabled</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageControl.xhtml</a>
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Usage: <tt><a>glDebugMessageInsert</a> source type id severity length
--   buf</tt>
--   
--   The length of <tt>buf</tt> should be <tt>COMPSIZE(buf,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageInsert.xhtml</a>
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glDispatchCompute</a> num_groups_x num_groups_y
--   num_groups_z</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDispatchCompute.xhtml</a>
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDispatchComputeIndirect</a> indirect</tt>
--   
--   The parameter <tt>indirect</tt> is a <tt>BufferOffset</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDispatchComputeIndirect.xhtml</a>
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

-- | Usage: <tt><a>glFramebufferParameteri</a> target pname param</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferParameteri.xhtml</a>
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glGetDebugMessageLog</a> count bufSize sources types ids
--   severities lengths messageLog</tt>
--   
--   The length of <tt>sources</tt> should be <tt>count</tt>.
--   
--   The length of <tt>types</tt> should be <tt>count</tt>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   The length of <tt>severities</tt> should be <tt>count</tt>.
--   
--   The length of <tt>lengths</tt> should be <tt>count</tt>.
--   
--   The length of <tt>messageLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetDebugMessageLog.xhtml</a>
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetFramebufferParameteriv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetInternalformati64v</a> target internalformat pname
--   bufSize params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetObjectLabel</a> identifier name bufSize length
--   label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetObjectLabel.xhtml</a>
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetObjectPtrLabel</a> ptr bufSize length label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetObjectPtrLabel.xhtml</a>
glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetPointerv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPointervPName</tt>, one of:
--   <a>GL_COLOR_ARRAY_POINTER</a>, <a>GL_COLOR_ARRAY_POINTER_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER_EXT</a>,
--   <a>GL_FEEDBACK_BUFFER_POINTER</a>, <a>GL_INDEX_ARRAY_POINTER</a>,
--   <a>GL_INDEX_ARRAY_POINTER_EXT</a>,
--   <a>GL_INSTRUMENT_BUFFER_POINTER_SGIX</a>,
--   <a>GL_NORMAL_ARRAY_POINTER</a>, <a>GL_NORMAL_ARRAY_POINTER_EXT</a>,
--   <a>GL_SELECTION_BUFFER_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER_EXT</a>,
--   <a>GL_VERTEX_ARRAY_POINTER</a>, <a>GL_VERTEX_ARRAY_POINTER_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml</a>
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetProgramInterfaceiv</a> program programInterface
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramResourceIndex</a> program programInterface
--   name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceIndex.xhtml</a>
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetProgramResourceLocation</a> program
--   programInterface name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocation.xhtml</a>
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetProgramResourceLocationIndex</a> program
--   programInterface name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocationIndex.xhtml</a>
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetProgramResourceName</a> program programInterface
--   index bufSize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceName.xhtml</a>
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramResourceiv</a> program programInterface
--   index propCount props bufSize length params</tt>
--   
--   The length of <tt>props</tt> should be <tt>propCount</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glInvalidateBufferData</a> buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferData.xhtml</a>
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glInvalidateBufferSubData</a> buffer offset length</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferSubData.xhtml</a>
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glInvalidateFramebuffer</a> target numAttachments
--   attachments</tt>
--   
--   The length of <tt>attachments</tt> should be <tt>numAttachments</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateFramebuffer.xhtml</a>
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glInvalidateSubFramebuffer</a> target numAttachments
--   attachments x y width height</tt>
--   
--   The length of <tt>attachments</tt> should be <tt>numAttachments</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateSubFramebuffer.xhtml</a>
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glInvalidateTexImage</a> texture level</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateTexImage.xhtml</a>
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Usage: <tt><a>glInvalidateTexSubImage</a> texture level xoffset
--   yoffset zoffset width height depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateTexSubImage.xhtml</a>
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawArraysIndirect</a> mode indirect drawcount
--   stride</tt>
--   
--   The length of <tt>indirect</tt> should be
--   <tt>COMPSIZE(drawcount,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawArraysIndirect.xhtml</a>
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawElementsIndirect</a> mode type indirect
--   drawcount stride</tt>
--   
--   The length of <tt>indirect</tt> should be
--   <tt>COMPSIZE(drawcount,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsIndirect.xhtml</a>
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glObjectLabel</a> identifier name length label</tt>
--   
--   The length of <tt>label</tt> should be
--   <tt>COMPSIZE(label,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glObjectLabel.xhtml</a>
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glObjectPtrLabel</a> ptr length label</tt>
--   
--   The length of <tt>label</tt> should be
--   <tt>COMPSIZE(label,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glObjectPtrLabel.xhtml</a>
glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glPopDebugGroup</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPopDebugGroup.xhtml</a>
glPopDebugGroup :: MonadIO m => m ()

-- | Usage: <tt><a>glPushDebugGroup</a> source id length message</tt>
--   
--   The length of <tt>message</tt> should be
--   <tt>COMPSIZE(message,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPushDebugGroup.xhtml</a>
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glShaderStorageBlockBinding</a> program
--   storageBlockIndex storageBlockBinding</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderStorageBlockBinding.xhtml</a>
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glTexBufferRange</a> target internalformat buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexBufferRange.xhtml</a>
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glTexStorage2DMultisample</a> target samples
--   internalformat width height fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage2DMultisample.xhtml</a>
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTexStorage3DMultisample</a> target samples
--   internalformat width height depth fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage3DMultisample.xhtml</a>
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureView</a> texture target origtexture
--   internalformat minlevel numlevels minlayer numlayers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTextureView.xhtml</a>
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribBinding</a> attribindex bindingindex</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribBinding.xhtml</a>
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribFormat</a> attribindex size type
--   normalized relativeoffset</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribFormat.xhtml</a>
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribIFormat</a> attribindex size type
--   relativeoffset</tt>
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribLFormat</a> attribindex size type
--   relativeoffset</tt>
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexBindingDivisor</a> bindingindex divisor</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexBindingDivisor.xhtml</a>
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()

module Graphics.GL.Core44

-- | Usage: <tt><a>glBindBuffersBase</a> target first count buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffersBase.xhtml</a>
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glBindBuffersRange</a> target first count buffers
--   offsets sizes</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>count</tt>.
--   
--   The length of <tt>offsets</tt> should be <tt>count</tt>.
--   
--   The length of <tt>sizes</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffersRange.xhtml</a>
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Usage: <tt><a>glBindImageTextures</a> first count textures</tt>
--   
--   The length of <tt>textures</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindImageTextures.xhtml</a>
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glBindSamplers</a> first count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindSamplers.xhtml</a>
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glBindTextures</a> first count textures</tt>
--   
--   The length of <tt>textures</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTextures.xhtml</a>
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glBindVertexBuffers</a> first count buffers offsets
--   strides</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>count</tt>.
--   
--   The length of <tt>offsets</tt> should be <tt>count</tt>.
--   
--   The length of <tt>strides</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffers.xhtml</a>
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

-- | Usage: <tt><a>glBufferStorage</a> target size data flags</tt>
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferStorage.xhtml</a>
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()

-- | Usage: <tt><a>glClearTexImage</a> texture level format type data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearTexImage.xhtml</a>
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearTexSubImage</a> texture level xoffset yoffset
--   zoffset width height depth format type data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearTexSubImage.xhtml</a>
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Compatibility32

-- | Usage: <tt><a>glAccum</a> op value</tt>
--   
--   The parameter <tt>op</tt> is a <tt>AccumOp</tt>, one of:
--   <a>GL_ACCUM</a>, <a>GL_LOAD</a>, <a>GL_RETURN</a>, <a>GL_MULT</a>,
--   <a>GL_ADD</a>.
--   
--   The parameter <tt>value</tt> is a <tt>CoordF</tt>.
glAccum :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glAlphaFunc</a> func ref</tt>
--   
--   The parameter <tt>func</tt> is a <tt>AlphaFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glAreTexturesResident</a> n textures residences</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>residences</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   The length of <tt>residences</tt> should be <tt>n</tt>.
glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Usage: <tt><a>glArrayElement</a> i</tt>
glArrayElement :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glBegin</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
glBegin :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBitmap</a> width height xorig yorig xmove ymove
--   bitmap</tt>
--   
--   The parameter <tt>xorig</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>yorig</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>xmove</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>ymove</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>bitmap</tt> should be
--   <tt>COMPSIZE(width,height)</tt>.
glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glCallList</a> list</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
glCallList :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCallLists</a> n type lists</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ListNameType</tt>, one of:
--   <a>GL_2_BYTES</a>, <a>GL_3_BYTES</a>, <a>GL_4_BYTES</a>,
--   <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>,
--   <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>lists</tt> should be <tt>COMPSIZE(n,type)</tt>.
glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearAccum</a> red green blue alpha</tt>
glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glClearIndex</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>MaskedColorIndexValueF</tt>.
glClearIndex :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glClientActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glClipPlane</a> plane equation</tt>
--   
--   The parameter <tt>plane</tt> is a <tt>ClipPlaneName</tt>, one of:
--   <a>GL_CLIP_DISTANCE0</a>, <a>GL_CLIP_DISTANCE1</a>,
--   <a>GL_CLIP_DISTANCE2</a>, <a>GL_CLIP_DISTANCE3</a>,
--   <a>GL_CLIP_DISTANCE4</a>, <a>GL_CLIP_DISTANCE5</a>,
--   <a>GL_CLIP_DISTANCE6</a>, <a>GL_CLIP_DISTANCE7</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>.
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glColor3b</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   The vector equivalent of this command is <a>glColor3bv</a>.
glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glColor3bv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glColor3d</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   The vector equivalent of this command is <a>glColor3dv</a>.
glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glColor3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glColor3f</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glColor3fv</a>.
glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glColor3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColor3i</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   The vector equivalent of this command is <a>glColor3iv</a>.
glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glColor3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glColor3s</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   The vector equivalent of this command is <a>glColor3sv</a>.
glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glColor3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glColor3ub</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glColor3ubv</a>.
glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glColor3ubv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glColor3ui</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   The vector equivalent of this command is <a>glColor3uiv</a>.
glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glColor3uiv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Usage: <tt><a>glColor3us</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   The vector equivalent of this command is <a>glColor3usv</a>.
glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Usage: <tt><a>glColor3usv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Usage: <tt><a>glColor4b</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorB</tt>.
--   
--   The vector equivalent of this command is <a>glColor4bv</a>.
glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glColor4bv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glColor4d</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorD</tt>.
--   
--   The vector equivalent of this command is <a>glColor4dv</a>.
glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glColor4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glColor4f</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glColor4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColor4i</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorI</tt>.
--   
--   The vector equivalent of this command is <a>glColor4iv</a>.
glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glColor4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glColor4s</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorS</tt>.
--   
--   The vector equivalent of this command is <a>glColor4sv</a>.
glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glColor4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glColor4ub</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glColor4ubv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glColor4ui</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUI</tt>.
--   
--   The vector equivalent of this command is <a>glColor4uiv</a>.
glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glColor4uiv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Usage: <tt><a>glColor4us</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUS</tt>.
--   
--   The vector equivalent of this command is <a>glColor4usv</a>.
glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()

-- | Usage: <tt><a>glColor4usv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4usv :: MonadIO m => Ptr GLushort -> m ()

-- | Usage: <tt><a>glColorMaterial</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>ColorMaterialParameter</tt>, one
--   of: <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>, <a>GL_SPECULAR</a>.
glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glColorPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyPixels</a> x y width height type</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelCopyType</tt>, one of:
--   <a>GL_COLOR</a>, <a>GL_COLOR_EXT</a>, <a>GL_DEPTH</a>,
--   <a>GL_DEPTH_EXT</a>, <a>GL_STENCIL</a>, <a>GL_STENCIL_EXT</a>.
glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()

-- | Usage: <tt><a>glDeleteLists</a> list range</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Usage: <tt><a>glDisableClientState</a> array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDrawPixels</a> width height format type pixels</tt>
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glEdgeFlag</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The vector equivalent of this command is <a>glEdgeFlagv</a>.
glEdgeFlag :: MonadIO m => GLboolean -> m ()

-- | Usage: <tt><a>glEdgeFlagPointer</a> stride pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>COMPSIZE(stride)</tt>.
glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glEdgeFlagv</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>flag</tt> should be <tt>1</tt>.
glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()

-- | Usage: <tt><a>glEnableClientState</a> array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glEnd</a></tt>
glEnd :: MonadIO m => m ()

-- | Usage: <tt><a>glEndList</a></tt>
glEndList :: MonadIO m => m ()

-- | Usage: <tt><a>glEvalCoord1d</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord1dv</a>.
glEvalCoord1d :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glEvalCoord1dv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>u</tt> should be <tt>1</tt>.
glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glEvalCoord1f</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord1fv</a>.
glEvalCoord1f :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glEvalCoord1fv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>u</tt> should be <tt>1</tt>.
glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glEvalCoord2d</a> u v</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord2dv</a>.
glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glEvalCoord2dv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>u</tt> should be <tt>2</tt>.
glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glEvalCoord2f</a> u v</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glEvalCoord2fv</a>.
glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glEvalCoord2fv</a> u</tt>
--   
--   The parameter <tt>u</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>u</tt> should be <tt>2</tt>.
glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glEvalMesh1</a> mode i1 i2</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MeshMode1</tt>, one of:
--   <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   The parameter <tt>i1</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>i2</tt> is a <tt>CheckedInt32</tt>.
glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glEvalMesh2</a> mode i1 i2 j1 j2</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MeshMode2</tt>, one of:
--   <a>GL_FILL</a>, <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   The parameter <tt>i1</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>i2</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>j1</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>j2</tt> is a <tt>CheckedInt32</tt>.
glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glEvalPoint1</a> i</tt>
glEvalPoint1 :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glEvalPoint2</a> i j</tt>
--   
--   The parameter <tt>i</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>j</tt> is a <tt>CheckedInt32</tt>.
glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glFeedbackBuffer</a> size type buffer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>FeedbackType</tt>, one of:
--   <a>GL_2D</a>, <a>GL_3D</a>, <a>GL_3D_COLOR</a>,
--   <a>GL_3D_COLOR_TEXTURE</a>, <a>GL_4D_COLOR_TEXTURE</a>.
--   
--   The parameter <tt>buffer</tt> is a <tt>FeedbackElement</tt>.
--   
--   The length of <tt>buffer</tt> should be <tt>size</tt>.
glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glFogCoordPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>FogPointerTypeEXT</tt>, one of:
--   <a>GL_FLOAT</a>, <a>GL_DOUBLE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glFogCoordd</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glFogCoorddv</a>.
glFogCoordd :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glFogCoorddv</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>coord</tt> should be <tt>1</tt>.
glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glFogCoordf</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glFogCoordfv</a>.
glFogCoordf :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glFogCoordfv</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>coord</tt> should be <tt>1</tt>.
glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glFogf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glFogfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glFogi</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glFogi :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glFogiv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glFrustum</a> left right bottom top zNear zFar</tt>
glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glGenLists</a> range</tt>
glGenLists :: MonadIO m => GLsizei -> m GLuint

-- | Usage: <tt><a>glGetClipPlane</a> plane equation</tt>
--   
--   The parameter <tt>plane</tt> is a <tt>ClipPlaneName</tt>, one of:
--   <a>GL_CLIP_DISTANCE0</a>, <a>GL_CLIP_DISTANCE1</a>,
--   <a>GL_CLIP_DISTANCE2</a>, <a>GL_CLIP_DISTANCE3</a>,
--   <a>GL_CLIP_DISTANCE4</a>, <a>GL_CLIP_DISTANCE5</a>,
--   <a>GL_CLIP_DISTANCE6</a>, <a>GL_CLIP_DISTANCE7</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>.
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetLightfv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetLightiv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMapdv</a> target query v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>query</tt> is a <tt>GetMapQuery</tt>, one of:
--   <a>GL_COEFF</a>, <a>GL_DOMAIN</a>, <a>GL_ORDER</a>.
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(target,query)</tt>.
glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetMapfv</a> target query v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>query</tt> is a <tt>GetMapQuery</tt>, one of:
--   <a>GL_COEFF</a>, <a>GL_DOMAIN</a>, <a>GL_ORDER</a>.
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(target,query)</tt>.
glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMapiv</a> target query v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>query</tt> is a <tt>GetMapQuery</tt>, one of:
--   <a>GL_COEFF</a>, <a>GL_DOMAIN</a>, <a>GL_ORDER</a>.
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(target,query)</tt>.
glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMaterialfv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMaterialiv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetPixelMapfv</a> map values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(map)</tt>.
glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPixelMapuiv</a> map values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(map)</tt>.
glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetPixelMapusv</a> map values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(map)</tt>.
glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glGetPointerv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPointervPName</tt>, one of:
--   <a>GL_COLOR_ARRAY_POINTER</a>, <a>GL_COLOR_ARRAY_POINTER_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER_EXT</a>,
--   <a>GL_FEEDBACK_BUFFER_POINTER</a>, <a>GL_INDEX_ARRAY_POINTER</a>,
--   <a>GL_INDEX_ARRAY_POINTER_EXT</a>,
--   <a>GL_INSTRUMENT_BUFFER_POINTER_SGIX</a>,
--   <a>GL_NORMAL_ARRAY_POINTER</a>, <a>GL_NORMAL_ARRAY_POINTER_EXT</a>,
--   <a>GL_SELECTION_BUFFER_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER_EXT</a>,
--   <a>GL_VERTEX_ARRAY_POINTER</a>, <a>GL_VERTEX_ARRAY_POINTER_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml</a>
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetPolygonStipple</a> mask</tt>
--   
--   The length of <tt>mask</tt> should be <tt>COMPSIZE()</tt>.
glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glGetTexEnvfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexEnviv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexGendv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetTexGenfv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexGeniv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIndexMask</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedColorIndexValueI</tt>.
glIndexMask :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glIndexPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>IndexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glIndexd</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueD</tt>.
--   
--   The vector equivalent of this command is <a>glIndexdv</a>.
glIndexd :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glIndexdv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueD</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexdv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glIndexf</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueF</tt>.
--   
--   The vector equivalent of this command is <a>glIndexfv</a>.
glIndexf :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glIndexfv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueF</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexfv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glIndexi</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueI</tt>.
--   
--   The vector equivalent of this command is <a>glIndexiv</a>.
glIndexi :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glIndexiv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueI</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexiv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glIndexs</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueS</tt>.
--   
--   The vector equivalent of this command is <a>glIndexsv</a>.
glIndexs :: MonadIO m => GLshort -> m ()

-- | Usage: <tt><a>glIndexsv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueS</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexsv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glIndexub</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueUB</tt>.
--   
--   The vector equivalent of this command is <a>glIndexubv</a>.
glIndexub :: MonadIO m => GLubyte -> m ()

-- | Usage: <tt><a>glIndexubv</a> c</tt>
--   
--   The parameter <tt>c</tt> is a <tt>ColorIndexValueUB</tt>.
--   
--   The length of <tt>c</tt> should be <tt>1</tt>.
glIndexubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glInitNames</a></tt>
glInitNames :: MonadIO m => m ()

-- | Usage: <tt><a>glInterleavedArrays</a> format stride pointer</tt>
--   
--   The parameter <tt>format</tt> is a <tt>InterleavedArrayFormat</tt>,
--   one of: <a>GL_C3F_V3F</a>, <a>GL_C4F_N3F_V3F</a>, <a>GL_C4UB_V2F</a>,
--   <a>GL_C4UB_V3F</a>, <a>GL_N3F_V3F</a>, <a>GL_T2F_C3F_V3F</a>,
--   <a>GL_T2F_C4F_N3F_V3F</a>, <a>GL_T2F_C4UB_V3F</a>,
--   <a>GL_T2F_N3F_V3F</a>, <a>GL_T2F_V3F</a>, <a>GL_T4F_C4F_N3F_V4F</a>,
--   <a>GL_T4F_V4F</a>, <a>GL_V2F</a>, <a>GL_V3F</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(format,stride)</tt>.
glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glIsList</a> list</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
glIsList :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glLightModelf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glLightModelfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLightModeli</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
glLightModeli :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glLightModeliv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glLightf</a> light pname param</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glLightfv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLighti</a> light pname param</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glLightiv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glLineStipple</a> factor pattern</tt>
--   
--   The parameter <tt>factor</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pattern</tt> is a <tt>LineStipple</tt>.
glLineStipple :: MonadIO m => GLint -> GLushort -> m ()

-- | Usage: <tt><a>glListBase</a> base</tt>
--   
--   The parameter <tt>base</tt> is a <tt>List</tt>.
glListBase :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glLoadIdentity</a></tt>
glLoadIdentity :: MonadIO m => m ()

-- | Usage: <tt><a>glLoadMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glLoadMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLoadName</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>SelectName</tt>.
glLoadName :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glLoadTransposeMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glLoadTransposeMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMap1d</a> target u1 u2 stride order points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>order</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,stride,order)</tt>.
glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMap1f</a> target u1 u2 stride order points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>order</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,stride,order)</tt>.
glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMap2d</a> target u1 u2 ustride uorder v1 v2 vstride
--   vorder points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,ustride,uorder,vstride,vorder)</tt>.
glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMap2f</a> target u1 u2 ustride uorder v1 v2 vstride
--   vorder points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MapTarget</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,ustride,uorder,vstride,vorder)</tt>.
glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMapGrid1d</a> un u1 u2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMapGrid1f</a> un u1 u2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMapGrid2d</a> un u1 u2 vn v1 v2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMapGrid2f</a> un u1 u2 vn v1 v2</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMaterialf</a> face pname param</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glMaterialfv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMateriali</a> face pname param</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glMaterialiv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMatrixMode</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMultMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultTransposeMatrixd</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultTransposeMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord1d</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord1dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord1f</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord1fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord1i</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord1iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord1s</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord1sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord2d</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord2dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord2f</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord2fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord2i</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord2iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord2s</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord2sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord3d</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord3dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord3f</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord3fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord3i</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord3iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord3s</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord3sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord4d</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord4dv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord4f</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord4fv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord4i</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord4iv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord4s</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4sv</a>.
glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord4sv</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glNewList</a> list mode</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
--   
--   The parameter <tt>mode</tt> is a <tt>ListMode</tt>, one of:
--   <a>GL_COMPILE</a>, <a>GL_COMPILE_AND_EXECUTE</a>.
glNewList :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glNormal3b</a> nx ny nz</tt>
--   
--   The vector equivalent of this command is <a>glNormal3bv</a>.
glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glNormal3bv</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glNormal3d</a> nx ny nz</tt>
--   
--   The parameter <tt>nx</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>ny</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>nz</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glNormal3dv</a>.
glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glNormal3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glNormal3f</a> nx ny nz</tt>
--   
--   The parameter <tt>nx</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>ny</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>nz</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glNormal3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNormal3i</a> nx ny nz</tt>
--   
--   The vector equivalent of this command is <a>glNormal3iv</a>.
glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glNormal3iv</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glNormal3s</a> nx ny nz</tt>
--   
--   The vector equivalent of this command is <a>glNormal3sv</a>.
glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glNormal3sv</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glNormalPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>NormalPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glOrtho</a> left right bottom top zNear zFar</tt>
glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glPassThrough</a> token</tt>
--   
--   The parameter <tt>token</tt> is a <tt>FeedbackElement</tt>.
glPassThrough :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glPixelMapfv</a> map mapsize values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The parameter <tt>mapsize</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>values</tt> should be <tt>mapsize</tt>.
glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPixelMapuiv</a> map mapsize values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The parameter <tt>mapsize</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>values</tt> should be <tt>mapsize</tt>.
glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glPixelMapusv</a> map mapsize values</tt>
--   
--   The parameter <tt>map</tt> is a <tt>PixelMap</tt>, one of:
--   <a>GL_PIXEL_MAP_A_TO_A</a>, <a>GL_PIXEL_MAP_B_TO_B</a>,
--   <a>GL_PIXEL_MAP_G_TO_G</a>, <a>GL_PIXEL_MAP_I_TO_A</a>,
--   <a>GL_PIXEL_MAP_I_TO_B</a>, <a>GL_PIXEL_MAP_I_TO_G</a>,
--   <a>GL_PIXEL_MAP_I_TO_I</a>, <a>GL_PIXEL_MAP_I_TO_R</a>,
--   <a>GL_PIXEL_MAP_R_TO_R</a>, <a>GL_PIXEL_MAP_S_TO_S</a>.
--   
--   The parameter <tt>mapsize</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>values</tt> should be <tt>mapsize</tt>.
glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glPixelTransferf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransferParameter</tt>, one
--   of: <a>GL_ALPHA_BIAS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_BLUE_BIAS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_SCALE</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_SCALE</a>, <a>GL_INDEX_OFFSET</a>,
--   <a>GL_INDEX_SHIFT</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>, <a>GL_RED_BIAS</a>,
--   <a>GL_RED_SCALE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPixelTransferi</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransferParameter</tt>, one
--   of: <a>GL_ALPHA_BIAS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_BLUE_BIAS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_SCALE</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_SCALE</a>, <a>GL_INDEX_OFFSET</a>,
--   <a>GL_INDEX_SHIFT</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>, <a>GL_RED_BIAS</a>,
--   <a>GL_RED_SCALE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPixelZoom</a> xfactor yfactor</tt>
glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glPolygonStipple</a> mask</tt>
--   
--   The length of <tt>mask</tt> should be <tt>COMPSIZE()</tt>.
glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glPopAttrib</a></tt>
glPopAttrib :: MonadIO m => m ()

-- | Usage: <tt><a>glPopClientAttrib</a></tt>
glPopClientAttrib :: MonadIO m => m ()

-- | Usage: <tt><a>glPopMatrix</a></tt>
glPopMatrix :: MonadIO m => m ()

-- | Usage: <tt><a>glPopName</a></tt>
glPopName :: MonadIO m => m ()

-- | Usage: <tt><a>glPrioritizeTextures</a> n textures priorities</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   The length of <tt>priorities</tt> should be <tt>n</tt>.
glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPushAttrib</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>AttribMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_ALL_ATTRIB_BITS</a>,
--   <a>GL_COLOR_BUFFER_BIT</a>, <a>GL_CURRENT_BIT</a>,
--   <a>GL_DEPTH_BUFFER_BIT</a>, <a>GL_ENABLE_BIT</a>, <a>GL_EVAL_BIT</a>,
--   <a>GL_FOG_BIT</a>, <a>GL_HINT_BIT</a>, <a>GL_LIGHTING_BIT</a>,
--   <a>GL_LINE_BIT</a>, <a>GL_LIST_BIT</a>, <a>GL_MULTISAMPLE_BIT</a>,
--   <a>GL_MULTISAMPLE_BIT_3DFX</a>, <a>GL_MULTISAMPLE_BIT_ARB</a>,
--   <a>GL_MULTISAMPLE_BIT_EXT</a>, <a>GL_PIXEL_MODE_BIT</a>,
--   <a>GL_POINT_BIT</a>, <a>GL_POLYGON_BIT</a>,
--   <a>GL_POLYGON_STIPPLE_BIT</a>, <a>GL_SCISSOR_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>, <a>GL_TEXTURE_BIT</a>,
--   <a>GL_TRANSFORM_BIT</a>, <a>GL_VIEWPORT_BIT</a>.
glPushAttrib :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glPushClientAttrib</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClientAttribMask</tt>, one of:
--   <a>GL_CLIENT_ALL_ATTRIB_BITS</a>, <a>GL_CLIENT_PIXEL_STORE_BIT</a>,
--   <a>GL_CLIENT_VERTEX_ARRAY_BIT</a>.
glPushClientAttrib :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glPushMatrix</a></tt>
glPushMatrix :: MonadIO m => m ()

-- | Usage: <tt><a>glPushName</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>SelectName</tt>.
glPushName :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glRasterPos2d</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2dv</a>.
glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos2f</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2fv</a>.
glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos2i</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2iv</a>.
glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glRasterPos2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glRasterPos2s</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos2sv</a>.
glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glRasterPos2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glRasterPos3d</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3dv</a>.
glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos3f</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3fv</a>.
glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos3i</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3iv</a>.
glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glRasterPos3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glRasterPos3s</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos3sv</a>.
glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glRasterPos3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glRasterPos4d</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4dv</a>.
glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glRasterPos4f</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4fv</a>.
glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRasterPos4i</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4iv</a>.
glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glRasterPos4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glRasterPos4s</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRasterPos4sv</a>.
glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glRasterPos4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glRectd</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glRectdv</a>.
glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRectdv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glRectf</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glRectfv</a>.
glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glRectfv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRecti</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glRectiv</a>.
glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glRectiv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glRects</a> x1 y1 x2 y2</tt>
--   
--   The parameter <tt>x1</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y1</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>x2</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y2</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glRectsv</a>.
glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glRectsv</a> v1 v2</tt>
--   
--   The parameter <tt>v1</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glRenderMode</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>RenderingMode</tt>, one of:
--   <a>GL_FEEDBACK</a>, <a>GL_RENDER</a>, <a>GL_SELECT</a>.
glRenderMode :: MonadIO m => GLenum -> m GLint

-- | Usage: <tt><a>glRotated</a> angle x y z</tt>
glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glRotatef</a> angle x y z</tt>
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glScaled</a> x y z</tt>
glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glScalef</a> x y z</tt>
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glSecondaryColor3b</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3bv</a>.
glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3bv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3d</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3dv</a>.
glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glSecondaryColor3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glSecondaryColor3f</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3fv</a>.
glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glSecondaryColor3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSecondaryColor3i</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3iv</a>.
glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glSecondaryColor3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glSecondaryColor3s</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3sv</a>.
glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glSecondaryColor3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glSecondaryColor3ub</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3ubv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3ui</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3uiv</a>.
glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColor3uiv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColor3us</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3usv</a>.
glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Usage: <tt><a>glSecondaryColor3usv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()

-- | Usage: <tt><a>glSecondaryColorPointer</a> size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glSelectBuffer</a> size buffer</tt>
--   
--   The parameter <tt>buffer</tt> is a <tt>SelectName</tt>.
--   
--   The length of <tt>buffer</tt> should be <tt>size</tt>.
glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glShadeModel</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>ShadingModel</tt>, one of:
--   <a>GL_FLAT</a>, <a>GL_SMOOTH</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glTexCoord1d</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1dv</a>.
glTexCoord1d :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord1dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord1f</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1fv</a>.
glTexCoord1f :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord1fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord1i</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1iv</a>.
glTexCoord1i :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glTexCoord1iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glTexCoord1s</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1sv</a>.
glTexCoord1s :: MonadIO m => GLshort -> m ()

-- | Usage: <tt><a>glTexCoord1sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glTexCoord2d</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2dv</a>.
glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord2f</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2fv</a>.
glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2i</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2iv</a>.
glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glTexCoord2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glTexCoord2s</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2sv</a>.
glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glTexCoord2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glTexCoord3d</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3dv</a>.
glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord3f</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3fv</a>.
glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord3i</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3iv</a>.
glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glTexCoord3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glTexCoord3s</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3sv</a>.
glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glTexCoord3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glTexCoord4d</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4dv</a>.
glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexCoord4f</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4fv</a>.
glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord4i</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4iv</a>.
glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glTexCoord4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glTexCoord4s</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4sv</a>.
glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glTexCoord4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glTexCoordPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>TexCoordPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glTexEnvf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexEnvfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexEnvi</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexEnviv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexGend</a> coord pname param</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()

-- | Usage: <tt><a>glTexGendv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTexGenf</a> coord pname param</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexGenfv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexGeni</a> coord pname param</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexGeniv</a> coord pname params</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTranslated</a> x y z</tt>
glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glTranslatef</a> x y z</tt>
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertex2d</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2dv</a>.
glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertex2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertex2f</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2fv</a>.
glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertex2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertex2i</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2iv</a>.
glVertex2i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertex2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glVertex2s</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2sv</a>.
glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertex2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertex3d</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3dv</a>.
glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertex3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertex3f</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3fv</a>.
glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertex3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertex3i</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3iv</a>.
glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertex3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glVertex3s</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3sv</a>.
glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertex3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertex4d</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4dv</a>.
glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertex4dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertex4f</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4fv</a>.
glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertex4fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertex4i</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4iv</a>.
glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertex4iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glVertex4s</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4sv</a>.
glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertex4sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glWindowPos2d</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2dv</a>.
glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos2dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos2f</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2fv</a>.
glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos2fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos2i</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2iv</a>.
glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glWindowPos2iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glWindowPos2s</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos2sv</a>.
glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glWindowPos2sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glWindowPos3d</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3dv</a>.
glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos3dv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos3f</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3fv</a>.
glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos3fv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos3i</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3iv</a>.
glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glWindowPos3iv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glWindowPos3s</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos3sv</a>.
glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glWindowPos3sv</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()

module Graphics.GL.Compatibility33

-- | Usage: <tt><a>glColorP3ui</a> type color</tt>
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glColorP3uiv</a> type color</tt>
--   
--   The length of <tt>color</tt> should be <tt>1</tt>.
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glColorP4ui</a> type color</tt>
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glColorP4uiv</a> type color</tt>
--   
--   The length of <tt>color</tt> should be <tt>1</tt>.
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP1ui</a> texture type coords</tt>
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP1uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP2ui</a> texture type coords</tt>
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP2uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP3ui</a> texture type coords</tt>
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP3uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP4ui</a> texture type coords</tt>
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP4uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glNormalP3ui</a> type coords</tt>
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glNormalP3uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColorP3ui</a> type color</tt>
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColorP3uiv</a> type color</tt>
--   
--   The length of <tt>color</tt> should be <tt>1</tt>.
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP1ui</a> type coords</tt>
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP1uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP2ui</a> type coords</tt>
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP2uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP3ui</a> type coords</tt>
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP3uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP4ui</a> type coords</tt>
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP4uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexP2ui</a> type value</tt>
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexP2uiv</a> type value</tt>
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexP3ui</a> type value</tt>
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexP3uiv</a> type value</tt>
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexP4ui</a> type value</tt>
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexP4uiv</a> type value</tt>
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

module Graphics.GL.Compatibility40

module Graphics.GL.Compatibility41

module Graphics.GL.Compatibility42

module Graphics.GL.Compatibility43

module Graphics.GL.Compatibility44

module Graphics.GL.Ext.WIN.SpecularFog

-- | Checks that the <a>GL_WIN_specular_fog</a> extension is available.
gl_WIN_specular_fog :: Bool

module Graphics.GL.Ext.WIN.PhongShading

-- | Checks that the <a>GL_WIN_phong_shading</a> extension is available.
gl_WIN_phong_shading :: Bool

module Graphics.GL.Ext.WIN

module Graphics.GL.Ext.VIV.ShaderBinary

-- | Checks that the <a>GL_VIV_shader_binary</a> extension is available.
gl_VIV_shader_binary :: Bool

module Graphics.GL.Ext.VIV

module Graphics.GL.Ext.ThreeDFX.TextureCompressionFXT1

-- | Checks that the <a>GL_3DFX_texture_compression_FXT1</a> extension is
--   available.
gl_3DFX_texture_compression_FXT1 :: Bool

module Graphics.GL.Ext.ThreeDFX.Multisample

-- | Checks that the <a>GL_3DFX_multisample</a> extension is available.
gl_3DFX_multisample :: Bool

module Graphics.GL.Ext.SUN.SliceAccum

-- | Checks that the <a>GL_SUN_slice_accum</a> extension is available.
gl_SUN_slice_accum :: Bool

module Graphics.GL.Ext.SUN.ConvolutionBorderModes

-- | Checks that the <a>GL_SUN_convolution_border_modes</a> extension is
--   available.
gl_SUN_convolution_border_modes :: Bool

module Graphics.GL.Ext.SGIX.Ycrcba

-- | Checks that the GL_SGIX_ycrcba extension is available.
gl_SGIX_ycrcba :: Bool

module Graphics.GL.Ext.SGIX.YcrcbSubsample

-- | Checks that the GL_SGIX_ycrcb_subsample extension is available.
gl_SGIX_ycrcb_subsample :: Bool

module Graphics.GL.Ext.SGIX.Ycrcb

-- | Checks that the <a>GL_SGIX_ycrcb</a> extension is available.
gl_SGIX_ycrcb :: Bool

module Graphics.GL.Ext.SGIX.VertexPreclip

-- | Checks that the <a>GL_SGIX_vertex_preclip</a> extension is available.
gl_SGIX_vertex_preclip :: Bool

module Graphics.GL.Ext.SGIX.TextureScaleBias

-- | Checks that the <a>GL_SGIX_texture_scale_bias</a> extension is
--   available.
gl_SGIX_texture_scale_bias :: Bool

module Graphics.GL.Ext.SGIX.TextureMultiBuffer

-- | Checks that the <a>GL_SGIX_texture_multi_buffer</a> extension is
--   available.
gl_SGIX_texture_multi_buffer :: Bool

module Graphics.GL.Ext.SGIX.TextureLodBias

-- | Checks that the <a>GL_SGIX_texture_lod_bias</a> extension is
--   available.
gl_SGIX_texture_lod_bias :: Bool

module Graphics.GL.Ext.SGIX.TextureCoordinateClamp

-- | Checks that the <a>GL_SGIX_texture_coordinate_clamp</a> extension is
--   available.
gl_SGIX_texture_coordinate_clamp :: Bool

module Graphics.GL.Ext.SGIX.TextureAddEnv

-- | Checks that the GL_SGIX_texture_add_env extension is available.
gl_SGIX_texture_add_env :: Bool

module Graphics.GL.Ext.SGIX.Subsample

-- | Checks that the GL_SGIX_subsample extension is available.
gl_SGIX_subsample :: Bool

module Graphics.GL.Ext.SGIX.ShadowAmbient

-- | Checks that the <a>GL_SGIX_shadow_ambient</a> extension is available.
gl_SGIX_shadow_ambient :: Bool

module Graphics.GL.Ext.SGIX.Shadow

-- | Checks that the <a>GL_SGIX_shadow</a> extension is available.
gl_SGIX_shadow :: Bool

module Graphics.GL.Ext.SGIX.ScalebiasHint

-- | Checks that the GL_SGIX_scalebias_hint extension is available.
gl_SGIX_scalebias_hint :: Bool

module Graphics.GL.Ext.SGIX.Resample

-- | Checks that the <a>GL_SGIX_resample</a> extension is available.
gl_SGIX_resample :: Bool

module Graphics.GL.Ext.SGIX.PixelTiles

-- | Checks that the GL_SGIX_pixel_tiles extension is available.
gl_SGIX_pixel_tiles :: Bool

module Graphics.GL.Ext.SGIX.IrInstrument1

-- | Checks that the <a>GL_SGIX_ir_instrument1</a> extension is available.
gl_SGIX_ir_instrument1 :: Bool

module Graphics.GL.Ext.SGIX.Interlace

-- | Checks that the <a>GL_SGIX_interlace</a> extension is available.
gl_SGIX_interlace :: Bool

module Graphics.GL.Ext.SGIX.FogOffset

-- | Checks that the <a>GL_SGIX_fog_offset</a> extension is available.
gl_SGIX_fog_offset :: Bool

module Graphics.GL.Ext.SGIX.DepthTexture

-- | Checks that the <a>GL_SGIX_depth_texture</a> extension is available.
gl_SGIX_depth_texture :: Bool

module Graphics.GL.Ext.SGIX.DepthPassInstrument

-- | Checks that the GL_SGIX_depth_pass_instrument extension is available.
gl_SGIX_depth_pass_instrument :: Bool

module Graphics.GL.Ext.SGIX.ConvolutionAccuracy

-- | Checks that the <a>GL_SGIX_convolution_accuracy</a> extension is
--   available.
gl_SGIX_convolution_accuracy :: Bool

module Graphics.GL.Ext.SGIX.Clipmap

-- | Checks that the <a>GL_SGIX_clipmap</a> extension is available.
gl_SGIX_clipmap :: Bool

module Graphics.GL.Ext.SGIX.CalligraphicFragment

-- | Checks that the GL_SGIX_calligraphic_fragment extension is available.
gl_SGIX_calligraphic_fragment :: Bool

module Graphics.GL.Ext.SGIX.BlendAlphaMinmax

-- | Checks that the <a>GL_SGIX_blend_alpha_minmax</a> extension is
--   available.
gl_SGIX_blend_alpha_minmax :: Bool

module Graphics.GL.Ext.SGIX.AsyncPixel

-- | Checks that the <a>GL_SGIX_async_pixel</a> extension is available.
gl_SGIX_async_pixel :: Bool

module Graphics.GL.Ext.SGIX.AsyncHistogram

-- | Checks that the <a>GL_SGIX_async_histogram</a> extension is available.
gl_SGIX_async_histogram :: Bool

module Graphics.GL.Ext.SGIS.TextureSelect

-- | Checks that the <a>GL_SGIS_texture_select</a> extension is available.
gl_SGIS_texture_select :: Bool

module Graphics.GL.Ext.SGIS.TextureLod

-- | Checks that the <a>GL_SGIS_texture_lod</a> extension is available.
gl_SGIS_texture_lod :: Bool

module Graphics.GL.Ext.SGIS.TextureEdgeClamp

-- | Checks that the <a>GL_SGIS_texture_edge_clamp</a> extension is
--   available.
gl_SGIS_texture_edge_clamp :: Bool

module Graphics.GL.Ext.SGIS.TextureBorderClamp

-- | Checks that the <a>GL_SGIS_texture_border_clamp</a> extension is
--   available.
gl_SGIS_texture_border_clamp :: Bool

module Graphics.GL.Ext.SGIS.PointLineTexgen

-- | Checks that the <a>GL_SGIS_point_line_texgen</a> extension is
--   available.
gl_SGIS_point_line_texgen :: Bool

module Graphics.GL.Ext.SGIS.GenerateMipmap

-- | Checks that the <a>GL_SGIS_generate_mipmap</a> extension is available.
gl_SGIS_generate_mipmap :: Bool

module Graphics.GL.Ext.SGI.TextureColorTable

-- | Checks that the <a>GL_SGI_texture_color_table</a> extension is
--   available.
gl_SGI_texture_color_table :: Bool

module Graphics.GL.Ext.SGI.ColorMatrix

-- | Checks that the <a>GL_SGI_color_matrix</a> extension is available.
gl_SGI_color_matrix :: Bool

module Graphics.GL.Ext.S3.S3tc

-- | Checks that the <a>GL_S3_s3tc</a> extension is available.
gl_S3_s3tc :: Bool

module Graphics.GL.Ext.S3

module Graphics.GL.Ext.REND.ScreenCoordinates

-- | Checks that the <a>GL_REND_screen_coordinates</a> extension is
--   available.
gl_REND_screen_coordinates :: Bool

module Graphics.GL.Ext.REND

module Graphics.GL.Ext.QCOM.WriteonlyRendering

-- | Checks that the <a>GL_QCOM_writeonly_rendering</a> extension is
--   available.
gl_QCOM_writeonly_rendering :: Bool

module Graphics.GL.Ext.QCOM.PerfmonGlobalMode

-- | Checks that the GL_QCOM_perfmon_global_mode extension is available.
gl_QCOM_perfmon_global_mode :: Bool

module Graphics.GL.Ext.QCOM.BinningControl

-- | Checks that the <a>GL_QCOM_binning_control</a> extension is available.
gl_QCOM_binning_control :: Bool

module Graphics.GL.Ext.PGI.VertexHints

-- | Checks that the <a>GL_PGI_vertex_hints</a> extension is available.
gl_PGI_vertex_hints :: Bool

module Graphics.GL.Ext.OVR.Multiview2

-- | Checks that the <a>GL_OVR_multiview2</a> extension is available.
gl_OVR_multiview2 :: Bool

module Graphics.GL.Ext.OML.Subsample

-- | Checks that the <a>GL_OML_subsample</a> extension is available.
gl_OML_subsample :: Bool

module Graphics.GL.Ext.OML.Resample

-- | Checks that the <a>GL_OML_resample</a> extension is available.
gl_OML_resample :: Bool

module Graphics.GL.Ext.OML.Interlace

-- | Checks that the <a>GL_OML_interlace</a> extension is available.
gl_OML_interlace :: Bool

module Graphics.GL.Ext.OML

module Graphics.GL.Ext.OES.VertexType1010102

-- | Checks that the <a>GL_OES_vertex_type_10_10_10_2</a> extension is
--   available.
gl_OES_vertex_type_10_10_10_2 :: Bool

module Graphics.GL.Ext.OES.VertexHalfFloat

-- | Checks that the <a>GL_OES_vertex_half_float</a> extension is
--   available.
gl_OES_vertex_half_float :: Bool

module Graphics.GL.Ext.OES.TextureStencil8

-- | Checks that the <a>GL_OES_texture_stencil8</a> extension is available.
gl_OES_texture_stencil8 :: Bool

module Graphics.GL.Ext.OES.TextureNpot

-- | Checks that the <a>GL_OES_texture_npot</a> extension is available.
gl_OES_texture_npot :: Bool

module Graphics.GL.Ext.OES.TextureMirroredRepeat

-- | Checks that the <a>GL_OES_texture_mirrored_repeat</a> extension is
--   available.
gl_OES_texture_mirrored_repeat :: Bool

module Graphics.GL.Ext.OES.TextureHalfFloatLinear

-- | Checks that the <a>GL_OES_texture_half_float_linear</a> extension is
--   available.
gl_OES_texture_half_float_linear :: Bool

module Graphics.GL.Ext.OES.TextureHalfFloat

-- | Checks that the <a>GL_OES_texture_half_float</a> extension is
--   available.
gl_OES_texture_half_float :: Bool

module Graphics.GL.Ext.OES.TextureFloatLinear

-- | Checks that the <a>GL_OES_texture_float_linear</a> extension is
--   available.
gl_OES_texture_float_linear :: Bool

module Graphics.GL.Ext.OES.TextureFloat

-- | Checks that the <a>GL_OES_texture_float</a> extension is available.
gl_OES_texture_float :: Bool

module Graphics.GL.Ext.OES.TextureEnvCrossbar

-- | Checks that the <a>GL_OES_texture_env_crossbar</a> extension is
--   available.
gl_OES_texture_env_crossbar :: Bool

module Graphics.GL.Ext.OES.TextureCubeMapArray

-- | Checks that the <a>GL_OES_texture_cube_map_array</a> extension is
--   available.
gl_OES_texture_cube_map_array :: Bool

module Graphics.GL.Ext.OES.TextureCompressionAstc

-- | Checks that the <a>GL_OES_texture_compression_astc</a> extension is
--   available.
gl_OES_texture_compression_astc :: Bool

module Graphics.GL.Ext.OES.TessellationPointSize

-- | Checks that the <a>GL_OES_tessellation_point_size</a> extension is
--   available.
gl_OES_tessellation_point_size :: Bool

module Graphics.GL.Ext.OES.SurfacelessContext

-- | Checks that the <a>GL_OES_surfaceless_context</a> extension is
--   available.
gl_OES_surfaceless_context :: Bool

module Graphics.GL.Ext.OES.StencilWrap

-- | Checks that the <a>GL_OES_stencil_wrap</a> extension is available.
gl_OES_stencil_wrap :: Bool

module Graphics.GL.Ext.OES.Stencil8

-- | Checks that the <a>GL_OES_stencil8</a> extension is available.
gl_OES_stencil8 :: Bool

module Graphics.GL.Ext.OES.Stencil4

-- | Checks that the <a>GL_OES_stencil4</a> extension is available.
gl_OES_stencil4 :: Bool

module Graphics.GL.Ext.OES.Stencil1

-- | Checks that the <a>GL_OES_stencil1</a> extension is available.
gl_OES_stencil1 :: Bool

module Graphics.GL.Ext.OES.StandardDerivatives

-- | Checks that the <a>GL_OES_standard_derivatives</a> extension is
--   available.
gl_OES_standard_derivatives :: Bool

module Graphics.GL.Ext.OES.ShaderMultisampleInterpolation

-- | Checks that the <a>GL_OES_shader_multisample_interpolation</a>
--   extension is available.
gl_OES_shader_multisample_interpolation :: Bool

module Graphics.GL.Ext.OES.ShaderIoBlocks

-- | Checks that the <a>GL_OES_shader_io_blocks</a> extension is available.
gl_OES_shader_io_blocks :: Bool

module Graphics.GL.Ext.OES.ShaderImageAtomic

-- | Checks that the <a>GL_OES_shader_image_atomic</a> extension is
--   available.
gl_OES_shader_image_atomic :: Bool

module Graphics.GL.Ext.OES.SampleVariables

-- | Checks that the <a>GL_OES_sample_variables</a> extension is available.
gl_OES_sample_variables :: Bool

module Graphics.GL.Ext.OES.Rgb8Rgba8

-- | Checks that the <a>GL_OES_rgb8_rgba8</a> extension is available.
gl_OES_rgb8_rgba8 :: Bool

module Graphics.GL.Ext.OES.RequiredInternalformat

-- | Checks that the <a>GL_OES_required_internalformat</a> extension is
--   available.
gl_OES_required_internalformat :: Bool

module Graphics.GL.Ext.OES.ReadFormat

-- | Checks that the <a>GL_OES_read_format</a> extension is available.
gl_OES_read_format :: Bool

module Graphics.GL.Ext.OES.PointSprite

-- | Checks that the <a>GL_OES_point_sprite</a> extension is available.
gl_OES_point_sprite :: Bool

module Graphics.GL.Ext.OES.PackedDepthStencil

-- | Checks that the <a>GL_OES_packed_depth_stencil</a> extension is
--   available.
gl_OES_packed_depth_stencil :: Bool

module Graphics.GL.Ext.OES.MatrixGet

-- | Checks that the <a>GL_OES_matrix_get</a> extension is available.
gl_OES_matrix_get :: Bool

module Graphics.GL.Ext.OES.GpuShader5

-- | Checks that the <a>GL_OES_gpu_shader5</a> extension is available.
gl_OES_gpu_shader5 :: Bool

module Graphics.GL.Ext.OES.GeometryPointSize

-- | Checks that the <a>GL_OES_geometry_point_size</a> extension is
--   available.
gl_OES_geometry_point_size :: Bool

module Graphics.GL.Ext.OES.FragmentPrecisionHigh

-- | Checks that the <a>GL_OES_fragment_precision_high</a> extension is
--   available.
gl_OES_fragment_precision_high :: Bool

module Graphics.GL.Ext.OES.FboRenderMipmap

-- | Checks that the <a>GL_OES_fbo_render_mipmap</a> extension is
--   available.
gl_OES_fbo_render_mipmap :: Bool

module Graphics.GL.Ext.OES.ExtendedMatrixPalette

-- | Checks that the <a>GL_OES_extended_matrix_palette</a> extension is
--   available.
gl_OES_extended_matrix_palette :: Bool

module Graphics.GL.Ext.OES.ElementIndexUint

-- | Checks that the <a>GL_OES_element_index_uint</a> extension is
--   available.
gl_OES_element_index_uint :: Bool

module Graphics.GL.Ext.OES.EGLImageExternalEssl3

-- | Checks that the <a>GL_OES_EGL_image_external_essl3</a> extension is
--   available.
gl_OES_EGL_image_external_essl3 :: Bool

module Graphics.GL.Ext.OES.EGLImageExternal

-- | Checks that the <a>GL_OES_EGL_image_external</a> extension is
--   available.
gl_OES_EGL_image_external :: Bool

module Graphics.GL.Ext.OES.DepthTexture

-- | Checks that the <a>GL_OES_depth_texture</a> extension is available.
gl_OES_depth_texture :: Bool

module Graphics.GL.Ext.OES.Depth32

-- | Checks that the <a>GL_OES_depth32</a> extension is available.
gl_OES_depth32 :: Bool

module Graphics.GL.Ext.OES.Depth24

-- | Checks that the <a>GL_OES_depth24</a> extension is available.
gl_OES_depth24 :: Bool

module Graphics.GL.Ext.OES.CompressedPalettedTexture

-- | Checks that the <a>GL_OES_compressed_paletted_texture</a> extension is
--   available.
gl_OES_compressed_paletted_texture :: Bool

module Graphics.GL.Ext.OES.CompressedETC1RGB8Texture

-- | Checks that the <a>GL_OES_compressed_ETC1_RGB8_texture</a> extension
--   is available.
gl_OES_compressed_ETC1_RGB8_texture :: Bool

module Graphics.GL.Ext.OES.CompressedETC1RGB8SubTexture

-- | Checks that the GL_OES_compressed_ETC1_RGB8_sub_texture extension is
--   available.
gl_OES_compressed_ETC1_RGB8_sub_texture :: Bool

module Graphics.GL.Ext.NVX.GpuMemoryInfo

-- | Checks that the <a>GL_NVX_gpu_memory_info</a> extension is available.
gl_NVX_gpu_memory_info :: Bool

module Graphics.GL.Ext.NV.ViewportArray2

-- | Checks that the <a>GL_NV_viewport_array2</a> extension is available.
gl_NV_viewport_array2 :: Bool

module Graphics.GL.Ext.NV.VertexProgram3

-- | Checks that the <a>GL_NV_vertex_program3</a> extension is available.
gl_NV_vertex_program3 :: Bool

module Graphics.GL.Ext.NV.VertexProgram2Option

-- | Checks that the <a>GL_NV_vertex_program2_option</a> extension is
--   available.
gl_NV_vertex_program2_option :: Bool

module Graphics.GL.Ext.NV.VertexProgram2

-- | Checks that the <a>GL_NV_vertex_program2</a> extension is available.
gl_NV_vertex_program2 :: Bool

module Graphics.GL.Ext.NV.VertexProgram11

-- | Checks that the <a>GL_NV_vertex_program1_1</a> extension is available.
gl_NV_vertex_program1_1 :: Bool

module Graphics.GL.Ext.NV.VertexArrayRange2

-- | Checks that the <a>GL_NV_vertex_array_range2</a> extension is
--   available.
gl_NV_vertex_array_range2 :: Bool

module Graphics.GL.Ext.NV.UniformBufferUnifiedMemory

-- | Checks that the <a>GL_NV_uniform_buffer_unified_memory</a> extension
--   is available.
gl_NV_uniform_buffer_unified_memory :: Bool

module Graphics.GL.Ext.NV.TextureShader3

-- | Checks that the <a>GL_NV_texture_shader3</a> extension is available.
gl_NV_texture_shader3 :: Bool

module Graphics.GL.Ext.NV.TextureShader2

-- | Checks that the <a>GL_NV_texture_shader2</a> extension is available.
gl_NV_texture_shader2 :: Bool

module Graphics.GL.Ext.NV.TextureShader

-- | Checks that the <a>GL_NV_texture_shader</a> extension is available.
gl_NV_texture_shader :: Bool

module Graphics.GL.Ext.NV.TextureRectangle

-- | Checks that the <a>GL_NV_texture_rectangle</a> extension is available.
gl_NV_texture_rectangle :: Bool

module Graphics.GL.Ext.NV.TextureNpot2DMipmap

-- | Checks that the <a>GL_NV_texture_npot_2D_mipmap</a> extension is
--   available.
gl_NV_texture_npot_2D_mipmap :: Bool

module Graphics.GL.Ext.NV.TextureExpandNormal

-- | Checks that the <a>GL_NV_texture_expand_normal</a> extension is
--   available.
gl_NV_texture_expand_normal :: Bool

module Graphics.GL.Ext.NV.TextureEnvCombine4

-- | Checks that the <a>GL_NV_texture_env_combine4</a> extension is
--   available.
gl_NV_texture_env_combine4 :: Bool

module Graphics.GL.Ext.NV.TextureCompressionVtc

-- | Checks that the <a>GL_NV_texture_compression_vtc</a> extension is
--   available.
gl_NV_texture_compression_vtc :: Bool

module Graphics.GL.Ext.NV.TextureCompressionS3tcUpdate

-- | Checks that the <a>GL_NV_texture_compression_s3tc_update</a> extension
--   is available.
gl_NV_texture_compression_s3tc_update :: Bool

module Graphics.GL.Ext.NV.TextureBorderClamp

-- | Checks that the <a>GL_NV_texture_border_clamp</a> extension is
--   available.
gl_NV_texture_border_clamp :: Bool

module Graphics.GL.Ext.NV.TexgenReflection

-- | Checks that the <a>GL_NV_texgen_reflection</a> extension is available.
gl_NV_texgen_reflection :: Bool

module Graphics.GL.Ext.NV.TexgenEmboss

-- | Checks that the <a>GL_NV_texgen_emboss</a> extension is available.
gl_NV_texgen_emboss :: Bool

module Graphics.GL.Ext.NV.TessellationProgram5

-- | Checks that the <a>GL_NV_tessellation_program5</a> extension is
--   available.
gl_NV_tessellation_program5 :: Bool

module Graphics.GL.Ext.NV.StereoViewRendering

-- | Checks that the <a>GL_NV_stereo_view_rendering</a> extension is
--   available.
gl_NV_stereo_view_rendering :: Bool

module Graphics.GL.Ext.NV.ShadowSamplersCube

-- | Checks that the <a>GL_NV_shadow_samplers_cube</a> extension is
--   available.
gl_NV_shadow_samplers_cube :: Bool

module Graphics.GL.Ext.NV.ShadowSamplersArray

-- | Checks that the <a>GL_NV_shadow_samplers_array</a> extension is
--   available.
gl_NV_shadow_samplers_array :: Bool

module Graphics.GL.Ext.NV.ShaderThreadShuffle

-- | Checks that the <a>GL_NV_shader_thread_shuffle</a> extension is
--   available.
gl_NV_shader_thread_shuffle :: Bool

module Graphics.GL.Ext.NV.ShaderThreadGroup

-- | Checks that the <a>GL_NV_shader_thread_group</a> extension is
--   available.
gl_NV_shader_thread_group :: Bool

module Graphics.GL.Ext.NV.ShaderStorageBufferObject

-- | Checks that the <a>GL_NV_shader_storage_buffer_object</a> extension is
--   available.
gl_NV_shader_storage_buffer_object :: Bool

module Graphics.GL.Ext.NV.ShaderNoperspectiveInterpolation

-- | Checks that the GL_NV_shader_noperspective_interpolation extension is
--   available.
gl_NV_shader_noperspective_interpolation :: Bool

module Graphics.GL.Ext.NV.ShaderBufferStore

-- | Checks that the <a>GL_NV_shader_buffer_store</a> extension is
--   available.
gl_NV_shader_buffer_store :: Bool

module Graphics.GL.Ext.NV.ShaderAtomicInt64

-- | Checks that the <a>GL_NV_shader_atomic_int64</a> extension is
--   available.
gl_NV_shader_atomic_int64 :: Bool

module Graphics.GL.Ext.NV.ShaderAtomicFp16Vector

-- | Checks that the <a>GL_NV_shader_atomic_fp16_vector</a> extension is
--   available.
gl_NV_shader_atomic_fp16_vector :: Bool

module Graphics.GL.Ext.NV.ShaderAtomicFloat64

-- | Checks that the <a>GL_NV_shader_atomic_float64</a> extension is
--   available.
gl_NV_shader_atomic_float64 :: Bool

module Graphics.GL.Ext.NV.ShaderAtomicFloat

-- | Checks that the <a>GL_NV_shader_atomic_float</a> extension is
--   available.
gl_NV_shader_atomic_float :: Bool

module Graphics.GL.Ext.NV.ShaderAtomicCounters

-- | Checks that the <a>GL_NV_shader_atomic_counters</a> extension is
--   available.
gl_NV_shader_atomic_counters :: Bool

module Graphics.GL.Ext.NV.SampleMaskOverrideCoverage

-- | Checks that the <a>GL_NV_sample_mask_override_coverage</a> extension
--   is available.
gl_NV_sample_mask_override_coverage :: Bool

module Graphics.GL.Ext.NV.SRGBFormats

-- | Checks that the <a>GL_NV_sRGB_formats</a> extension is available.
gl_NV_sRGB_formats :: Bool

module Graphics.GL.Ext.NV.RobustnessVideoMemoryPurge

-- | Checks that the <a>GL_NV_robustness_video_memory_purge</a> extension
--   is available.
gl_NV_robustness_video_memory_purge :: Bool

module Graphics.GL.Ext.NV.ReadStencil

-- | Checks that the GL_NV_read_stencil extension is available.
gl_NV_read_stencil :: Bool

module Graphics.GL.Ext.NV.ReadDepthStencil

-- | Checks that the <a>GL_NV_read_depth_stencil</a> extension is
--   available.
gl_NV_read_depth_stencil :: Bool

module Graphics.GL.Ext.NV.ReadDepth

-- | Checks that the GL_NV_read_depth extension is available.
gl_NV_read_depth :: Bool

module Graphics.GL.Ext.NV.ReadBufferFront

-- | Checks that the GL_NV_read_buffer_front extension is available.
gl_NV_read_buffer_front :: Bool

module Graphics.GL.Ext.NV.PathRenderingSharedEdge

-- | Checks that the <a>GL_NV_path_rendering_shared_edge</a> extension is
--   available.
gl_NV_path_rendering_shared_edge :: Bool

module Graphics.GL.Ext.NV.ParameterBufferObject2

-- | Checks that the <a>GL_NV_parameter_buffer_object2</a> extension is
--   available.
gl_NV_parameter_buffer_object2 :: Bool

module Graphics.GL.Ext.NV.PackedDepthStencil

-- | Checks that the <a>GL_NV_packed_depth_stencil</a> extension is
--   available.
gl_NV_packed_depth_stencil :: Bool

module Graphics.GL.Ext.NV.MultisampleFilterHint

-- | Checks that the <a>GL_NV_multisample_filter_hint</a> extension is
--   available.
gl_NV_multisample_filter_hint :: Bool

module Graphics.GL.Ext.NV.MultisampleCoverage

-- | Checks that the <a>GL_NV_multisample_coverage</a> extension is
--   available.
gl_NV_multisample_coverage :: Bool

module Graphics.GL.Ext.NV.LightMaxExponent

-- | Checks that the <a>GL_NV_light_max_exponent</a> extension is
--   available.
gl_NV_light_max_exponent :: Bool

module Graphics.GL.Ext.NV.ImageFormats

-- | Checks that the GL_NV_image_formats extension is available.
gl_NV_image_formats :: Bool

module Graphics.GL.Ext.NV.GpuShader5

-- | Checks that the <a>GL_NV_gpu_shader5</a> extension is available.
gl_NV_gpu_shader5 :: Bool

-- | Usage: <tt><a>glGetUniformi64vNV</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform1i64NV</a> program location x</tt>
glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform1i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform1ui64NV</a> program location x</tt>
glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform1ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform2i64NV</a> program location x y</tt>
glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform2i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform2ui64NV</a> program location x y</tt>
glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform2ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform3i64NV</a> program location x y z</tt>
glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform3i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform3ui64NV</a> program location x y z</tt>
glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform3ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform4i64NV</a> program location x y z w</tt>
glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform4i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform4ui64NV</a> program location x y z
--   w</tt>
glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform4ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform1i64NV</a> location x</tt>
glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform1i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform1ui64NV</a> location x</tt>
glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform1ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform2i64NV</a> location x y</tt>
glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform2i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform2ui64NV</a> location x y</tt>
glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform2ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform3i64NV</a> location x y z</tt>
glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform3i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform3ui64NV</a> location x y z</tt>
glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform3ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform4i64NV</a> location x y z w</tt>
glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform4i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform4ui64NV</a> location x y z w</tt>
glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform4ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

module Graphics.GL.Ext.NV.GpuProgram5MemExtended

-- | Checks that the <a>GL_NV_gpu_program5_mem_extended</a> extension is
--   available.
gl_NV_gpu_program5_mem_extended :: Bool

module Graphics.GL.Ext.NV.GeometryShaderPassthrough

-- | Checks that the <a>GL_NV_geometry_shader_passthrough</a> extension is
--   available.
gl_NV_geometry_shader_passthrough :: Bool

module Graphics.GL.Ext.NV.GeometryShader4

-- | Checks that the <a>GL_NV_geometry_shader4</a> extension is available.
gl_NV_geometry_shader4 :: Bool

module Graphics.GL.Ext.NV.GenerateMipmapSRGB

-- | Checks that the <a>GL_NV_generate_mipmap_sRGB</a> extension is
--   available.
gl_NV_generate_mipmap_sRGB :: Bool

module Graphics.GL.Ext.NV.FragmentShaderInterlock

-- | Checks that the <a>GL_NV_fragment_shader_interlock</a> extension is
--   available.
gl_NV_fragment_shader_interlock :: Bool

module Graphics.GL.Ext.NV.FragmentProgramOption

-- | Checks that the <a>GL_NV_fragment_program_option</a> extension is
--   available.
gl_NV_fragment_program_option :: Bool

module Graphics.GL.Ext.NV.FragmentProgram4

-- | Checks that the <a>GL_NV_fragment_program4</a> extension is available.
gl_NV_fragment_program4 :: Bool

module Graphics.GL.Ext.NV.FragmentProgram2

-- | Checks that the <a>GL_NV_fragment_program2</a> extension is available.
gl_NV_fragment_program2 :: Bool

module Graphics.GL.Ext.NV.FogDistance

-- | Checks that the <a>GL_NV_fog_distance</a> extension is available.
gl_NV_fog_distance :: Bool

module Graphics.GL.Ext.NV.FloatBuffer

-- | Checks that the <a>GL_NV_float_buffer</a> extension is available.
gl_NV_float_buffer :: Bool

module Graphics.GL.Ext.NV.FillRectangle

-- | Checks that the <a>GL_NV_fill_rectangle</a> extension is available.
gl_NV_fill_rectangle :: Bool

module Graphics.GL.Ext.NV.FboColorAttachments

-- | Checks that the <a>GL_NV_fbo_color_attachments</a> extension is
--   available.
gl_NV_fbo_color_attachments :: Bool

module Graphics.GL.Ext.NV.ExplicitAttribLocation

-- | Checks that the <a>GL_NV_explicit_attrib_location</a> extension is
--   available.
gl_NV_explicit_attrib_location :: Bool

module Graphics.GL.Ext.NV.DepthNonlinear

-- | Checks that the <a>GL_NV_depth_nonlinear</a> extension is available.
gl_NV_depth_nonlinear :: Bool

module Graphics.GL.Ext.NV.DepthClamp

-- | Checks that the <a>GL_NV_depth_clamp</a> extension is available.
gl_NV_depth_clamp :: Bool

module Graphics.GL.Ext.NV.DeepTexture3D

-- | Checks that the <a>GL_NV_deep_texture3D</a> extension is available.
gl_NV_deep_texture3D :: Bool

module Graphics.GL.Ext.NV.CopyDepthToColor

-- | Checks that the <a>GL_NV_copy_depth_to_color</a> extension is
--   available.
gl_NV_copy_depth_to_color :: Bool

module Graphics.GL.Ext.NV.ComputeProgram5

-- | Checks that the <a>GL_NV_compute_program5</a> extension is available.
gl_NV_compute_program5 :: Bool

module Graphics.GL.Ext.NV.BlendSquare

-- | Checks that the <a>GL_NV_blend_square</a> extension is available.
gl_NV_blend_square :: Bool

module Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent

-- | Checks that the <a>GL_NV_blend_equation_advanced_coherent</a>
--   extension is available.
gl_NV_blend_equation_advanced_coherent :: Bool

module Graphics.GL.Ext.MESAX.TextureStack

-- | Checks that the <a>GL_MESAX_texture_stack</a> extension is available.
gl_MESAX_texture_stack :: Bool

module Graphics.GL.Ext.MESAX

module Graphics.GL.Ext.MESA.YcbcrTexture

-- | Checks that the <a>GL_MESA_ycbcr_texture</a> extension is available.
gl_MESA_ycbcr_texture :: Bool

module Graphics.GL.Ext.MESA.PackInvert

-- | Checks that the <a>GL_MESA_pack_invert</a> extension is available.
gl_MESA_pack_invert :: Bool

module Graphics.GL.Ext.KHR.TextureCompressionAstcSliced3d

-- | Checks that the <a>GL_KHR_texture_compression_astc_sliced_3d</a>
--   extension is available.
gl_KHR_texture_compression_astc_sliced_3d :: Bool

module Graphics.GL.Ext.KHR.TextureCompressionAstcLdr

-- | Checks that the <a>GL_KHR_texture_compression_astc_ldr</a> extension
--   is available.
gl_KHR_texture_compression_astc_ldr :: Bool

module Graphics.GL.Ext.KHR.TextureCompressionAstcHdr

-- | Checks that the <a>GL_KHR_texture_compression_astc_hdr</a> extension
--   is available.
gl_KHR_texture_compression_astc_hdr :: Bool

module Graphics.GL.Ext.KHR.RobustBufferAccessBehavior

-- | Checks that the <a>GL_KHR_robust_buffer_access_behavior</a> extension
--   is available.
gl_KHR_robust_buffer_access_behavior :: Bool

module Graphics.GL.Ext.KHR.NoError

-- | Checks that the <a>GL_KHR_no_error</a> extension is available.
gl_KHR_no_error :: Bool

module Graphics.GL.Ext.KHR.ContextFlushControl

-- | Checks that the <a>GL_KHR_context_flush_control</a> extension is
--   available.
gl_KHR_context_flush_control :: Bool

module Graphics.GL.Ext.KHR.BlendEquationAdvancedCoherent

-- | Checks that the <a>GL_KHR_blend_equation_advanced_coherent</a>
--   extension is available.
gl_KHR_blend_equation_advanced_coherent :: Bool

module Graphics.GL.Ext.INTEL.FragmentShaderOrdering

-- | Checks that the <a>GL_INTEL_fragment_shader_ordering</a> extension is
--   available.
gl_INTEL_fragment_shader_ordering :: Bool

module Graphics.GL.Ext.INTEL.ConservativeRasterization

-- | Checks that the <a>GL_INTEL_conservative_rasterization</a> extension
--   is available.
gl_INTEL_conservative_rasterization :: Bool

module Graphics.GL.Ext.INGR.InterlaceRead

-- | Checks that the <a>GL_INGR_interlace_read</a> extension is available.
gl_INGR_interlace_read :: Bool

module Graphics.GL.Ext.INGR.ColorClamp

-- | Checks that the <a>GL_INGR_color_clamp</a> extension is available.
gl_INGR_color_clamp :: Bool

module Graphics.GL.Ext.IMG.TextureFilterCubic

-- | Checks that the <a>GL_IMG_texture_filter_cubic</a> extension is
--   available.
gl_IMG_texture_filter_cubic :: Bool

module Graphics.GL.Ext.IMG.TextureEnvEnhancedFixedFunction

-- | Checks that the <a>GL_IMG_texture_env_enhanced_fixed_function</a>
--   extension is available.
gl_IMG_texture_env_enhanced_fixed_function :: Bool

module Graphics.GL.Ext.IMG.TextureCompressionPvrtc2

-- | Checks that the <a>GL_IMG_texture_compression_pvrtc2</a> extension is
--   available.
gl_IMG_texture_compression_pvrtc2 :: Bool

module Graphics.GL.Ext.IMG.TextureCompressionPvrtc

-- | Checks that the <a>GL_IMG_texture_compression_pvrtc</a> extension is
--   available.
gl_IMG_texture_compression_pvrtc :: Bool

module Graphics.GL.Ext.IMG.ShaderBinary

-- | Checks that the <a>GL_IMG_shader_binary</a> extension is available.
gl_IMG_shader_binary :: Bool

module Graphics.GL.Ext.IMG.ReadFormat

-- | Checks that the <a>GL_IMG_read_format</a> extension is available.
gl_IMG_read_format :: Bool

module Graphics.GL.Ext.IMG.ProgramBinary

-- | Checks that the <a>GL_IMG_program_binary</a> extension is available.
gl_IMG_program_binary :: Bool

module Graphics.GL.Ext.IBM.TextureMirroredRepeat

-- | Checks that the <a>GL_IBM_texture_mirrored_repeat</a> extension is
--   available.
gl_IBM_texture_mirrored_repeat :: Bool

module Graphics.GL.Ext.IBM.RasterposClip

-- | Checks that the <a>GL_IBM_rasterpos_clip</a> extension is available.
gl_IBM_rasterpos_clip :: Bool

module Graphics.GL.Ext.IBM.CullVertex

-- | Checks that the <a>GL_IBM_cull_vertex</a> extension is available.
gl_IBM_cull_vertex :: Bool

module Graphics.GL.Ext.HP.TextureLighting

-- | Checks that the <a>GL_HP_texture_lighting</a> extension is available.
gl_HP_texture_lighting :: Bool

module Graphics.GL.Ext.HP.OcclusionTest

-- | Checks that the <a>GL_HP_occlusion_test</a> extension is available.
gl_HP_occlusion_test :: Bool

module Graphics.GL.Ext.HP.ConvolutionBorderModes

-- | Checks that the <a>GL_HP_convolution_border_modes</a> extension is
--   available.
gl_HP_convolution_border_modes :: Bool

module Graphics.GL.Ext.FJ.ShaderBinaryGCCSO

-- | Checks that the <a>GL_FJ_shader_binary_GCCSO</a> extension is
--   available.
gl_FJ_shader_binary_GCCSO :: Bool

module Graphics.GL.Ext.FJ

module Graphics.GL.Ext.EXT.YUVTarget

-- | Checks that the <a>GL_EXT_YUV_target</a> extension is available.
gl_EXT_YUV_target :: Bool

module Graphics.GL.Ext.EXT.VertexArrayBgra

-- | Checks that the <a>GL_EXT_vertex_array_bgra</a> extension is
--   available.
gl_EXT_vertex_array_bgra :: Bool

module Graphics.GL.Ext.EXT.UnpackSubimage

-- | Checks that the <a>GL_EXT_unpack_subimage</a> extension is available.
gl_EXT_unpack_subimage :: Bool

module Graphics.GL.Ext.EXT.TimerQuery

-- | Checks that the <a>GL_EXT_timer_query</a> extension is available.
gl_EXT_timer_query :: Bool

-- | Usage: <tt><a>glGetQueryObjecti64vEXT</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetQueryObjecti64v</a>.
glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetQueryObjectui64vEXT</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetQueryObjectui64v</a>.
glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

module Graphics.GL.Ext.EXT.TextureType2101010REV

-- | Checks that the <a>GL_EXT_texture_type_2_10_10_10_REV</a> extension is
--   available.
gl_EXT_texture_type_2_10_10_10_REV :: Bool

module Graphics.GL.Ext.EXT.TextureSwizzle

-- | Checks that the <a>GL_EXT_texture_swizzle</a> extension is available.
gl_EXT_texture_swizzle :: Bool

module Graphics.GL.Ext.EXT.TextureSnorm

-- | Checks that the <a>GL_EXT_texture_snorm</a> extension is available.
gl_EXT_texture_snorm :: Bool

module Graphics.GL.Ext.EXT.TextureSharedExponent

-- | Checks that the <a>GL_EXT_texture_shared_exponent</a> extension is
--   available.
gl_EXT_texture_shared_exponent :: Bool

module Graphics.GL.Ext.EXT.TextureSRGBRG8

-- | Checks that the <a>GL_EXT_texture_sRGB_RG8</a> extension is available.
gl_EXT_texture_sRGB_RG8 :: Bool

module Graphics.GL.Ext.EXT.TextureSRGBR8

-- | Checks that the <a>GL_EXT_texture_sRGB_R8</a> extension is available.
gl_EXT_texture_sRGB_R8 :: Bool

module Graphics.GL.Ext.EXT.TextureSRGBDecode

-- | Checks that the <a>GL_EXT_texture_sRGB_decode</a> extension is
--   available.
gl_EXT_texture_sRGB_decode :: Bool

module Graphics.GL.Ext.EXT.TextureSRGB

-- | Checks that the <a>GL_EXT_texture_sRGB</a> extension is available.
gl_EXT_texture_sRGB :: Bool

module Graphics.GL.Ext.EXT.TextureRg

-- | Checks that the <a>GL_EXT_texture_rg</a> extension is available.
gl_EXT_texture_rg :: Bool

module Graphics.GL.Ext.EXT.TextureNorm16

-- | Checks that the GL_EXT_texture_norm16 extension is available.
gl_EXT_texture_norm16 :: Bool

module Graphics.GL.Ext.EXT.TextureMirrorClamp

-- | Checks that the <a>GL_EXT_texture_mirror_clamp</a> extension is
--   available.
gl_EXT_texture_mirror_clamp :: Bool

module Graphics.GL.Ext.EXT.TextureLodBias

-- | Checks that the <a>GL_EXT_texture_lod_bias</a> extension is available.
gl_EXT_texture_lod_bias :: Bool

module Graphics.GL.Ext.EXT.TextureFormatBGRA8888

-- | Checks that the <a>GL_EXT_texture_format_BGRA8888</a> extension is
--   available.
gl_EXT_texture_format_BGRA8888 :: Bool

module Graphics.GL.Ext.EXT.TextureFilterMinmax

-- | Checks that the <a>GL_EXT_texture_filter_minmax</a> extension is
--   available.
gl_EXT_texture_filter_minmax :: Bool

-- | Usage: <tt><a>glRasterSamplesEXT</a> samples fixedsamplelocations</tt>
glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()

module Graphics.GL.Ext.EXT.TextureFilterAnisotropic

-- | Checks that the <a>GL_EXT_texture_filter_anisotropic</a> extension is
--   available.
gl_EXT_texture_filter_anisotropic :: Bool

module Graphics.GL.Ext.EXT.TextureEnvDot3

-- | Checks that the <a>GL_EXT_texture_env_dot3</a> extension is available.
gl_EXT_texture_env_dot3 :: Bool

module Graphics.GL.Ext.EXT.TextureEnvCombine

-- | Checks that the <a>GL_EXT_texture_env_combine</a> extension is
--   available.
gl_EXT_texture_env_combine :: Bool

module Graphics.GL.Ext.EXT.TextureEnvAdd

-- | Checks that the <a>GL_EXT_texture_env_add</a> extension is available.
gl_EXT_texture_env_add :: Bool

module Graphics.GL.Ext.EXT.TextureCubeMapArray

-- | Checks that the <a>GL_EXT_texture_cube_map_array</a> extension is
--   available.
gl_EXT_texture_cube_map_array :: Bool

module Graphics.GL.Ext.EXT.TextureCubeMap

-- | Checks that the GL_EXT_texture_cube_map extension is available.
gl_EXT_texture_cube_map :: Bool

module Graphics.GL.Ext.EXT.TextureCompressionS3tc

-- | Checks that the <a>GL_EXT_texture_compression_s3tc</a> extension is
--   available.
gl_EXT_texture_compression_s3tc :: Bool

module Graphics.GL.Ext.EXT.TextureCompressionRgtc

-- | Checks that the <a>GL_EXT_texture_compression_rgtc</a> extension is
--   available.
gl_EXT_texture_compression_rgtc :: Bool

module Graphics.GL.Ext.EXT.TextureCompressionLatc

-- | Checks that the <a>GL_EXT_texture_compression_latc</a> extension is
--   available.
gl_EXT_texture_compression_latc :: Bool

module Graphics.GL.Ext.EXT.TextureCompressionDxt1

-- | Checks that the <a>GL_EXT_texture_compression_dxt1</a> extension is
--   available.
gl_EXT_texture_compression_dxt1 :: Bool

module Graphics.GL.Ext.EXT.TextureBufferObject

-- | Checks that the <a>GL_EXT_texture_buffer_object</a> extension is
--   available.
gl_EXT_texture_buffer_object :: Bool

-- | Usage: <tt><a>glTexBufferEXT</a> target internalformat buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   This command is an alias for <a>glTexBuffer</a>.
glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

module Graphics.GL.Ext.EXT.TextureArray

-- | Checks that the <a>GL_EXT_texture_array</a> extension is available.
gl_EXT_texture_array :: Bool

-- | Usage: <tt><a>glFramebufferTextureLayerEXT</a> target attachment
--   texture level layer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glFramebufferTextureLayer</a>.
glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

module Graphics.GL.Ext.EXT.Texture

-- | Checks that the <a>GL_EXT_texture</a> extension is available.
gl_EXT_texture :: Bool

module Graphics.GL.Ext.EXT.TessellationPointSize

-- | Checks that the <a>GL_EXT_tessellation_point_size</a> extension is
--   available.
gl_EXT_tessellation_point_size :: Bool

module Graphics.GL.Ext.EXT.StencilWrap

-- | Checks that the <a>GL_EXT_stencil_wrap</a> extension is available.
gl_EXT_stencil_wrap :: Bool

module Graphics.GL.Ext.EXT.SparseTexture2

-- | Checks that the <a>GL_EXT_sparse_texture2</a> extension is available.
gl_EXT_sparse_texture2 :: Bool

module Graphics.GL.Ext.EXT.SharedTexturePalette

-- | Checks that the <a>GL_EXT_shared_texture_palette</a> extension is
--   available.
gl_EXT_shared_texture_palette :: Bool

module Graphics.GL.Ext.EXT.ShadowSamplers

-- | Checks that the <a>GL_EXT_shadow_samplers</a> extension is available.
gl_EXT_shadow_samplers :: Bool

module Graphics.GL.Ext.EXT.ShadowFuncs

-- | Checks that the <a>GL_EXT_shadow_funcs</a> extension is available.
gl_EXT_shadow_funcs :: Bool

module Graphics.GL.Ext.EXT.ShaderTextureLod

-- | Checks that the <a>GL_EXT_shader_texture_lod</a> extension is
--   available.
gl_EXT_shader_texture_lod :: Bool

module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage

-- | Checks that the <a>GL_EXT_shader_pixel_local_storage</a> extension is
--   available.
gl_EXT_shader_pixel_local_storage :: Bool

module Graphics.GL.Ext.EXT.ShaderNonConstantGlobalInitializers

-- | Checks that the <a>GL_EXT_shader_non_constant_global_initializers</a>
--   extension is available.
gl_EXT_shader_non_constant_global_initializers :: Bool

module Graphics.GL.Ext.EXT.ShaderIoBlocks

-- | Checks that the <a>GL_EXT_shader_io_blocks</a> extension is available.
gl_EXT_shader_io_blocks :: Bool

module Graphics.GL.Ext.EXT.ShaderIntegerMix

-- | Checks that the <a>GL_EXT_shader_integer_mix</a> extension is
--   available.
gl_EXT_shader_integer_mix :: Bool

module Graphics.GL.Ext.EXT.ShaderImplicitConversions

-- | Checks that the <a>GL_EXT_shader_implicit_conversions</a> extension is
--   available.
gl_EXT_shader_implicit_conversions :: Bool

module Graphics.GL.Ext.EXT.ShaderImageLoadFormatted

-- | Checks that the <a>GL_EXT_shader_image_load_formatted</a> extension is
--   available.
gl_EXT_shader_image_load_formatted :: Bool

module Graphics.GL.Ext.EXT.ShaderGroupVote

-- | Checks that the <a>GL_EXT_shader_group_vote</a> extension is
--   available.
gl_EXT_shader_group_vote :: Bool

module Graphics.GL.Ext.EXT.ShaderFramebufferFetch

-- | Checks that the <a>GL_EXT_shader_framebuffer_fetch</a> extension is
--   available.
gl_EXT_shader_framebuffer_fetch :: Bool

module Graphics.GL.Ext.EXT.SeparateSpecularColor

-- | Checks that the <a>GL_EXT_separate_specular_color</a> extension is
--   available.
gl_EXT_separate_specular_color :: Bool

module Graphics.GL.Ext.EXT.SRGBWriteControl

-- | Checks that the <a>GL_EXT_sRGB_write_control</a> extension is
--   available.
gl_EXT_sRGB_write_control :: Bool

module Graphics.GL.Ext.EXT.SRGB

-- | Checks that the <a>GL_EXT_sRGB</a> extension is available.
gl_EXT_sRGB :: Bool

module Graphics.GL.Ext.EXT.RescaleNormal

-- | Checks that the <a>GL_EXT_rescale_normal</a> extension is available.
gl_EXT_rescale_normal :: Bool

module Graphics.GL.Ext.EXT.RenderSnorm

-- | Checks that the GL_EXT_render_snorm extension is available.
gl_EXT_render_snorm :: Bool

module Graphics.GL.Ext.EXT.ReadFormatBgra

-- | Checks that the <a>GL_EXT_read_format_bgra</a> extension is available.
gl_EXT_read_format_bgra :: Bool

module Graphics.GL.Ext.EXT.RasterMultisample

-- | Checks that the <a>GL_EXT_raster_multisample</a> extension is
--   available.
gl_EXT_raster_multisample :: Bool

-- | Usage: <tt><a>glRasterSamplesEXT</a> samples fixedsamplelocations</tt>
glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()

module Graphics.GL.Ext.EXT.PvrtcSRGB

-- | Checks that the <a>GL_EXT_pvrtc_sRGB</a> extension is available.
gl_EXT_pvrtc_sRGB :: Bool

module Graphics.GL.Ext.EXT.ProtectedTextures

-- | Checks that the <a>GL_EXT_protected_textures</a> extension is
--   available.
gl_EXT_protected_textures :: Bool

module Graphics.GL.Ext.EXT.PostDepthCoverage

-- | Checks that the <a>GL_EXT_post_depth_coverage</a> extension is
--   available.
gl_EXT_post_depth_coverage :: Bool

module Graphics.GL.Ext.EXT.PixelTransformColorTable

-- | Checks that the <a>GL_EXT_pixel_transform_color_table</a> extension is
--   available.
gl_EXT_pixel_transform_color_table :: Bool

module Graphics.GL.Ext.EXT.PixelBufferObject

-- | Checks that the <a>GL_EXT_pixel_buffer_object</a> extension is
--   available.
gl_EXT_pixel_buffer_object :: Bool

module Graphics.GL.Ext.EXT.PackedPixels

-- | Checks that the <a>GL_EXT_packed_pixels</a> extension is available.
gl_EXT_packed_pixels :: Bool

module Graphics.GL.Ext.EXT.PackedFloat

-- | Checks that the <a>GL_EXT_packed_float</a> extension is available.
gl_EXT_packed_float :: Bool

module Graphics.GL.Ext.EXT.PackedDepthStencil

-- | Checks that the <a>GL_EXT_packed_depth_stencil</a> extension is
--   available.
gl_EXT_packed_depth_stencil :: Bool

module Graphics.GL.Ext.EXT.OcclusionQueryBoolean

-- | Checks that the <a>GL_EXT_occlusion_query_boolean</a> extension is
--   available.
gl_EXT_occlusion_query_boolean :: Bool

-- | Usage: <tt><a>glBeginQueryEXT</a> target id</tt>
glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteQueriesEXT</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glEndQueryEXT</a> target</tt>
glEndQueryEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGenQueriesEXT</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetQueryObjectuivEXT</a> id pname params</tt>
glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetQueryivEXT</a> target pname params</tt>
glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsQueryEXT</a> id</tt>
glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean

module Graphics.GL.Ext.EXT.MultisampleCompatibility

-- | Checks that the <a>GL_EXT_multisample_compatibility</a> extension is
--   available.
gl_EXT_multisample_compatibility :: Bool

module Graphics.GL.Ext.EXT.MiscAttribute

-- | Checks that the <a>GL_EXT_misc_attribute</a> extension is available.
gl_EXT_misc_attribute :: Bool

module Graphics.GL.Ext.EXT.IndexTexture

-- | Checks that the <a>GL_EXT_index_texture</a> extension is available.
gl_EXT_index_texture :: Bool

module Graphics.GL.Ext.EXT.IndexArrayFormats

-- | Checks that the <a>GL_EXT_index_array_formats</a> extension is
--   available.
gl_EXT_index_array_formats :: Bool

module Graphics.GL.Ext.EXT.GpuShader5

-- | Checks that the <a>GL_EXT_gpu_shader5</a> extension is available.
gl_EXT_gpu_shader5 :: Bool

module Graphics.GL.Ext.EXT.GeometryShader4

-- | Checks that the <a>GL_EXT_geometry_shader4</a> extension is available.
gl_EXT_geometry_shader4 :: Bool

-- | Usage: <tt><a>glProgramParameteriEXT</a> program pname value</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramParameterPName</tt>.
--   
--   This command is an alias for <a>glProgramParameteri</a>.
glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

module Graphics.GL.Ext.EXT.GeometryShader

-- | Checks that the <a>GL_EXT_geometry_shader</a> extension is available.
gl_EXT_geometry_shader :: Bool

-- | Usage: <tt><a>glFramebufferTextureEXT</a> target attachment texture
--   level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

module Graphics.GL.Ext.EXT.GeometryPointSize

-- | Checks that the <a>GL_EXT_geometry_point_size</a> extension is
--   available.
gl_EXT_geometry_point_size :: Bool

module Graphics.GL.Ext.EXT.FramebufferSRGB

-- | Checks that the <a>GL_EXT_framebuffer_sRGB</a> extension is available.
gl_EXT_framebuffer_sRGB :: Bool

module Graphics.GL.Ext.EXT.FramebufferMultisampleBlitScaled

-- | Checks that the <a>GL_EXT_framebuffer_multisample_blit_scaled</a>
--   extension is available.
gl_EXT_framebuffer_multisample_blit_scaled :: Bool

module Graphics.GL.Ext.EXT.FramebufferMultisample

-- | Checks that the <a>GL_EXT_framebuffer_multisample</a> extension is
--   available.
gl_EXT_framebuffer_multisample :: Bool

-- | Usage: <tt><a>glRenderbufferStorageMultisampleEXT</a> target samples
--   internalformat width height</tt>
--   
--   This command is an alias for <a>glRenderbufferStorageMultisample</a>.
glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.FourTwoTwoPixels

-- | Checks that the <a>GL_EXT_422_pixels</a> extension is available.
gl_EXT_422_pixels :: Bool

module Graphics.GL.Ext.EXT.FloatBlend

-- | Checks that the <a>GL_EXT_float_blend</a> extension is available.
gl_EXT_float_blend :: Bool

module Graphics.GL.Ext.EXT.DrawInstanced

-- | Checks that the <a>GL_EXT_draw_instanced</a> extension is available.
gl_EXT_draw_instanced :: Bool

-- | Usage: <tt><a>glDrawArraysInstancedEXT</a> mode start count
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedEXT</a> mode count type indices
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.ConservativeDepth

-- | Checks that the <a>GL_EXT_conservative_depth</a> extension is
--   available.
gl_EXT_conservative_depth :: Bool

module Graphics.GL.Ext.EXT.ColorBufferHalfFloat

-- | Checks that the <a>GL_EXT_color_buffer_half_float</a> extension is
--   available.
gl_EXT_color_buffer_half_float :: Bool

module Graphics.GL.Ext.EXT.ColorBufferFloat

-- | Checks that the <a>GL_EXT_color_buffer_float</a> extension is
--   available.
gl_EXT_color_buffer_float :: Bool

module Graphics.GL.Ext.EXT.Cmyka

-- | Checks that the <a>GL_EXT_cmyka</a> extension is available.
gl_EXT_cmyka :: Bool

module Graphics.GL.Ext.EXT.ClipVolumeHint

-- | Checks that the <a>GL_EXT_clip_volume_hint</a> extension is available.
gl_EXT_clip_volume_hint :: Bool

module Graphics.GL.Ext.EXT.ClipCullDistance

-- | Checks that the <a>GL_EXT_clip_cull_distance</a> extension is
--   available.
gl_EXT_clip_cull_distance :: Bool

module Graphics.GL.Ext.EXT.BlendSubtract

-- | Checks that the <a>GL_EXT_blend_subtract</a> extension is available.
gl_EXT_blend_subtract :: Bool

module Graphics.GL.Ext.EXT.BlendLogicOp

-- | Checks that the <a>GL_EXT_blend_logic_op</a> extension is available.
gl_EXT_blend_logic_op :: Bool

module Graphics.GL.Ext.EXT.Bgra

-- | Checks that the <a>GL_EXT_bgra</a> extension is available.
gl_EXT_bgra :: Bool

module Graphics.GL.Ext.EXT.Abgr

-- | Checks that the <a>GL_EXT_abgr</a> extension is available.
gl_EXT_abgr :: Bool

module Graphics.GL.Ext.DMP.ShaderBinary

-- | Checks that the <a>GL_DMP_shader_binary</a> extension is available.
gl_DMP_shader_binary :: Bool

module Graphics.GL.Ext.DMP.ProgramBinary

-- | Checks that the <a>GL_DMP_program_binary</a> extension is available.
gl_DMP_program_binary :: Bool

module Graphics.GL.Ext.DMP

module Graphics.GL.Ext.ATI.TextureMirrorOnce

-- | Checks that the <a>GL_ATI_texture_mirror_once</a> extension is
--   available.
gl_ATI_texture_mirror_once :: Bool

module Graphics.GL.Ext.ATI.TextureFloat

-- | Checks that the <a>GL_ATI_texture_float</a> extension is available.
gl_ATI_texture_float :: Bool

module Graphics.GL.Ext.ATI.TextureEnvCombine3

-- | Checks that the <a>GL_ATI_texture_env_combine3</a> extension is
--   available.
gl_ATI_texture_env_combine3 :: Bool

module Graphics.GL.Ext.ATI.TextFragmentShader

-- | Checks that the <a>GL_ATI_text_fragment_shader</a> extension is
--   available.
gl_ATI_text_fragment_shader :: Bool

module Graphics.GL.Ext.ATI.PixelFormatFloat

-- | Checks that the <a>GL_ATI_pixel_format_float</a> extension is
--   available.
gl_ATI_pixel_format_float :: Bool

module Graphics.GL.Ext.ATI.Meminfo

-- | Checks that the <a>GL_ATI_meminfo</a> extension is available.
gl_ATI_meminfo :: Bool

module Graphics.GL.Ext.ARM.ShaderFramebufferFetchDepthStencil

-- | Checks that the <a>GL_ARM_shader_framebuffer_fetch_depth_stencil</a>
--   extension is available.
gl_ARM_shader_framebuffer_fetch_depth_stencil :: Bool

module Graphics.GL.Ext.ARM.ShaderFramebufferFetch

-- | Checks that the <a>GL_ARM_shader_framebuffer_fetch</a> extension is
--   available.
gl_ARM_shader_framebuffer_fetch :: Bool

module Graphics.GL.Ext.ARM.Rgba8

-- | Checks that the <a>GL_ARM_rgba8</a> extension is available.
gl_ARM_rgba8 :: Bool

module Graphics.GL.Ext.ARM.MaliShaderBinary

-- | Checks that the <a>GL_ARM_mali_shader_binary</a> extension is
--   available.
gl_ARM_mali_shader_binary :: Bool

module Graphics.GL.Ext.ARM.MaliProgramBinary

-- | Checks that the <a>GL_ARM_mali_program_binary</a> extension is
--   available.
gl_ARM_mali_program_binary :: Bool

module Graphics.GL.Ext.ARM

module Graphics.GL.Ext.ARB.ViewportArray

-- | Checks that the <a>GL_ARB_viewport_array</a> extension is available.
gl_ARB_viewport_array :: Bool

-- | Usage: <tt><a>glDepthRangeArrayv</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glDepthRangeIndexed</a> index n f</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthRangeIndexed.xhtml</a>
glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glGetDoublei_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetFloati_v</a> target index data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glScissorArrayv</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glScissorIndexed</a> index left bottom width height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glScissorIndexed.xhtml</a>
glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glScissorIndexedv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glViewportArrayv</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glViewportIndexedf</a> index x y w h</tt>
glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glViewportIndexedfv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.ARB.VertexType2101010Rev

-- | Checks that the <a>GL_ARB_vertex_type_2_10_10_10_rev</a> extension is
--   available.
gl_ARB_vertex_type_2_10_10_10_rev :: Bool

-- | Usage: <tt><a>glColorP3ui</a> type color</tt>
glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glColorP3uiv</a> type color</tt>
--   
--   The length of <tt>color</tt> should be <tt>1</tt>.
glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glColorP4ui</a> type color</tt>
glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glColorP4uiv</a> type color</tt>
--   
--   The length of <tt>color</tt> should be <tt>1</tt>.
glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP1ui</a> texture type coords</tt>
glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP1uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP2ui</a> texture type coords</tt>
glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP2uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP3ui</a> texture type coords</tt>
glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP3uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP4ui</a> texture type coords</tt>
glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordP4uiv</a> texture type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glNormalP3ui</a> type coords</tt>
glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glNormalP3uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColorP3ui</a> type color</tt>
glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColorP3uiv</a> type color</tt>
--   
--   The length of <tt>color</tt> should be <tt>1</tt>.
glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP1ui</a> type coords</tt>
glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP1uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP2ui</a> type coords</tt>
glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP2uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP3ui</a> type coords</tt>
glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP3uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP4ui</a> type coords</tt>
glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexCoordP4uiv</a> type coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP1ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP1uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP2ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP2uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP3ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP3uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP4ui</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribP4uiv</a> index type normalized value</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexP2ui</a> type value</tt>
glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexP2uiv</a> type value</tt>
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexP3ui</a> type value</tt>
glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexP3uiv</a> type value</tt>
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexP4ui</a> type value</tt>
glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexP4uiv</a> type value</tt>
--   
--   The length of <tt>value</tt> should be <tt>1</tt>.
glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()

module Graphics.GL.Ext.ARB.VertexType10f11f11fRev

-- | Checks that the <a>GL_ARB_vertex_type_10f_11f_11f_rev</a> extension is
--   available.
gl_ARB_vertex_type_10f_11f_11f_rev :: Bool

module Graphics.GL.Ext.ARB.VertexProgram

-- | Checks that the <a>GL_ARB_vertex_program</a> extension is available.
gl_ARB_vertex_program :: Bool

-- | Usage: <tt><a>glBindProgramARB</a> target program</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteProgramsARB</a> n programs</tt>
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDisableVertexAttribArrayARB</a> index</tt>
--   
--   This command is an alias for <a>glDisableVertexAttribArray</a>.
glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glEnableVertexAttribArrayARB</a> index</tt>
--   
--   This command is an alias for <a>glEnableVertexAttribArray</a>.
glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGenProgramsARB</a> n programs</tt>
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetProgramEnvParameterdvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetProgramEnvParameterfvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetProgramLocalParameterdvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetProgramLocalParameterfvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetProgramStringARB</a> target pname string</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramStringPropertyARB</tt>.
--   
--   The length of <tt>string</tt> should be
--   <tt>COMPSIZE(target,pname)</tt>.
glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetProgramivARB</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexAttribPointervARB</a> index pname
--   pointer</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexAttribPointerPropertyARB</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribPointerv</a>.
glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetVertexAttribdvARB</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribdv</a>.
glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetVertexAttribfvARB</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribfv</a>.
glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVertexAttribivARB</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribiv</a>.
glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsProgramARB</a> program</tt>
glIsProgramARB :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glProgramEnvParameter4dARB</a> target index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramEnvParameter4dvARB</a>.
glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramEnvParameter4dvARB</a> target index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramEnvParameter4fARB</a> target index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramEnvParameter4fvARB</a>.
glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramEnvParameter4fvARB</a> target index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramLocalParameter4dARB</a> target index x y z
--   w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramLocalParameter4dvARB</a>.
glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramLocalParameter4dvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramLocalParameter4fARB</a> target index x y z
--   w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramLocalParameter4fvARB</a>.
glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramLocalParameter4fvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramStringARB</a> target format len string</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>ProgramFormatARB</tt>.
--   
--   The length of <tt>string</tt> should be <tt>len</tt>.
glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glVertexAttrib1dARB</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1dvARB</a>.
glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1dv</a>.
glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1fARB</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1fvARB</a>.
glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1fv</a>.
glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1sARB</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1svARB</a>.
glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib1svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1sv</a>.
glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2dARB</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2dvARB</a>.
glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2dv</a>.
glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2fARB</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2fvARB</a>.
glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2fv</a>.
glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2sARB</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2svARB</a>.
glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2sv</a>.
glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3dARB</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3dvARB</a>.
glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3dv</a>.
glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3fARB</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3fvARB</a>.
glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3fv</a>.
glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3sARB</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3svARB</a>.
glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3sv</a>.
glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4NbvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nbv</a>.
glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4NivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Niv</a>.
glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttrib4NsvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nsv</a>.
glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4NubARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4Nub</a>.
glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4NubvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nubv</a>.
glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4NuivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nuiv</a>.
glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib4NusvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nusv</a>.
glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttrib4bvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4bv</a>.
glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4dARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4dvARB</a>.
glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4dv</a>.
glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4fARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4fvARB</a>.
glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4fv</a>.
glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4ivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4iv</a>.
glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttrib4sARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4svARB</a>.
glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4sv</a>.
glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4ubvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4ubv</a>.
glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4uivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4uiv</a>.
glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib4usvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4usv</a>.
glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttribPointerARB</a> index size type normalized
--   stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   This command is an alias for <a>glVertexAttribPointer</a>.
glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.VertexAttribBinding

-- | Checks that the <a>GL_ARB_vertex_attrib_binding</a> extension is
--   available.
gl_ARB_vertex_attrib_binding :: Bool

-- | Usage: <tt><a>glBindVertexBuffer</a> bindingindex buffer offset
--   stride</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffer.xhtml</a>
glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Usage: <tt><a>glVertexAttribBinding</a> attribindex bindingindex</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribBinding.xhtml</a>
glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribFormat</a> attribindex size type
--   normalized relativeoffset</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexAttribFormat.xhtml</a>
glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribIFormat</a> attribindex size type
--   relativeoffset</tt>
glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribLFormat</a> attribindex size type
--   relativeoffset</tt>
glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexBindingDivisor</a> bindingindex divisor</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexBindingDivisor.xhtml</a>
glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()

module Graphics.GL.Ext.ARB.VertexAttrib64bit

-- | Checks that the <a>GL_ARB_vertex_attrib_64bit</a> extension is
--   available.
gl_ARB_vertex_attrib_64bit :: Bool

-- | Usage: <tt><a>glGetVertexAttribLdv</a> index pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL1d</a> index x</tt>
glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL1dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL2d</a> index x y</tt>
glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL2dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL3d</a> index x y z</tt>
glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL3dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL4d</a> index x y z w</tt>
glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL4dv</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribLPointer</a> index size type stride
--   pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>size</tt>.
glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.VertexArrayObject

-- | Checks that the <a>GL_ARB_vertex_array_object</a> extension is
--   available.
gl_ARB_vertex_array_object :: Bool

-- | Usage: <tt><a>glBindVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml</a>
glBindVertexArray :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml</a>
glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenVertexArrays</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml</a>
glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsVertexArray</a> array</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml</a>
glIsVertexArray :: MonadIO m => GLuint -> m GLboolean

module Graphics.GL.Ext.ARB.VertexArrayBgra

-- | Checks that the <a>GL_ARB_vertex_array_bgra</a> extension is
--   available.
gl_ARB_vertex_array_bgra :: Bool

module Graphics.GL.Ext.ARB.UniformBufferObject

-- | Checks that the <a>GL_ARB_uniform_buffer_object</a> extension is
--   available.
gl_ARB_uniform_buffer_object :: Bool

-- | Usage: <tt><a>glBindBufferBase</a> target index buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml</a>
glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindBufferRange</a> target index buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml</a>
glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glGetActiveUniformBlockName</a> program
--   uniformBlockIndex bufSize length uniformBlockName</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml</a>
glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniformBlockiv</a> program uniformBlockIndex
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,uniformBlockIndex,pname)</tt>.
glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetActiveUniformName</a> program uniformIndex bufSize
--   length uniformName</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>uniformName</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformName.xhtml</a>
glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveUniformsiv</a> program uniformCount
--   uniformIndices pname params</tt>
--   
--   The length of <tt>uniformIndices</tt> should be <tt>uniformCount</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(uniformCount,pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml</a>
glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetIntegeri_v</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetUniformBlockIndex</a> program uniformBlockName</tt>
--   
--   The length of <tt>uniformBlockName</tt> should be <tt>COMPSIZE()</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml</a>
glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetUniformIndices</a> program uniformCount
--   uniformNames uniformIndices</tt>
--   
--   The length of <tt>uniformNames</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   The length of <tt>uniformIndices</tt> should be
--   <tt>COMPSIZE(uniformCount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml</a>
glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniformBlockBinding</a> program uniformBlockIndex
--   uniformBlockBinding</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml</a>
glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

module Graphics.GL.Ext.ARB.TransformFeedbackOverflowQuery

-- | Checks that the <a>GL_ARB_transform_feedback_overflow_query</a>
--   extension is available.
gl_ARB_transform_feedback_overflow_query :: Bool

module Graphics.GL.Ext.ARB.TransformFeedbackInstanced

-- | Checks that the <a>GL_ARB_transform_feedback_instanced</a> extension
--   is available.
gl_ARB_transform_feedback_instanced :: Bool

-- | Usage: <tt><a>glDrawTransformFeedbackInstanced</a> mode id
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackInstanced.xhtml</a>
glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawTransformFeedbackStreamInstanced</a> mode id
--   stream instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStreamInstanced.xhtml</a>
glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

module Graphics.GL.Ext.ARB.TransformFeedback3

-- | Checks that the <a>GL_ARB_transform_feedback3</a> extension is
--   available.
gl_ARB_transform_feedback3 :: Bool

-- | Usage: <tt><a>glBeginQueryIndexed</a> target index id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBeginQueryIndexed.xhtml</a>
glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDrawTransformFeedbackStream</a> mode id stream</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStream.xhtml</a>
glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glEndQueryIndexed</a> target index</tt>
glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glGetQueryIndexediv</a> target index pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.ARB.TransformFeedback2

-- | Checks that the <a>GL_ARB_transform_feedback2</a> extension is
--   available.
gl_ARB_transform_feedback2 :: Bool

-- | Usage: <tt><a>glBindTransformFeedback</a> target id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTransformFeedback.xhtml</a>
glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteTransformFeedbacks</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteTransformFeedbacks.xhtml</a>
glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDrawTransformFeedback</a> mode id</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedback.xhtml</a>
glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glGenTransformFeedbacks</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTransformFeedbacks.xhtml</a>
glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsTransformFeedback</a> id</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsTransformFeedback.xhtml</a>
glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glPauseTransformFeedback</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPauseTransformFeedback.xhtml</a>
glPauseTransformFeedback :: MonadIO m => m ()

-- | Usage: <tt><a>glResumeTransformFeedback</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glResumeTransformFeedback.xhtml</a>
glResumeTransformFeedback :: MonadIO m => m ()

module Graphics.GL.Ext.ARB.TimerQuery

-- | Checks that the <a>GL_ARB_timer_query</a> extension is available.
gl_ARB_timer_query :: Bool

-- | Usage: <tt><a>glGetQueryObjecti64v</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetQueryObjectui64v</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glQueryCounter</a> id target</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glQueryCounter.xhtml</a>
glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()

module Graphics.GL.Ext.ARB.TextureView

-- | Checks that the <a>GL_ARB_texture_view</a> extension is available.
gl_ARB_texture_view :: Bool

-- | Usage: <tt><a>glTextureView</a> texture target origtexture
--   internalformat minlevel numlevels minlayer numlayers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTextureView.xhtml</a>
glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

module Graphics.GL.Ext.ARB.TextureSwizzle

-- | Checks that the <a>GL_ARB_texture_swizzle</a> extension is available.
gl_ARB_texture_swizzle :: Bool

module Graphics.GL.Ext.ARB.TextureStorageMultisample

-- | Checks that the <a>GL_ARB_texture_storage_multisample</a> extension is
--   available.
gl_ARB_texture_storage_multisample :: Bool

-- | Usage: <tt><a>glTexStorage2DMultisample</a> target samples
--   internalformat width height fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage2DMultisample.xhtml</a>
glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTexStorage3DMultisample</a> target samples
--   internalformat width height depth fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage3DMultisample.xhtml</a>
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

module Graphics.GL.Ext.ARB.TextureStorage

-- | Checks that the <a>GL_ARB_texture_storage</a> extension is available.
gl_ARB_texture_storage :: Bool

-- | Usage: <tt><a>glTexStorage1D</a> target levels internalformat
--   width</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage1D.xhtml</a>
glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glTexStorage2D</a> target levels internalformat width
--   height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml</a>
glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTexStorage3D</a> target levels internalformat width
--   height depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage3D.xhtml</a>
glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.ARB.TextureStencil8

-- | Checks that the <a>GL_ARB_texture_stencil8</a> extension is available.
gl_ARB_texture_stencil8 :: Bool

module Graphics.GL.Ext.ARB.TextureRgb10A2ui

-- | Checks that the <a>GL_ARB_texture_rgb10_a2ui</a> extension is
--   available.
gl_ARB_texture_rgb10_a2ui :: Bool

module Graphics.GL.Ext.ARB.TextureRg

-- | Checks that the <a>GL_ARB_texture_rg</a> extension is available.
gl_ARB_texture_rg :: Bool

module Graphics.GL.Ext.ARB.TextureRectangle

-- | Checks that the <a>GL_ARB_texture_rectangle</a> extension is
--   available.
gl_ARB_texture_rectangle :: Bool

module Graphics.GL.Ext.ARB.TextureQueryLod

-- | Checks that the <a>GL_ARB_texture_query_lod</a> extension is
--   available.
gl_ARB_texture_query_lod :: Bool

module Graphics.GL.Ext.ARB.TextureQueryLevels

-- | Checks that the <a>GL_ARB_texture_query_levels</a> extension is
--   available.
gl_ARB_texture_query_levels :: Bool

module Graphics.GL.Ext.ARB.TextureNonPowerOfTwo

-- | Checks that the <a>GL_ARB_texture_non_power_of_two</a> extension is
--   available.
gl_ARB_texture_non_power_of_two :: Bool

module Graphics.GL.Ext.ARB.TextureMultisample

-- | Checks that the <a>GL_ARB_texture_multisample</a> extension is
--   available.
gl_ARB_texture_multisample :: Bool

-- | Usage: <tt><a>glGetMultisamplefv</a> pname index val</tt>
--   
--   The length of <tt>val</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSampleMaski</a> maskNumber mask</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleMaski.xhtml</a>
glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Usage: <tt><a>glTexImage2DMultisample</a> target samples
--   internalformat width height fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage2DMultisample.xhtml</a>
glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTexImage3DMultisample</a> target samples
--   internalformat width height depth fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage3DMultisample.xhtml</a>
glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

module Graphics.GL.Ext.ARB.TextureMirroredRepeat

-- | Checks that the <a>GL_ARB_texture_mirrored_repeat</a> extension is
--   available.
gl_ARB_texture_mirrored_repeat :: Bool

module Graphics.GL.Ext.ARB.TextureMirrorClampToEdge

-- | Checks that the <a>GL_ARB_texture_mirror_clamp_to_edge</a> extension
--   is available.
gl_ARB_texture_mirror_clamp_to_edge :: Bool

module Graphics.GL.Ext.ARB.TextureGather

-- | Checks that the <a>GL_ARB_texture_gather</a> extension is available.
gl_ARB_texture_gather :: Bool

module Graphics.GL.Ext.ARB.TextureFloat

-- | Checks that the <a>GL_ARB_texture_float</a> extension is available.
gl_ARB_texture_float :: Bool

module Graphics.GL.Ext.ARB.TextureFilterMinmax

-- | Checks that the <a>GL_ARB_texture_filter_minmax</a> extension is
--   available.
gl_ARB_texture_filter_minmax :: Bool

module Graphics.GL.Ext.ARB.TextureEnvDot3

-- | Checks that the <a>GL_ARB_texture_env_dot3</a> extension is available.
gl_ARB_texture_env_dot3 :: Bool

module Graphics.GL.Ext.ARB.TextureEnvCrossbar

-- | Checks that the <a>GL_ARB_texture_env_crossbar</a> extension is
--   available.
gl_ARB_texture_env_crossbar :: Bool

module Graphics.GL.Ext.ARB.TextureEnvCombine

-- | Checks that the <a>GL_ARB_texture_env_combine</a> extension is
--   available.
gl_ARB_texture_env_combine :: Bool

module Graphics.GL.Ext.ARB.TextureEnvAdd

-- | Checks that the <a>GL_ARB_texture_env_add</a> extension is available.
gl_ARB_texture_env_add :: Bool

module Graphics.GL.Ext.ARB.TextureCubeMapArray

-- | Checks that the <a>GL_ARB_texture_cube_map_array</a> extension is
--   available.
gl_ARB_texture_cube_map_array :: Bool

module Graphics.GL.Ext.ARB.TextureCubeMap

-- | Checks that the <a>GL_ARB_texture_cube_map</a> extension is available.
gl_ARB_texture_cube_map :: Bool

module Graphics.GL.Ext.ARB.TextureCompressionRgtc

-- | Checks that the <a>GL_ARB_texture_compression_rgtc</a> extension is
--   available.
gl_ARB_texture_compression_rgtc :: Bool

module Graphics.GL.Ext.ARB.TextureCompressionBptc

-- | Checks that the <a>GL_ARB_texture_compression_bptc</a> extension is
--   available.
gl_ARB_texture_compression_bptc :: Bool

module Graphics.GL.Ext.ARB.TextureBufferRange

-- | Checks that the <a>GL_ARB_texture_buffer_range</a> extension is
--   available.
gl_ARB_texture_buffer_range :: Bool

-- | Usage: <tt><a>glTexBufferRange</a> target internalformat buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexBufferRange.xhtml</a>
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

module Graphics.GL.Ext.ARB.TextureBufferObjectRgb32

-- | Checks that the <a>GL_ARB_texture_buffer_object_rgb32</a> extension is
--   available.
gl_ARB_texture_buffer_object_rgb32 :: Bool

module Graphics.GL.Ext.ARB.TextureBorderClamp

-- | Checks that the <a>GL_ARB_texture_border_clamp</a> extension is
--   available.
gl_ARB_texture_border_clamp :: Bool

module Graphics.GL.Ext.ARB.TextureBarrier

-- | Checks that the <a>GL_ARB_texture_barrier</a> extension is available.
gl_ARB_texture_barrier :: Bool

-- | Usage: <tt><a>glTextureBarrier</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTextureBarrier.xhtml</a>
glTextureBarrier :: MonadIO m => m ()

module Graphics.GL.Ext.ARB.TessellationShader

-- | Checks that the <a>GL_ARB_tessellation_shader</a> extension is
--   available.
gl_ARB_tessellation_shader :: Bool

-- | Usage: <tt><a>glPatchParameterfv</a> pname values</tt>
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(pname)</tt>.
glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPatchParameteri</a> pname value</tt>
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.ARB.Sync

-- | Checks that the <a>GL_ARB_sync</a> extension is available.
gl_ARB_sync :: Bool

-- | Usage: <tt><a>glClientWaitSync</a> sync flags timeout</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClientWaitSync.xhtml</a>
glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Usage: <tt><a>glDeleteSync</a> sync</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteSync.xhtml</a>
glDeleteSync :: MonadIO m => GLsync -> m ()

-- | Usage: <tt><a>glFenceSync</a> condition flags</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFenceSync.xhtml</a>
glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Usage: <tt><a>glGetInteger64v</a> pname data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetSynciv</a> sync pname bufSize length values</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsSync</a> sync</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsSync.xhtml</a>
glIsSync :: MonadIO m => GLsync -> m GLboolean

-- | Usage: <tt><a>glWaitSync</a> sync flags timeout</tt>
--   
--   The parameter <tt>sync</tt> is a <tt>sync</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glWaitSync.xhtml</a>
glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

module Graphics.GL.Ext.ARB.StencilTexturing

-- | Checks that the <a>GL_ARB_stencil_texturing</a> extension is
--   available.
gl_ARB_stencil_texturing :: Bool

module Graphics.GL.Ext.ARB.SparseTextureClamp

-- | Checks that the <a>GL_ARB_sparse_texture_clamp</a> extension is
--   available.
gl_ARB_sparse_texture_clamp :: Bool

module Graphics.GL.Ext.ARB.SparseTexture2

-- | Checks that the <a>GL_ARB_sparse_texture2</a> extension is available.
gl_ARB_sparse_texture2 :: Bool

module Graphics.GL.Ext.ARB.ShadowAmbient

-- | Checks that the <a>GL_ARB_shadow_ambient</a> extension is available.
gl_ARB_shadow_ambient :: Bool

module Graphics.GL.Ext.ARB.Shadow

-- | Checks that the <a>GL_ARB_shadow</a> extension is available.
gl_ARB_shadow :: Bool

module Graphics.GL.Ext.ARB.ShadingLanguagePacking

-- | Checks that the <a>GL_ARB_shading_language_packing</a> extension is
--   available.
gl_ARB_shading_language_packing :: Bool

module Graphics.GL.Ext.ARB.ShadingLanguage420pack

-- | Checks that the <a>GL_ARB_shading_language_420pack</a> extension is
--   available.
gl_ARB_shading_language_420pack :: Bool

module Graphics.GL.Ext.ARB.ShadingLanguage100

-- | Checks that the <a>GL_ARB_shading_language_100</a> extension is
--   available.
gl_ARB_shading_language_100 :: Bool

module Graphics.GL.Ext.ARB.ShaderViewportLayerArray

-- | Checks that the <a>GL_ARB_shader_viewport_layer_array</a> extension is
--   available.
gl_ARB_shader_viewport_layer_array :: Bool

module Graphics.GL.Ext.ARB.ShaderTextureLod

-- | Checks that the <a>GL_ARB_shader_texture_lod</a> extension is
--   available.
gl_ARB_shader_texture_lod :: Bool

module Graphics.GL.Ext.ARB.ShaderTextureImageSamples

-- | Checks that the <a>GL_ARB_shader_texture_image_samples</a> extension
--   is available.
gl_ARB_shader_texture_image_samples :: Bool

module Graphics.GL.Ext.ARB.ShaderSubroutine

-- | Checks that the <a>GL_ARB_shader_subroutine</a> extension is
--   available.
gl_ARB_shader_subroutine :: Bool

-- | Usage: <tt><a>glGetActiveSubroutineName</a> program shadertype index
--   bufsize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufsize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineName.xhtml</a>
glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveSubroutineUniformName</a> program shadertype
--   index bufsize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufsize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineUniformName.xhtml</a>
glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetActiveSubroutineUniformiv</a> program shadertype
--   index pname values</tt>
--   
--   The length of <tt>values</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramStageiv</a> program shadertype pname
--   values</tt>
--   
--   The length of <tt>values</tt> should be <tt>1</tt>.
glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSubroutineIndex</a> program shadertype name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetSubroutineIndex.xhtml</a>
glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetSubroutineUniformLocation</a> program shadertype
--   name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetSubroutineUniformLocation.xhtml</a>
glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetUniformSubroutineuiv</a> shadertype location
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniformSubroutinesuiv</a> shadertype count
--   indices</tt>
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

module Graphics.GL.Ext.ARB.ShaderStorageBufferObject

-- | Checks that the <a>GL_ARB_shader_storage_buffer_object</a> extension
--   is available.
gl_ARB_shader_storage_buffer_object :: Bool

-- | Usage: <tt><a>glShaderStorageBlockBinding</a> program
--   storageBlockIndex storageBlockBinding</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderStorageBlockBinding.xhtml</a>
glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

module Graphics.GL.Ext.ARB.ShaderStencilExport

-- | Checks that the <a>GL_ARB_shader_stencil_export</a> extension is
--   available.
gl_ARB_shader_stencil_export :: Bool

module Graphics.GL.Ext.ARB.ShaderPrecision

-- | Checks that the <a>GL_ARB_shader_precision</a> extension is available.
gl_ARB_shader_precision :: Bool

module Graphics.GL.Ext.ARB.ShaderImageSize

-- | Checks that the <a>GL_ARB_shader_image_size</a> extension is
--   available.
gl_ARB_shader_image_size :: Bool

module Graphics.GL.Ext.ARB.ShaderImageLoadStore

-- | Checks that the <a>GL_ARB_shader_image_load_store</a> extension is
--   available.
gl_ARB_shader_image_load_store :: Bool

-- | Usage: <tt><a>glBindImageTexture</a> unit texture level layered layer
--   access format</tt>
--   
--   The parameter <tt>layered</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindImageTexture.xhtml</a>
glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glMemoryBarrier</a> barriers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMemoryBarrier.xhtml</a>
glMemoryBarrier :: MonadIO m => GLbitfield -> m ()

module Graphics.GL.Ext.ARB.ShaderGroupVote

-- | Checks that the <a>GL_ARB_shader_group_vote</a> extension is
--   available.
gl_ARB_shader_group_vote :: Bool

module Graphics.GL.Ext.ARB.ShaderDrawParameters

-- | Checks that the <a>GL_ARB_shader_draw_parameters</a> extension is
--   available.
gl_ARB_shader_draw_parameters :: Bool

module Graphics.GL.Ext.ARB.ShaderClock

-- | Checks that the <a>GL_ARB_shader_clock</a> extension is available.
gl_ARB_shader_clock :: Bool

module Graphics.GL.Ext.ARB.ShaderBitEncoding

-- | Checks that the <a>GL_ARB_shader_bit_encoding</a> extension is
--   available.
gl_ARB_shader_bit_encoding :: Bool

module Graphics.GL.Ext.ARB.ShaderBallot

-- | Checks that the <a>GL_ARB_shader_ballot</a> extension is available.
gl_ARB_shader_ballot :: Bool

module Graphics.GL.Ext.ARB.ShaderAtomicCounters

-- | Checks that the <a>GL_ARB_shader_atomic_counters</a> extension is
--   available.
gl_ARB_shader_atomic_counters :: Bool

-- | Usage: <tt><a>glGetActiveAtomicCounterBufferiv</a> program bufferIndex
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetActiveAtomicCounterBufferiv.xhtml</a>
glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.ARB.ShaderAtomicCounterOps

-- | Checks that the <a>GL_ARB_shader_atomic_counter_ops</a> extension is
--   available.
gl_ARB_shader_atomic_counter_ops :: Bool

module Graphics.GL.Ext.ARB.SeparateShaderObjects

-- | Checks that the <a>GL_ARB_separate_shader_objects</a> extension is
--   available.
gl_ARB_separate_shader_objects :: Bool

-- | Usage: <tt><a>glActiveShaderProgram</a> pipeline program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveShaderProgram.xhtml</a>
glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindProgramPipeline.xhtml</a>
glBindProgramPipeline :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCreateShaderProgramv</a> type count strings</tt>
--   
--   The length of <tt>strings</tt> should be <tt>count</tt>.
glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Usage: <tt><a>glDeleteProgramPipelines</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteProgramPipelines.xhtml</a>
glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenProgramPipelines</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenProgramPipelines.xhtml</a>
glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetProgramPipelineInfoLog</a> pipeline bufSize length
--   infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramPipelineInfoLog.xhtml</a>
glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramPipelineiv</a> pipeline pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsProgramPipeline.xhtml</a>
glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glProgramUniform1d</a> program location v0</tt>
glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform1dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform1f</a> program location v0</tt>
glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1i</a> program location v0</tt>
glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1ui</a> program location v0</tt>
glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform1uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2d</a> program location v0 v1</tt>
glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform2dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform2f</a> program location v0 v1</tt>
glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2i</a> program location v0 v1</tt>
glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2ui</a> program location v0 v1</tt>
glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3d</a> program location v0 v1 v2</tt>
glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform3dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform3f</a> program location v0 v1 v2</tt>
glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3i</a> program location v0 v1 v2</tt>
glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3ui</a> program location v0 v1 v2</tt>
glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4d</a> program location v0 v1 v2 v3</tt>
glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform4dv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform4f</a> program location v0 v1 v2 v3</tt>
glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4fv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4i</a> program location v0 v1 v2 v3</tt>
glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4iv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4ui</a> program location v0 v1 v2
--   v3</tt>
glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4uiv</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x3dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x4dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x2dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x4dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x2dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x2fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x3dv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x3fv</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUseProgramStages</a> pipeline stages program</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glUseProgramStages.xhtml</a>
glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Usage: <tt><a>glValidateProgramPipeline</a> pipeline</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glValidateProgramPipeline.xhtml</a>
glValidateProgramPipeline :: MonadIO m => GLuint -> m ()

module Graphics.GL.Ext.ARB.SeamlessCubemapPerTexture

-- | Checks that the <a>GL_ARB_seamless_cubemap_per_texture</a> extension
--   is available.
gl_ARB_seamless_cubemap_per_texture :: Bool

module Graphics.GL.Ext.ARB.SeamlessCubeMap

-- | Checks that the <a>GL_ARB_seamless_cube_map</a> extension is
--   available.
gl_ARB_seamless_cube_map :: Bool

module Graphics.GL.Ext.ARB.SamplerObjects

-- | Checks that the <a>GL_ARB_sampler_objects</a> extension is available.
gl_ARB_sampler_objects :: Bool

-- | Usage: <tt><a>glBindSampler</a> unit sampler</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindSampler.xhtml</a>
glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteSamplers</a> count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteSamplers.xhtml</a>
glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenSamplers</a> count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenSamplers.xhtml</a>
glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetSamplerParameterIiv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSamplerParameterIuiv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetSamplerParameterfv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetSamplerParameteriv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsSampler</a> sampler</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsSampler.xhtml</a>
glIsSampler :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glSamplerParameterIiv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glSamplerParameterIuiv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glSamplerParameterf</a> sampler pname param</tt>
glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glSamplerParameterfv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSamplerParameteri</a> sampler pname param</tt>
glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glSamplerParameteriv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.ARB.RobustnessIsolation

-- | Checks that the <a>GL_ARB_robustness_isolation</a> extension is
--   available.
gl_ARB_robustness_isolation :: Bool

module Graphics.GL.Ext.ARB.RobustBufferAccessBehavior

-- | Checks that the <a>GL_ARB_robust_buffer_access_behavior</a> extension
--   is available.
gl_ARB_robust_buffer_access_behavior :: Bool

module Graphics.GL.Ext.ARB.QueryBufferObject

-- | Checks that the <a>GL_ARB_query_buffer_object</a> extension is
--   available.
gl_ARB_query_buffer_object :: Bool

module Graphics.GL.Ext.ARB.ProvokingVertex

-- | Checks that the <a>GL_ARB_provoking_vertex</a> extension is available.
gl_ARB_provoking_vertex :: Bool

-- | Usage: <tt><a>glProvokingVertex</a> mode</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glProvokingVertex.xhtml</a>
glProvokingVertex :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.ARB.ProgramInterfaceQuery

-- | Checks that the <a>GL_ARB_program_interface_query</a> extension is
--   available.
gl_ARB_program_interface_query :: Bool

-- | Usage: <tt><a>glGetProgramInterfaceiv</a> program programInterface
--   pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramResourceIndex</a> program programInterface
--   name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceIndex.xhtml</a>
glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetProgramResourceLocation</a> program
--   programInterface name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocation.xhtml</a>
glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetProgramResourceLocationIndex</a> program
--   programInterface name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocationIndex.xhtml</a>
glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetProgramResourceName</a> program programInterface
--   index bufSize length name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceName.xhtml</a>
glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramResourceiv</a> program programInterface
--   index propCount props bufSize length params</tt>
--   
--   The length of <tt>props</tt> should be <tt>propCount</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

module Graphics.GL.Ext.ARB.PostDepthCoverage

-- | Checks that the <a>GL_ARB_post_depth_coverage</a> extension is
--   available.
gl_ARB_post_depth_coverage :: Bool

module Graphics.GL.Ext.ARB.PointSprite

-- | Checks that the <a>GL_ARB_point_sprite</a> extension is available.
gl_ARB_point_sprite :: Bool

module Graphics.GL.Ext.ARB.PixelBufferObject

-- | Checks that the <a>GL_ARB_pixel_buffer_object</a> extension is
--   available.
gl_ARB_pixel_buffer_object :: Bool

module Graphics.GL.Ext.ARB.PipelineStatisticsQuery

-- | Checks that the <a>GL_ARB_pipeline_statistics_query</a> extension is
--   available.
gl_ARB_pipeline_statistics_query :: Bool

module Graphics.GL.Ext.ARB.OcclusionQuery2

-- | Checks that the <a>GL_ARB_occlusion_query2</a> extension is available.
gl_ARB_occlusion_query2 :: Bool

module Graphics.GL.Ext.ARB.MultiDrawIndirect

-- | Checks that the <a>GL_ARB_multi_draw_indirect</a> extension is
--   available.
gl_ARB_multi_draw_indirect :: Bool

-- | Usage: <tt><a>glMultiDrawArraysIndirect</a> mode indirect drawcount
--   stride</tt>
--   
--   The length of <tt>indirect</tt> should be
--   <tt>COMPSIZE(drawcount,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawArraysIndirect.xhtml</a>
glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawElementsIndirect</a> mode type indirect
--   drawcount stride</tt>
--   
--   The length of <tt>indirect</tt> should be
--   <tt>COMPSIZE(drawcount,stride)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsIndirect.xhtml</a>
glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.ARB.MultiBind

-- | Checks that the <a>GL_ARB_multi_bind</a> extension is available.
gl_ARB_multi_bind :: Bool

-- | Usage: <tt><a>glBindBuffersBase</a> target first count buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffersBase.xhtml</a>
glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glBindBuffersRange</a> target first count buffers
--   offsets sizes</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>count</tt>.
--   
--   The length of <tt>offsets</tt> should be <tt>count</tt>.
--   
--   The length of <tt>sizes</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffersRange.xhtml</a>
glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()

-- | Usage: <tt><a>glBindImageTextures</a> first count textures</tt>
--   
--   The length of <tt>textures</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindImageTextures.xhtml</a>
glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glBindSamplers</a> first count samplers</tt>
--   
--   The length of <tt>samplers</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindSamplers.xhtml</a>
glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glBindTextures</a> first count textures</tt>
--   
--   The length of <tt>textures</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTextures.xhtml</a>
glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glBindVertexBuffers</a> first count buffers offsets
--   strides</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>count</tt>.
--   
--   The length of <tt>offsets</tt> should be <tt>count</tt>.
--   
--   The length of <tt>strides</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffers.xhtml</a>
glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

module Graphics.GL.Ext.ARB.MapBufferRange

-- | Checks that the <a>GL_ARB_map_buffer_range</a> extension is available.
gl_ARB_map_buffer_range :: Bool

-- | Usage: <tt><a>glFlushMappedBufferRange</a> target offset length</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml</a>
glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glMapBufferRange</a> target offset length access</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessMask</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml</a>
glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())

module Graphics.GL.Ext.ARB.MapBufferAlignment

-- | Checks that the <a>GL_ARB_map_buffer_alignment</a> extension is
--   available.
gl_ARB_map_buffer_alignment :: Bool

module Graphics.GL.Ext.ARB.InvalidateSubdata

-- | Checks that the <a>GL_ARB_invalidate_subdata</a> extension is
--   available.
gl_ARB_invalidate_subdata :: Bool

-- | Usage: <tt><a>glInvalidateBufferData</a> buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferData.xhtml</a>
glInvalidateBufferData :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glInvalidateBufferSubData</a> buffer offset length</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferSubData.xhtml</a>
glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glInvalidateFramebuffer</a> target numAttachments
--   attachments</tt>
--   
--   The length of <tt>attachments</tt> should be <tt>numAttachments</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateFramebuffer.xhtml</a>
glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glInvalidateSubFramebuffer</a> target numAttachments
--   attachments x y width height</tt>
--   
--   The length of <tt>attachments</tt> should be <tt>numAttachments</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateSubFramebuffer.xhtml</a>
glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glInvalidateTexImage</a> texture level</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateTexImage.xhtml</a>
glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()

-- | Usage: <tt><a>glInvalidateTexSubImage</a> texture level xoffset
--   yoffset zoffset width height depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glInvalidateTexSubImage.xhtml</a>
glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.ARB.InternalformatQuery2

-- | Checks that the <a>GL_ARB_internalformat_query2</a> extension is
--   available.
gl_ARB_internalformat_query2 :: Bool

-- | Usage: <tt><a>glGetInternalformati64v</a> target internalformat pname
--   bufSize params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()

module Graphics.GL.Ext.ARB.InternalformatQuery

-- | Checks that the <a>GL_ARB_internalformat_query</a> extension is
--   available.
gl_ARB_internalformat_query :: Bool

-- | Usage: <tt><a>glGetInternalformativ</a> target internalformat pname
--   bufSize params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

module Graphics.GL.Ext.ARB.HalfFloatVertex

-- | Checks that the <a>GL_ARB_half_float_vertex</a> extension is
--   available.
gl_ARB_half_float_vertex :: Bool

module Graphics.GL.Ext.ARB.HalfFloatPixel

-- | Checks that the <a>GL_ARB_half_float_pixel</a> extension is available.
gl_ARB_half_float_pixel :: Bool

module Graphics.GL.Ext.ARB.GpuShaderFp64

-- | Checks that the <a>GL_ARB_gpu_shader_fp64</a> extension is available.
gl_ARB_gpu_shader_fp64 :: Bool

-- | Usage: <tt><a>glGetUniformdv</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniform1d</a> location x</tt>
glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()

-- | Usage: <tt><a>glUniform1dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniform2d</a> location x y</tt>
glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glUniform2dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniform3d</a> location x y z</tt>
glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glUniform3dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniform4d</a> location x y z w</tt>
glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glUniform4dv</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix2dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix2x3dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix2x4dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix3dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix3x2dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix3x4dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix4dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix4x2dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glUniformMatrix4x3dv</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

module Graphics.GL.Ext.ARB.GpuShader5

-- | Checks that the <a>GL_ARB_gpu_shader5</a> extension is available.
gl_ARB_gpu_shader5 :: Bool

module Graphics.GL.Ext.ARB.GetTextureSubImage

-- | Checks that the <a>GL_ARB_get_texture_sub_image</a> extension is
--   available.
gl_ARB_get_texture_sub_image :: Bool

-- | Usage: <tt><a>glGetCompressedTextureSubImage</a> texture level xoffset
--   yoffset zoffset width height depth bufSize pixels</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetCompressedTextureSubImage.xhtml</a>
glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetTextureSubImage</a> texture level xoffset yoffset
--   zoffset width height depth format type bufSize pixels</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTextureSubImage.xhtml</a>
glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.GetProgramBinary

-- | Checks that the <a>GL_ARB_get_program_binary</a> extension is
--   available.
gl_ARB_get_program_binary :: Bool

-- | Usage: <tt><a>glGetProgramBinary</a> program bufSize length
--   binaryFormat binary</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binaryFormat</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binary</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetProgramBinary.xhtml</a>
glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glProgramBinary</a> program binaryFormat binary
--   length</tt>
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml</a>
glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glProgramParameteri</a> program pname value</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramParameterPName</tt>.
glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

module Graphics.GL.Ext.ARB.FramebufferSRGB

-- | Checks that the <a>GL_ARB_framebuffer_sRGB</a> extension is available.
gl_ARB_framebuffer_sRGB :: Bool

module Graphics.GL.Ext.ARB.FramebufferObject

-- | Checks that the <a>GL_ARB_framebuffer_object</a> extension is
--   available.
gl_ARB_framebuffer_object :: Bool

-- | Usage: <tt><a>glBindFramebuffer</a> target framebuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml</a>
glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindRenderbuffer</a> target renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml</a>
glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBlitFramebuffer</a> srcX0 srcY0 srcX1 srcY1 dstX0
--   dstY0 dstX1 dstY1 mask filter</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml</a>
glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Usage: <tt><a>glCheckFramebufferStatus</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml</a>
glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum

-- | Usage: <tt><a>glDeleteFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml</a>
glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml</a>
glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glFramebufferRenderbuffer</a> target attachment
--   renderbuffertarget renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>renderbuffertarget</tt> is a
--   <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml</a>
glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glFramebufferTexture1D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTexture2D</a> target attachment textarget
--   texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTexture3D</a> target attachment textarget
--   texture level zoffset</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTextureLayer</a> target attachment texture
--   level layer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml</a>
glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glGenFramebuffers</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml</a>
glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenRenderbuffers</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml</a>
glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenerateMipmap</a> target</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml</a>
glGenerateMipmap :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGetFramebufferAttachmentParameteriv</a> target
--   attachment pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetRenderbufferParameteriv</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsFramebuffer</a> framebuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml</a>
glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsRenderbuffer</a> renderbuffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml</a>
glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glRenderbufferStorage</a> target internalformat width
--   height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml</a>
glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glRenderbufferStorageMultisample</a> target samples
--   internalformat width height</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml</a>
glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.ARB.FramebufferNoAttachments

-- | Checks that the <a>GL_ARB_framebuffer_no_attachments</a> extension is
--   available.
gl_ARB_framebuffer_no_attachments :: Bool

-- | Usage: <tt><a>glFramebufferParameteri</a> target pname param</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferParameteri.xhtml</a>
glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glGetFramebufferParameteriv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.ARB.FragmentShaderInterlock

-- | Checks that the <a>GL_ARB_fragment_shader_interlock</a> extension is
--   available.
gl_ARB_fragment_shader_interlock :: Bool

module Graphics.GL.Ext.ARB.FragmentShader

-- | Checks that the <a>GL_ARB_fragment_shader</a> extension is available.
gl_ARB_fragment_shader :: Bool

module Graphics.GL.Ext.ARB.FragmentProgramShadow

-- | Checks that the <a>GL_ARB_fragment_program_shadow</a> extension is
--   available.
gl_ARB_fragment_program_shadow :: Bool

module Graphics.GL.Ext.ARB.FragmentProgram

-- | Checks that the <a>GL_ARB_fragment_program</a> extension is available.
gl_ARB_fragment_program :: Bool

-- | Usage: <tt><a>glBindProgramARB</a> target program</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteProgramsARB</a> n programs</tt>
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenProgramsARB</a> n programs</tt>
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetProgramEnvParameterdvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetProgramEnvParameterfvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetProgramLocalParameterdvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetProgramLocalParameterfvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetProgramStringARB</a> target pname string</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramStringPropertyARB</tt>.
--   
--   The length of <tt>string</tt> should be
--   <tt>COMPSIZE(target,pname)</tt>.
glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetProgramivARB</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsProgramARB</a> program</tt>
glIsProgramARB :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glProgramEnvParameter4dARB</a> target index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramEnvParameter4dvARB</a>.
glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramEnvParameter4dvARB</a> target index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramEnvParameter4fARB</a> target index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramEnvParameter4fvARB</a>.
glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramEnvParameter4fvARB</a> target index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramLocalParameter4dARB</a> target index x y z
--   w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramLocalParameter4dvARB</a>.
glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramLocalParameter4dvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramLocalParameter4fARB</a> target index x y z
--   w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramLocalParameter4fvARB</a>.
glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramLocalParameter4fvARB</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramStringARB</a> target format len string</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>ProgramFormatARB</tt>.
--   
--   The length of <tt>string</tt> should be <tt>len</tt>.
glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.FragmentLayerViewport

-- | Checks that the <a>GL_ARB_fragment_layer_viewport</a> extension is
--   available.
gl_ARB_fragment_layer_viewport :: Bool

module Graphics.GL.Ext.ARB.FragmentCoordConventions

-- | Checks that the <a>GL_ARB_fragment_coord_conventions</a> extension is
--   available.
gl_ARB_fragment_coord_conventions :: Bool

module Graphics.GL.Ext.ARB.ExplicitUniformLocation

-- | Checks that the <a>GL_ARB_explicit_uniform_location</a> extension is
--   available.
gl_ARB_explicit_uniform_location :: Bool

module Graphics.GL.Ext.ARB.ExplicitAttribLocation

-- | Checks that the <a>GL_ARB_explicit_attrib_location</a> extension is
--   available.
gl_ARB_explicit_attrib_location :: Bool

module Graphics.GL.Ext.ARB.EnhancedLayouts

-- | Checks that the <a>GL_ARB_enhanced_layouts</a> extension is available.
gl_ARB_enhanced_layouts :: Bool

module Graphics.GL.Ext.ARB.ES3Compatibility

-- | Checks that the <a>GL_ARB_ES3_compatibility</a> extension is
--   available.
gl_ARB_ES3_compatibility :: Bool

module Graphics.GL.Ext.ARB.ES31Compatibility

-- | Checks that the <a>GL_ARB_ES3_1_compatibility</a> extension is
--   available.
gl_ARB_ES3_1_compatibility :: Bool

-- | Usage: <tt><a>glMemoryBarrierByRegion</a> barriers</tt>
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()

module Graphics.GL.Ext.ARB.ES2Compatibility

-- | Checks that the <a>GL_ARB_ES2_compatibility</a> extension is
--   available.
gl_ARB_ES2_compatibility :: Bool

-- | Usage: <tt><a>glClearDepthf</a> d</tt>
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glDepthRangef</a> n f</tt>
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glGetShaderPrecisionFormat</a> shadertype precisiontype
--   range precision</tt>
--   
--   The length of <tt>range</tt> should be <tt>2</tt>.
--   
--   The length of <tt>precision</tt> should be <tt>2</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetShaderPrecisionFormat.xhtml</a>
glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glReleaseShaderCompiler</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReleaseShaderCompiler.xhtml</a>
glReleaseShaderCompiler :: MonadIO m => m ()

-- | Usage: <tt><a>glShaderBinary</a> count shaders binaryformat binary
--   length</tt>
--   
--   The length of <tt>shaders</tt> should be <tt>count</tt>.
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glShaderBinary.xhtml</a>
glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()

module Graphics.GL.Ext.ARB.DrawIndirect

-- | Checks that the <a>GL_ARB_draw_indirect</a> extension is available.
gl_ARB_draw_indirect :: Bool

-- | Usage: <tt><a>glDrawArraysIndirect</a> mode indirect</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysIndirect.xhtml</a>
glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glDrawElementsIndirect</a> mode type indirect</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsIndirect.xhtml</a>
glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.DrawElementsBaseVertex

-- | Checks that the <a>GL_ARB_draw_elements_base_vertex</a> extension is
--   available.
gl_ARB_draw_elements_base_vertex :: Bool

-- | Usage: <tt><a>glDrawElementsBaseVertex</a> mode count type indices
--   basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsBaseVertex.xhtml</a>
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertex</a> mode count type
--   indices instancecount basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertex.xhtml</a>
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glDrawRangeElementsBaseVertex</a> mode start end count
--   type indices basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawRangeElementsBaseVertex.xhtml</a>
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glMultiDrawElementsBaseVertex</a> mode count type
--   indices drawcount basevertex</tt>
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>basevertex</tt> should be
--   <tt>COMPSIZE(drawcount)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsBaseVertex.xhtml</a>
glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()

module Graphics.GL.Ext.ARB.DirectStateAccess

-- | Checks that the <a>GL_ARB_direct_state_access</a> extension is
--   available.
gl_ARB_direct_state_access :: Bool

-- | Usage: <tt><a>glBindTextureUnit</a> unit texture</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTextureUnit.xhtml</a>
glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBlitNamedFramebuffer</a> readFramebuffer
--   drawFramebuffer srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask
--   filter</tt>
glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Usage: <tt><a>glCheckNamedFramebufferStatus</a> framebuffer
--   target</tt>
glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum

-- | Usage: <tt><a>glClearNamedBufferData</a> buffer internalformat format
--   type data</tt>
glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearNamedBufferSubData</a> buffer internalformat
--   offset size format type data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearNamedFramebufferfi</a> framebuffer buffer
--   drawbuffer depth stencil</tt>
glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Usage: <tt><a>glClearNamedFramebufferfv</a> framebuffer buffer
--   drawbuffer value</tt>
glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glClearNamedFramebufferiv</a> framebuffer buffer
--   drawbuffer value</tt>
glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glClearNamedFramebufferuiv</a> framebuffer buffer
--   drawbuffer value</tt>
glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCompressedTextureSubImage1D</a> texture level xoffset
--   width format imageSize data</tt>
glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureSubImage2D</a> texture level xoffset
--   yoffset width height format imageSize data</tt>
glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureSubImage3D</a> texture level xoffset
--   yoffset zoffset width height depth format imageSize data</tt>
glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyNamedBufferSubData</a> readBuffer writeBuffer
--   readOffset writeOffset size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glCopyTextureSubImage1D</a> texture level xoffset x y
--   width</tt>
glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTextureSubImage2D</a> texture level xoffset
--   yoffset x y width height</tt>
glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTextureSubImage3D</a> texture level xoffset
--   yoffset zoffset x y width height</tt>
glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCreateBuffers</a> n buffers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateBuffers.xhtml</a>
glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateFramebuffers</a> n framebuffers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateFramebuffers.xhtml</a>
glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateProgramPipelines</a> n pipelines</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateProgramPipelines.xhtml</a>
glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateQueries</a> target n ids</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateQueries.xhtml</a>
glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateRenderbuffers</a> n renderbuffers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateRenderbuffers.xhtml</a>
glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateSamplers</a> n samplers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateSamplers.xhtml</a>
glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateTextures</a> target n textures</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateTextures.xhtml</a>
glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateTransformFeedbacks</a> n ids</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateTransformFeedbacks.xhtml</a>
glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateVertexArrays</a> n arrays</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateVertexArrays.xhtml</a>
glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDisableVertexArrayAttrib</a> vaobj index</tt>
glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glEnableVertexArrayAttrib</a> vaobj index</tt>
glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glFlushMappedNamedBufferRange</a> buffer offset
--   length</tt>
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glGenerateTextureMipmap</a> texture</tt>
glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGetCompressedTextureImage</a> texture level bufSize
--   pixels</tt>
glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetNamedBufferParameteri64v</a> buffer pname
--   params</tt>
glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetNamedBufferParameteriv</a> buffer pname params</tt>
glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedBufferPointerv</a> buffer pname params</tt>
glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetNamedBufferSubData</a> buffer offset size data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glGetNamedFramebufferAttachmentParameteriv</a>
--   framebuffer attachment pname params</tt>
glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedFramebufferParameteriv</a> framebuffer pname
--   param</tt>
glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedRenderbufferParameteriv</a> renderbuffer pname
--   params</tt>
glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetQueryBufferObjecti64v</a> id buffer pname
--   offset</tt>
glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Usage: <tt><a>glGetQueryBufferObjectiv</a> id buffer pname offset</tt>
glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Usage: <tt><a>glGetQueryBufferObjectui64v</a> id buffer pname
--   offset</tt>
glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Usage: <tt><a>glGetQueryBufferObjectuiv</a> id buffer pname
--   offset</tt>
glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Usage: <tt><a>glGetTextureImage</a> texture level format type bufSize
--   pixels</tt>
glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetTextureLevelParameterfv</a> texture level pname
--   params</tt>
glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTextureLevelParameteriv</a> texture level pname
--   params</tt>
glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTextureParameterIiv</a> texture pname params</tt>
glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTextureParameterIuiv</a> texture pname params</tt>
glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetTextureParameterfv</a> texture pname params</tt>
glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTextureParameteriv</a> texture pname params</tt>
glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTransformFeedbacki64_v</a> xfb pname index
--   param</tt>
glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetTransformFeedbacki_v</a> xfb pname index param</tt>
glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTransformFeedbackiv</a> xfb pname param</tt>
glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexArrayIndexed64iv</a> vaobj index pname
--   param</tt>
glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetVertexArrayIndexediv</a> vaobj index pname
--   param</tt>
glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexArrayiv</a> vaobj pname param</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetVertexArrayiv.xhtml</a>
glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glInvalidateNamedFramebufferData</a> framebuffer
--   numAttachments attachments</tt>
glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glInvalidateNamedFramebufferSubData</a> framebuffer
--   numAttachments attachments x y width height</tt>
glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMapNamedBuffer</a> buffer access</tt>
glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())

-- | Usage: <tt><a>glMapNamedBufferRange</a> buffer offset length
--   access</tt>
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())

-- | Usage: <tt><a>glNamedBufferData</a> buffer size data usage</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glNamedBufferStorage</a> buffer size data flags</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()

-- | Usage: <tt><a>glNamedBufferSubData</a> buffer offset size data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(size)</tt>.
glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glNamedFramebufferDrawBuffer</a> framebuffer buf</tt>
glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glNamedFramebufferDrawBuffers</a> framebuffer n
--   bufs</tt>
glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glNamedFramebufferParameteri</a> framebuffer pname
--   param</tt>
glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glNamedFramebufferReadBuffer</a> framebuffer src</tt>
glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glNamedFramebufferRenderbuffer</a> framebuffer
--   attachment renderbuffertarget renderbuffer</tt>
glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glNamedFramebufferTexture</a> framebuffer attachment
--   texture level</tt>
glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glNamedFramebufferTextureLayer</a> framebuffer
--   attachment texture level layer</tt>
glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glNamedRenderbufferStorage</a> renderbuffer
--   internalformat width height</tt>
glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glNamedRenderbufferStorageMultisample</a> renderbuffer
--   samples internalformat width height</tt>
glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureBuffer</a> texture internalformat buffer</tt>
glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTextureBufferRange</a> texture internalformat buffer
--   offset size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glTextureParameterIiv</a> texture pname params</tt>
glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTextureParameterIuiv</a> texture pname params</tt>
glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTextureParameterf</a> texture pname param</tt>
glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTextureParameterfv</a> texture pname param</tt>
glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTextureParameteri</a> texture pname param</tt>
glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTextureParameteriv</a> texture pname param</tt>
glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTextureStorage1D</a> texture levels internalformat
--   width</tt>
glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage2D</a> texture levels internalformat
--   width height</tt>
glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage2DMultisample</a> texture samples
--   internalformat width height fixedsamplelocations</tt>
glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureStorage3D</a> texture levels internalformat
--   width height depth</tt>
glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage3DMultisample</a> texture samples
--   internalformat width height depth fixedsamplelocations</tt>
glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureSubImage1D</a> texture level xoffset width
--   format type pixels</tt>
glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTextureSubImage2D</a> texture level xoffset yoffset
--   width height format type pixels</tt>
glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTextureSubImage3D</a> texture level xoffset yoffset
--   zoffset width height depth format type pixels</tt>
glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTransformFeedbackBufferBase</a> xfb index buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferBase.xhtml</a>
glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glTransformFeedbackBufferRange</a> xfb index buffer
--   offset size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferRange.xhtml</a>
glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glUnmapNamedBuffer</a> buffer</tt>
glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glVertexArrayAttribBinding</a> vaobj attribindex
--   bindingindex</tt>
glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayAttribFormat</a> vaobj attribindex size
--   type normalized relativeoffset</tt>
glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayAttribIFormat</a> vaobj attribindex size
--   type relativeoffset</tt>
glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayAttribLFormat</a> vaobj attribindex size
--   type relativeoffset</tt>
glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayBindingDivisor</a> vaobj bindingindex
--   divisor</tt>
glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayElementBuffer</a> vaobj buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexArrayElementBuffer.xhtml</a>
glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayVertexBuffer</a> vaobj bindingindex buffer
--   offset stride</tt>
glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Usage: <tt><a>glVertexArrayVertexBuffers</a> vaobj first count buffers
--   offsets strides</tt>
glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

module Graphics.GL.Ext.ARB.DerivativeControl

-- | Checks that the <a>GL_ARB_derivative_control</a> extension is
--   available.
gl_ARB_derivative_control :: Bool

module Graphics.GL.Ext.ARB.DepthTexture

-- | Checks that the <a>GL_ARB_depth_texture</a> extension is available.
gl_ARB_depth_texture :: Bool

module Graphics.GL.Ext.ARB.DepthClamp

-- | Checks that the <a>GL_ARB_depth_clamp</a> extension is available.
gl_ARB_depth_clamp :: Bool

module Graphics.GL.Ext.ARB.DepthBufferFloat

-- | Checks that the <a>GL_ARB_depth_buffer_float</a> extension is
--   available.
gl_ARB_depth_buffer_float :: Bool

module Graphics.GL.Ext.ARB.CullDistance

-- | Checks that the <a>GL_ARB_cull_distance</a> extension is available.
gl_ARB_cull_distance :: Bool

module Graphics.GL.Ext.ARB.CopyImage

-- | Checks that the <a>GL_ARB_copy_image</a> extension is available.
gl_ARB_copy_image :: Bool

-- | Usage: <tt><a>glCopyImageSubData</a> srcName srcTarget srcLevel srcX
--   srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight
--   srcDepth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyImageSubData.xhtml</a>
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.ARB.CopyBuffer

-- | Checks that the <a>GL_ARB_copy_buffer</a> extension is available.
gl_ARB_copy_buffer :: Bool

-- | Usage: <tt><a>glCopyBufferSubData</a> readTarget writeTarget
--   readOffset writeOffset size</tt>
--   
--   The parameter <tt>readOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>writeOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml</a>
glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

module Graphics.GL.Ext.ARB.ConservativeDepth

-- | Checks that the <a>GL_ARB_conservative_depth</a> extension is
--   available.
gl_ARB_conservative_depth :: Bool

module Graphics.GL.Ext.ARB.ConditionalRenderInverted

-- | Checks that the <a>GL_ARB_conditional_render_inverted</a> extension is
--   available.
gl_ARB_conditional_render_inverted :: Bool

module Graphics.GL.Ext.ARB.ComputeShader

-- | Checks that the <a>GL_ARB_compute_shader</a> extension is available.
gl_ARB_compute_shader :: Bool

-- | Usage: <tt><a>glDispatchCompute</a> num_groups_x num_groups_y
--   num_groups_z</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDispatchCompute.xhtml</a>
glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDispatchComputeIndirect</a> indirect</tt>
--   
--   The parameter <tt>indirect</tt> is a <tt>BufferOffset</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDispatchComputeIndirect.xhtml</a>
glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()

module Graphics.GL.Ext.ARB.CompressedTexturePixelStorage

-- | Checks that the <a>GL_ARB_compressed_texture_pixel_storage</a>
--   extension is available.
gl_ARB_compressed_texture_pixel_storage :: Bool

module Graphics.GL.Ext.ARB.Compatibility

-- | Checks that the <a>GL_ARB_compatibility</a> extension is available.
gl_ARB_compatibility :: Bool

module Graphics.GL.Ext.ARB.ClipControl

-- | Checks that the <a>GL_ARB_clip_control</a> extension is available.
gl_ARB_clip_control :: Bool

-- | Usage: <tt><a>glClipControl</a> origin depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClipControl.xhtml</a>
glClipControl :: MonadIO m => GLenum -> GLenum -> m ()

module Graphics.GL.Ext.ARB.ClearTexture

-- | Checks that the <a>GL_ARB_clear_texture</a> extension is available.
gl_ARB_clear_texture :: Bool

-- | Usage: <tt><a>glClearTexImage</a> texture level format type data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearTexImage.xhtml</a>
glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearTexSubImage</a> texture level xoffset yoffset
--   zoffset width height depth format type data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearTexSubImage.xhtml</a>
glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.ClearBufferObject

-- | Checks that the <a>GL_ARB_clear_buffer_object</a> extension is
--   available.
gl_ARB_clear_buffer_object :: Bool

-- | Usage: <tt><a>glClearBufferData</a> target internalformat format type
--   data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearBufferData.xhtml</a>
glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearBufferSubData</a> target internalformat offset
--   size format type data</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearBufferSubData.xhtml</a>
glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.BufferStorage

-- | Checks that the <a>GL_ARB_buffer_storage</a> extension is available.
gl_ARB_buffer_storage :: Bool

-- | Usage: <tt><a>glBufferStorage</a> target size data flags</tt>
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferStorage.xhtml</a>
glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()

module Graphics.GL.Ext.ARB.BlendFuncExtended

-- | Checks that the <a>GL_ARB_blend_func_extended</a> extension is
--   available.
gl_ARB_blend_func_extended :: Bool

-- | Usage: <tt><a>glBindFragDataLocationIndexed</a> program colorNumber
--   index name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocationIndexed.xhtml</a>
glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetFragDataIndex</a> program name</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetFragDataIndex.xhtml</a>
glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

module Graphics.GL.Ext.ARB.BaseInstance

-- | Checks that the <a>GL_ARB_base_instance</a> extension is available.
gl_ARB_base_instance :: Bool

-- | Usage: <tt><a>glDrawArraysInstancedBaseInstance</a> mode first count
--   instancecount baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstancedBaseInstance.xhtml</a>
glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseInstance</a> mode count type
--   indices instancecount baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseInstance.xhtml</a>
glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertexBaseInstance</a> mode
--   count type indices instancecount basevertex baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml</a>
glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()

module Graphics.GL.Ext.ARB.ArraysOfArrays

-- | Checks that the <a>GL_ARB_arrays_of_arrays</a> extension is available.
gl_ARB_arrays_of_arrays :: Bool

module Graphics.GL.Ext.APPLE.Ycbcr422

-- | Checks that the <a>GL_APPLE_ycbcr_422</a> extension is available.
gl_APPLE_ycbcr_422 :: Bool

module Graphics.GL.Ext.APPLE.TransformHint

-- | Checks that the <a>GL_APPLE_transform_hint</a> extension is available.
gl_APPLE_transform_hint :: Bool

module Graphics.GL.Ext.APPLE.TexturePackedFloat

-- | Checks that the <a>GL_APPLE_texture_packed_float</a> extension is
--   available.
gl_APPLE_texture_packed_float :: Bool

module Graphics.GL.Ext.APPLE.TextureMaxLevel

-- | Checks that the <a>GL_APPLE_texture_max_level</a> extension is
--   available.
gl_APPLE_texture_max_level :: Bool

module Graphics.GL.Ext.APPLE.TextureFormatBGRA8888

-- | Checks that the <a>GL_APPLE_texture_format_BGRA8888</a> extension is
--   available.
gl_APPLE_texture_format_BGRA8888 :: Bool

module Graphics.GL.Ext.APPLE.Texture2DLimitedNpot

-- | Checks that the <a>GL_APPLE_texture_2D_limited_npot</a> extension is
--   available.
gl_APPLE_texture_2D_limited_npot :: Bool

module Graphics.GL.Ext.APPLE.SpecularVector

-- | Checks that the <a>GL_APPLE_specular_vector</a> extension is
--   available.
gl_APPLE_specular_vector :: Bool

module Graphics.GL.Ext.APPLE.RowBytes

-- | Checks that the <a>GL_APPLE_row_bytes</a> extension is available.
gl_APPLE_row_bytes :: Bool

module Graphics.GL.Ext.APPLE.Rgb422

-- | Checks that the <a>GL_APPLE_rgb_422</a> extension is available.
gl_APPLE_rgb_422 :: Bool

module Graphics.GL.Ext.APPLE.FloatPixels

-- | Checks that the <a>GL_APPLE_float_pixels</a> extension is available.
gl_APPLE_float_pixels :: Bool

module Graphics.GL.Ext.APPLE.ColorBufferPackedFloat

-- | Checks that the <a>GL_APPLE_color_buffer_packed_float</a> extension is
--   available.
gl_APPLE_color_buffer_packed_float :: Bool

module Graphics.GL.Ext.APPLE.ClipDistance

-- | Checks that the <a>GL_APPLE_clip_distance</a> extension is available.
gl_APPLE_clip_distance :: Bool

module Graphics.GL.Ext.APPLE.ClientStorage

-- | Checks that the <a>GL_APPLE_client_storage</a> extension is available.
gl_APPLE_client_storage :: Bool

module Graphics.GL.Ext.APPLE.AuxDepthStencil

-- | Checks that the <a>GL_APPLE_aux_depth_stencil</a> extension is
--   available.
gl_APPLE_aux_depth_stencil :: Bool

module Graphics.GL.Ext.ANGLE.TextureUsage

-- | Checks that the <a>GL_ANGLE_texture_usage</a> extension is available.
gl_ANGLE_texture_usage :: Bool

module Graphics.GL.Ext.ANGLE.TextureCompressionDxt5

-- | Checks that the <a>GL_ANGLE_texture_compression_dxt5</a> extension is
--   available.
gl_ANGLE_texture_compression_dxt5 :: Bool

module Graphics.GL.Ext.ANGLE.TextureCompressionDxt3

-- | Checks that the <a>GL_ANGLE_texture_compression_dxt3</a> extension is
--   available.
gl_ANGLE_texture_compression_dxt3 :: Bool

module Graphics.GL.Ext.ANGLE.ProgramBinary

-- | Checks that the <a>GL_ANGLE_program_binary</a> extension is available.
gl_ANGLE_program_binary :: Bool

module Graphics.GL.Ext.ANGLE.PackReverseRowOrder

-- | Checks that the <a>GL_ANGLE_pack_reverse_row_order</a> extension is
--   available.
gl_ANGLE_pack_reverse_row_order :: Bool

module Graphics.GL.Ext.ANGLE.DepthTexture

-- | Checks that the <a>GL_ANGLE_depth_texture</a> extension is available.
gl_ANGLE_depth_texture :: Bool

module Graphics.GL.Ext.AMD.VertexShaderViewportIndex

-- | Checks that the <a>GL_AMD_vertex_shader_viewport_index</a> extension
--   is available.
gl_AMD_vertex_shader_viewport_index :: Bool

module Graphics.GL.Ext.AMD.VertexShaderLayer

-- | Checks that the <a>GL_AMD_vertex_shader_layer</a> extension is
--   available.
gl_AMD_vertex_shader_layer :: Bool

module Graphics.GL.Ext.AMD.TransformFeedback4

-- | Checks that the <a>GL_AMD_transform_feedback4</a> extension is
--   available.
gl_AMD_transform_feedback4 :: Bool

module Graphics.GL.Ext.AMD.TransformFeedback3LinesTriangles

-- | Checks that the <a>GL_AMD_transform_feedback3_lines_triangles</a>
--   extension is available.
gl_AMD_transform_feedback3_lines_triangles :: Bool

module Graphics.GL.Ext.AMD.TextureTexture4

-- | Checks that the <a>GL_AMD_texture_texture4</a> extension is available.
gl_AMD_texture_texture4 :: Bool

module Graphics.GL.Ext.AMD.ShaderTrinaryMinmax

-- | Checks that the <a>GL_AMD_shader_trinary_minmax</a> extension is
--   available.
gl_AMD_shader_trinary_minmax :: Bool

module Graphics.GL.Ext.AMD.ShaderStencilExport

-- | Checks that the <a>GL_AMD_shader_stencil_export</a> extension is
--   available.
gl_AMD_shader_stencil_export :: Bool

module Graphics.GL.Ext.AMD.ShaderExplicitVertexParameter

-- | Checks that the <a>GL_AMD_shader_explicit_vertex_parameter</a>
--   extension is available.
gl_AMD_shader_explicit_vertex_parameter :: Bool

module Graphics.GL.Ext.AMD.ShaderBallot

-- | Checks that the <a>GL_AMD_shader_ballot</a> extension is available.
gl_AMD_shader_ballot :: Bool

module Graphics.GL.Ext.AMD.ShaderAtomicCounterOps

-- | Checks that the <a>GL_AMD_shader_atomic_counter_ops</a> extension is
--   available.
gl_AMD_shader_atomic_counter_ops :: Bool

module Graphics.GL.Ext.AMD.SeamlessCubemapPerTexture

-- | Checks that the <a>GL_AMD_seamless_cubemap_per_texture</a> extension
--   is available.
gl_AMD_seamless_cubemap_per_texture :: Bool

module Graphics.GL.Ext.AMD.QueryBufferObject

-- | Checks that the <a>GL_AMD_query_buffer_object</a> extension is
--   available.
gl_AMD_query_buffer_object :: Bool

module Graphics.GL.Ext.AMD.ProgramBinaryZ400

-- | Checks that the <a>GL_AMD_program_binary_Z400</a> extension is
--   available.
gl_AMD_program_binary_Z400 :: Bool

module Graphics.GL.Ext.AMD.PinnedMemory

-- | Checks that the <a>GL_AMD_pinned_memory</a> extension is available.
gl_AMD_pinned_memory :: Bool

module Graphics.GL.Ext.AMD.GpuShaderInt64

-- | Checks that the <a>GL_AMD_gpu_shader_int64</a> extension is available.
gl_AMD_gpu_shader_int64 :: Bool

-- | Usage: <tt><a>glGetUniformi64vNV</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glGetUniformui64vNV</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform1i64NV</a> program location x</tt>
glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform1i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform1ui64NV</a> program location x</tt>
glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform1ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform2i64NV</a> program location x y</tt>
glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform2i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform2ui64NV</a> program location x y</tt>
glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform2ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform3i64NV</a> program location x y z</tt>
glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform3i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform3ui64NV</a> program location x y z</tt>
glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform3ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform4i64NV</a> program location x y z w</tt>
glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform4i64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform4ui64NV</a> program location x y z
--   w</tt>
glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniform4ui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform1i64NV</a> location x</tt>
glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform1i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform1ui64NV</a> location x</tt>
glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform1ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform2i64NV</a> location x y</tt>
glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform2i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform2ui64NV</a> location x y</tt>
glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform2ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform3i64NV</a> location x y z</tt>
glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform3i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform3ui64NV</a> location x y z</tt>
glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform3ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform4i64NV</a> location x y z w</tt>
glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform4i64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glUniform4ui64NV</a> location x y z w</tt>
glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniform4ui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

module Graphics.GL.Ext.AMD.GpuShaderHalfFloat

-- | Checks that the <a>GL_AMD_gpu_shader_half_float</a> extension is
--   available.
gl_AMD_gpu_shader_half_float :: Bool

module Graphics.GL.Ext.AMD.GcnShader

-- | Checks that the <a>GL_AMD_gcn_shader</a> extension is available.
gl_AMD_gcn_shader :: Bool

module Graphics.GL.Ext.AMD.DepthClampSeparate

-- | Checks that the <a>GL_AMD_depth_clamp_separate</a> extension is
--   available.
gl_AMD_depth_clamp_separate :: Bool

module Graphics.GL.Ext.AMD.ConservativeDepth

-- | Checks that the <a>GL_AMD_conservative_depth</a> extension is
--   available.
gl_AMD_conservative_depth :: Bool

module Graphics.GL.Ext.AMD.CompressedATCTexture

-- | Checks that the <a>GL_AMD_compressed_ATC_texture</a> extension is
--   available.
gl_AMD_compressed_ATC_texture :: Bool

module Graphics.GL.Ext.AMD.Compressed3DCTexture

-- | Checks that the <a>GL_AMD_compressed_3DC_texture</a> extension is
--   available.
gl_AMD_compressed_3DC_texture :: Bool

module Graphics.GL.Ext.AMD.BlendMinmaxFactor

-- | Checks that the <a>GL_AMD_blend_minmax_factor</a> extension is
--   available.
gl_AMD_blend_minmax_factor :: Bool

module Graphics.GL.Ext.SUNX.ConstantData

-- | Checks that the <a>GL_SUNX_constant_data</a> extension is available.
gl_SUNX_constant_data :: Bool

-- | Usage: <tt><a>glFinishTextureSUNX</a></tt>
glFinishTextureSUNX :: MonadIO m => m ()

module Graphics.GL.Ext.SUNX

module Graphics.GL.Ext.SGIX.TagSampleBuffer

-- | Checks that the <a>GL_SGIX_tag_sample_buffer</a> extension is
--   available.
gl_SGIX_tag_sample_buffer :: Bool

-- | Usage: <tt><a>glTagSampleBufferSGIX</a></tt>
glTagSampleBufferSGIX :: MonadIO m => m ()

module Graphics.GL.Ext.SGIX.FlushRaster

-- | Checks that the <a>GL_SGIX_flush_raster</a> extension is available.
gl_SGIX_flush_raster :: Bool

-- | Usage: <tt><a>glFlushRasterSGIX</a></tt>
glFlushRasterSGIX :: MonadIO m => m ()

module Graphics.GL.Ext.NV.TextureBarrier

-- | Checks that the <a>GL_NV_texture_barrier</a> extension is available.
gl_NV_texture_barrier :: Bool

-- | Usage: <tt><a>glTextureBarrierNV</a></tt>
glTextureBarrierNV :: MonadIO m => m ()

module Graphics.GL.Ext.MESA.ResizeBuffers

-- | Checks that the <a>GL_MESA_resize_buffers</a> extension is available.
gl_MESA_resize_buffers :: Bool

-- | Usage: <tt><a>glResizeBuffersMESA</a></tt>
glResizeBuffersMESA :: MonadIO m => m ()

module Graphics.GL.Ext.KHR.BlendEquationAdvanced

-- | Checks that the <a>GL_KHR_blend_equation_advanced</a> extension is
--   available.
gl_KHR_blend_equation_advanced :: Bool

-- | Usage: <tt><a>glBlendBarrierKHR</a></tt>
--   
--   This command is an alias for <a>glBlendBarrier</a>.
glBlendBarrierKHR :: MonadIO m => m ()

module Graphics.GL.Ext.INTEL.FramebufferCMAA

-- | Checks that the <a>GL_INTEL_framebuffer_CMAA</a> extension is
--   available.
gl_INTEL_framebuffer_CMAA :: Bool

-- | Usage: <tt><a>glApplyFramebufferAttachmentCMAAINTEL</a></tt>
glApplyFramebufferAttachmentCMAAINTEL :: MonadIO m => m ()

module Graphics.GL.Ext.GREMEDY.FrameTerminator

-- | Checks that the <a>GL_GREMEDY_frame_terminator</a> extension is
--   available.
gl_GREMEDY_frame_terminator :: Bool

-- | Usage: <tt><a>glFrameTerminatorGREMEDY</a></tt>
glFrameTerminatorGREMEDY :: MonadIO m => m ()

module Graphics.GL.Ext.ThreeDFX.Tbuffer

-- | Checks that the <a>GL_3DFX_tbuffer</a> extension is available.
gl_3DFX_tbuffer :: Bool

-- | Usage: <tt><a>glTbufferMask3DFX</a> mask</tt>
glTbufferMask3DFX :: MonadIO m => GLuint -> m ()

module Graphics.GL.Ext.ThreeDFX

module Graphics.GL.Ext.SUN.Vertex

-- | Checks that the <a>GL_SUN_vertex</a> extension is available.
gl_SUN_vertex :: Bool

-- | Usage: <tt><a>glColor3fVertex3fSUN</a> r g b x y z</tt>
glColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glColor3fVertex3fvSUN</a> c v</tt>
--   
--   The length of <tt>c</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColor4fNormal3fVertex3fSUN</a> r g b a nx ny nz x y
--   z</tt>
glColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glColor4fNormal3fVertex3fvSUN</a> c n v</tt>
--   
--   The length of <tt>c</tt> should be <tt>4</tt>.
--   
--   The length of <tt>n</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColor4ubVertex2fSUN</a> r g b a x y</tt>
glColor4ubVertex2fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glColor4ubVertex2fvSUN</a> c v</tt>
--   
--   The length of <tt>c</tt> should be <tt>4</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glColor4ubVertex2fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColor4ubVertex3fSUN</a> r g b a x y z</tt>
glColor4ubVertex3fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glColor4ubVertex3fvSUN</a> c v</tt>
--   
--   The length of <tt>c</tt> should be <tt>4</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor4ubVertex3fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNormal3fVertex3fSUN</a> nx ny nz x y z</tt>
glNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glNormal3fVertex3fvSUN</a> n v</tt>
--   
--   The length of <tt>n</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiColor3fVertex3fSUN</a> rc r g b x y
--   z</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
glReplacementCodeuiColor3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiColor3fVertex3fvSUN</a> rc c v</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
--   
--   The length of <tt>rc</tt> should be <tt>1</tt>.
--   
--   The length of <tt>c</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glReplacementCodeuiColor3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiColor4fNormal3fVertex3fSUN</a> rc r g
--   b a nx ny nz x y z</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
glReplacementCodeuiColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiColor4fNormal3fVertex3fvSUN</a> rc c
--   n v</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
--   
--   The length of <tt>rc</tt> should be <tt>1</tt>.
--   
--   The length of <tt>c</tt> should be <tt>4</tt>.
--   
--   The length of <tt>n</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glReplacementCodeuiColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiColor4ubVertex3fSUN</a> rc r g b a x
--   y z</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
glReplacementCodeuiColor4ubVertex3fSUN :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiColor4ubVertex3fvSUN</a> rc c v</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
--   
--   The length of <tt>rc</tt> should be <tt>1</tt>.
--   
--   The length of <tt>c</tt> should be <tt>4</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glReplacementCodeuiColor4ubVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiNormal3fVertex3fSUN</a> rc nx ny nz x
--   y z</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
glReplacementCodeuiNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiNormal3fVertex3fvSUN</a> rc n v</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
--   
--   The length of <tt>rc</tt> should be <tt>1</tt>.
--   
--   The length of <tt>n</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glReplacementCodeuiNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage:
--   <tt><a>glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN</a> rc
--   s t r g b a nx ny nz x y z</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage:
--   <tt><a>glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN</a> rc
--   tc c n v</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
--   
--   The length of <tt>rc</tt> should be <tt>1</tt>.
--   
--   The length of <tt>tc</tt> should be <tt>2</tt>.
--   
--   The length of <tt>c</tt> should be <tt>4</tt>.
--   
--   The length of <tt>n</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN</a> rc
--   s t nx ny nz x y z</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN</a> rc
--   tc n v</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
--   
--   The length of <tt>rc</tt> should be <tt>1</tt>.
--   
--   The length of <tt>tc</tt> should be <tt>2</tt>.
--   
--   The length of <tt>n</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiTexCoord2fVertex3fSUN</a> rc s t x y
--   z</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
glReplacementCodeuiTexCoord2fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiTexCoord2fVertex3fvSUN</a> rc tc
--   v</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
--   
--   The length of <tt>rc</tt> should be <tt>1</tt>.
--   
--   The length of <tt>tc</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glReplacementCodeuiTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiVertex3fSUN</a> rc x y z</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
glReplacementCodeuiVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glReplacementCodeuiVertex3fvSUN</a> rc v</tt>
--   
--   The parameter <tt>rc</tt> is a <tt>ReplacementCodeSUN</tt>.
--   
--   The length of <tt>rc</tt> should be <tt>1</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glReplacementCodeuiVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fColor3fVertex3fSUN</a> s t r g b x y z</tt>
glTexCoord2fColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fColor3fVertex3fvSUN</a> tc c v</tt>
--   
--   The length of <tt>tc</tt> should be <tt>2</tt>.
--   
--   The length of <tt>c</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord2fColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fColor4fNormal3fVertex3fSUN</a> s t r g b a
--   nx ny nz x y z</tt>
glTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fColor4fNormal3fVertex3fvSUN</a> tc c n
--   v</tt>
--   
--   The length of <tt>tc</tt> should be <tt>2</tt>.
--   
--   The length of <tt>c</tt> should be <tt>4</tt>.
--   
--   The length of <tt>n</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fColor4ubVertex3fSUN</a> s t r g b a x y
--   z</tt>
glTexCoord2fColor4ubVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fColor4ubVertex3fvSUN</a> tc c v</tt>
--   
--   The length of <tt>tc</tt> should be <tt>2</tt>.
--   
--   The length of <tt>c</tt> should be <tt>4</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord2fColor4ubVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fNormal3fVertex3fSUN</a> s t nx ny nz x y
--   z</tt>
glTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fNormal3fVertex3fvSUN</a> tc n v</tt>
--   
--   The length of <tt>tc</tt> should be <tt>2</tt>.
--   
--   The length of <tt>n</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fVertex3fSUN</a> s t x y z</tt>
glTexCoord2fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord2fVertex3fvSUN</a> tc v</tt>
--   
--   The length of <tt>tc</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord4fColor4fNormal3fVertex4fSUN</a> s t p q r g b
--   a nx ny nz x y z w</tt>
glTexCoord4fColor4fNormal3fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord4fColor4fNormal3fVertex4fvSUN</a> tc c n
--   v</tt>
--   
--   The length of <tt>tc</tt> should be <tt>4</tt>.
--   
--   The length of <tt>c</tt> should be <tt>4</tt>.
--   
--   The length of <tt>n</tt> should be <tt>3</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4fColor4fNormal3fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord4fVertex4fSUN</a> s t p q x y z w</tt>
glTexCoord4fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexCoord4fVertex4fvSUN</a> tc v</tt>
--   
--   The length of <tt>tc</tt> should be <tt>4</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.SUN.TriangleList

-- | Checks that the <a>GL_SUN_triangle_list</a> extension is available.
gl_SUN_triangle_list :: Bool

-- | Usage: <tt><a>glReplacementCodePointerSUN</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ReplacementCodeTypeSUN</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glReplacementCodePointerSUN :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glReplacementCodeubSUN</a> code</tt>
glReplacementCodeubSUN :: MonadIO m => GLubyte -> m ()

-- | Usage: <tt><a>glReplacementCodeubvSUN</a> code</tt>
--   
--   The length of <tt>code</tt> should be <tt>COMPSIZE()</tt>.
glReplacementCodeubvSUN :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glReplacementCodeuiSUN</a> code</tt>
glReplacementCodeuiSUN :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glReplacementCodeuivSUN</a> code</tt>
--   
--   The length of <tt>code</tt> should be <tt>COMPSIZE()</tt>.
glReplacementCodeuivSUN :: MonadIO m => Ptr GLuint -> m ()

-- | Usage: <tt><a>glReplacementCodeusSUN</a> code</tt>
glReplacementCodeusSUN :: MonadIO m => GLushort -> m ()

-- | Usage: <tt><a>glReplacementCodeusvSUN</a> code</tt>
--   
--   The length of <tt>code</tt> should be <tt>COMPSIZE()</tt>.
glReplacementCodeusvSUN :: MonadIO m => Ptr GLushort -> m ()

module Graphics.GL.Ext.SUN.MeshArray

-- | Checks that the <a>GL_SUN_mesh_array</a> extension is available.
gl_SUN_mesh_array :: Bool

-- | Usage: <tt><a>glDrawMeshArraysSUN</a> mode first count width</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
glDrawMeshArraysSUN :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.SUN.GlobalAlpha

-- | Checks that the <a>GL_SUN_global_alpha</a> extension is available.
gl_SUN_global_alpha :: Bool

-- | Usage: <tt><a>glGlobalAlphaFactorbSUN</a> factor</tt>
glGlobalAlphaFactorbSUN :: MonadIO m => GLbyte -> m ()

-- | Usage: <tt><a>glGlobalAlphaFactordSUN</a> factor</tt>
glGlobalAlphaFactordSUN :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glGlobalAlphaFactorfSUN</a> factor</tt>
glGlobalAlphaFactorfSUN :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glGlobalAlphaFactoriSUN</a> factor</tt>
glGlobalAlphaFactoriSUN :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glGlobalAlphaFactorsSUN</a> factor</tt>
glGlobalAlphaFactorsSUN :: MonadIO m => GLshort -> m ()

-- | Usage: <tt><a>glGlobalAlphaFactorubSUN</a> factor</tt>
glGlobalAlphaFactorubSUN :: MonadIO m => GLubyte -> m ()

-- | Usage: <tt><a>glGlobalAlphaFactoruiSUN</a> factor</tt>
glGlobalAlphaFactoruiSUN :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGlobalAlphaFactorusSUN</a> factor</tt>
glGlobalAlphaFactorusSUN :: MonadIO m => GLushort -> m ()

module Graphics.GL.Ext.SUN

module Graphics.GL.Ext.SGIX.Sprite

-- | Checks that the <a>GL_SGIX_sprite</a> extension is available.
gl_SGIX_sprite :: Bool

-- | Usage: <tt><a>glSpriteParameterfSGIX</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>SpriteParameterNameSGIX</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glSpriteParameterfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glSpriteParameterfvSGIX</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>SpriteParameterNameSGIX</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glSpriteParameterfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSpriteParameteriSGIX</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>SpriteParameterNameSGIX</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glSpriteParameteriSGIX :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glSpriteParameterivSGIX</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>SpriteParameterNameSGIX</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glSpriteParameterivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.SGIX.ReferencePlane

-- | Checks that the <a>GL_SGIX_reference_plane</a> extension is available.
gl_SGIX_reference_plane :: Bool

-- | Usage: <tt><a>glReferencePlaneSGIX</a> equation</tt>
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glReferencePlaneSGIX :: MonadIO m => Ptr GLdouble -> m ()

module Graphics.GL.Ext.SGIX.PolynomialFfd

-- | Checks that the GL_SGIX_polynomial_ffd extension is available.
gl_SGIX_polynomial_ffd :: Bool

-- | Usage: <tt><a>glDeformSGIX</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>FfdMaskSGIX</tt>, one of: .
glDeformSGIX :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glDeformationMap3dSGIX</a> target u1 u2 ustride uorder
--   v1 v2 vstride vorder w1 w2 wstride worder points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FfdTargetSGIX</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>w1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>w2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>worder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)</tt>.
glDeformationMap3dSGIX :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glDeformationMap3fSGIX</a> target u1 u2 ustride uorder
--   v1 v2 vstride vorder w1 w2 wstride worder points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FfdTargetSGIX</tt>, one of:
--   <a>GL_GEOMETRY_DEFORMATION_SGIX</a>,
--   <a>GL_TEXTURE_DEFORMATION_SGIX</a>.
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>w1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>w2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>worder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)</tt>.
glDeformationMap3fSGIX :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLoadIdentityDeformationMapSGIX</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>FfdMaskSGIX</tt>, one of: .
glLoadIdentityDeformationMapSGIX :: MonadIO m => GLbitfield -> m ()

module Graphics.GL.Ext.SGIX.PixelTexture

-- | Checks that the GL_SGIX_pixel_texture extension is available.
gl_SGIX_pixel_texture :: Bool

-- | Usage: <tt><a>glPixelTexGenSGIX</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PixelTexGenModeSGIX</tt>.
glPixelTexGenSGIX :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.SGIX.ListPriority

-- | Checks that the <a>GL_SGIX_list_priority</a> extension is available.
gl_SGIX_list_priority :: Bool

-- | Usage: <tt><a>glGetListParameterfvSGIX</a> list pname params</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ListParameterName</tt>, one of:
--   <a>GL_LIST_PRIORITY_SGIX</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetListParameterivSGIX</a> list pname params</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ListParameterName</tt>, one of:
--   <a>GL_LIST_PRIORITY_SGIX</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glListParameterfSGIX</a> list pname param</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ListParameterName</tt>, one of:
--   <a>GL_LIST_PRIORITY_SGIX</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glListParameterfSGIX :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glListParameterfvSGIX</a> list pname params</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ListParameterName</tt>, one of:
--   <a>GL_LIST_PRIORITY_SGIX</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glListParameteriSGIX</a> list pname param</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ListParameterName</tt>, one of:
--   <a>GL_LIST_PRIORITY_SGIX</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glListParameteriSGIX :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glListParameterivSGIX</a> list pname params</tt>
--   
--   The parameter <tt>list</tt> is a <tt>List</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ListParameterName</tt>, one of:
--   <a>GL_LIST_PRIORITY_SGIX</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.SGIX.Instruments

-- | Checks that the <a>GL_SGIX_instruments</a> extension is available.
gl_SGIX_instruments :: Bool

-- | Usage: <tt><a>glGetInstrumentsSGIX</a></tt>
glGetInstrumentsSGIX :: MonadIO m => m GLint

-- | Usage: <tt><a>glInstrumentsBufferSGIX</a> size buffer</tt>
--   
--   The length of <tt>buffer</tt> should be <tt>size</tt>.
glInstrumentsBufferSGIX :: MonadIO m => GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glPollInstrumentsSGIX</a> marker_p</tt>
--   
--   The length of <tt>marker_p</tt> should be <tt>1</tt>.
glPollInstrumentsSGIX :: MonadIO m => Ptr GLint -> m GLint

-- | Usage: <tt><a>glReadInstrumentsSGIX</a> marker</tt>
glReadInstrumentsSGIX :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glStartInstrumentsSGIX</a></tt>
glStartInstrumentsSGIX :: MonadIO m => m ()

-- | Usage: <tt><a>glStopInstrumentsSGIX</a> marker</tt>
glStopInstrumentsSGIX :: MonadIO m => GLint -> m ()

module Graphics.GL.Ext.SGIX.IglooInterface

-- | Checks that the GL_SGIX_igloo_interface extension is available.
gl_SGIX_igloo_interface :: Bool

-- | Usage: <tt><a>glIglooInterfaceSGIX</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>IglooFunctionSelectSGIX</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>IglooParameterSGIX</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glIglooInterfaceSGIX :: MonadIO m => GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.SGIX.Framezoom

-- | Checks that the <a>GL_SGIX_framezoom</a> extension is available.
gl_SGIX_framezoom :: Bool

-- | Usage: <tt><a>glFrameZoomSGIX</a> factor</tt>
--   
--   The parameter <tt>factor</tt> is a <tt>CheckedInt32</tt>.
glFrameZoomSGIX :: MonadIO m => GLint -> m ()

module Graphics.GL.Ext.SGIX.FragmentLighting

-- | Checks that the GL_SGIX_fragment_lighting extension is available.
gl_SGIX_fragment_lighting :: Bool

-- | Usage: <tt><a>glFragmentColorMaterialSGIX</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
glFragmentColorMaterialSGIX :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glFragmentLightModelfSGIX</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>FragmentLightModelParameterSGIX</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glFragmentLightModelfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glFragmentLightModelfvSGIX</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>FragmentLightModelParameterSGIX</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFragmentLightModelfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glFragmentLightModeliSGIX</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>FragmentLightModelParameterSGIX</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glFragmentLightModeliSGIX :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glFragmentLightModelivSGIX</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>FragmentLightModelParameterSGIX</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFragmentLightModelivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glFragmentLightfSGIX</a> light pname param</tt>
--   
--   The parameter <tt>light</tt> is a <tt>FragmentLightNameSGIX</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>FragmentLightParameterSGIX</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glFragmentLightfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glFragmentLightfvSGIX</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>FragmentLightNameSGIX</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>FragmentLightParameterSGIX</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glFragmentLightiSGIX</a> light pname param</tt>
--   
--   The parameter <tt>light</tt> is a <tt>FragmentLightNameSGIX</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>FragmentLightParameterSGIX</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glFragmentLightiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glFragmentLightivSGIX</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>FragmentLightNameSGIX</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>FragmentLightParameterSGIX</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glFragmentMaterialfSGIX</a> face pname param</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glFragmentMaterialfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glFragmentMaterialfvSGIX</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glFragmentMaterialiSGIX</a> face pname param</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glFragmentMaterialiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glFragmentMaterialivSGIX</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetFragmentLightfvSGIX</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>FragmentLightNameSGIX</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>FragmentLightParameterSGIX</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFragmentLightivSGIX</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>FragmentLightNameSGIX</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>FragmentLightParameterSGIX</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetFragmentMaterialfvSGIX</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFragmentMaterialivSGIX</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glLightEnviSGIX</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightEnvParameterSGIX</tt>, one
--   of: <a>GL_LIGHT_ENV_MODE_SGIX</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glLightEnviSGIX :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.SGIX.Async

-- | Checks that the <a>GL_SGIX_async</a> extension is available.
gl_SGIX_async :: Bool

-- | Usage: <tt><a>glAsyncMarkerSGIX</a> marker</tt>
glAsyncMarkerSGIX :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteAsyncMarkersSGIX</a> marker range</tt>
glDeleteAsyncMarkersSGIX :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Usage: <tt><a>glFinishAsyncSGIX</a> markerp</tt>
--   
--   The length of <tt>markerp</tt> should be <tt>1</tt>.
glFinishAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint

-- | Usage: <tt><a>glGenAsyncMarkersSGIX</a> range</tt>
glGenAsyncMarkersSGIX :: MonadIO m => GLsizei -> m GLuint

-- | Usage: <tt><a>glIsAsyncMarkerSGIX</a> marker</tt>
glIsAsyncMarkerSGIX :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glPollAsyncSGIX</a> markerp</tt>
--   
--   The length of <tt>markerp</tt> should be <tt>1</tt>.
glPollAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint

module Graphics.GL.Ext.SGIX

module Graphics.GL.Ext.SGIS.TextureFilter4

-- | Checks that the <a>GL_SGIS_texture_filter4</a> extension is available.
gl_SGIS_texture_filter4 :: Bool

-- | Usage: <tt><a>glGetTexFilterFuncSGIS</a> target filter weights</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>filter</tt> is a <tt>TextureFilterSGIS</tt>.
--   
--   The length of <tt>weights</tt> should be
--   <tt>COMPSIZE(target,filter)</tt>.
glGetTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexFilterFuncSGIS</a> target filter n weights</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>filter</tt> is a <tt>TextureFilterSGIS</tt>.
--   
--   The length of <tt>weights</tt> should be <tt>n</tt>.
glTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.SGIS.TextureColorMask

-- | Checks that the <a>GL_SGIS_texture_color_mask</a> extension is
--   available.
gl_SGIS_texture_color_mask :: Bool

-- | Usage: <tt><a>glTextureColorMaskSGIS</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>green</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>blue</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>alpha</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glTextureColorMaskSGIS :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

module Graphics.GL.Ext.SGIS.Texture4D

-- | Checks that the <a>GL_SGIS_texture4D</a> extension is available.
gl_SGIS_texture4D :: Bool

-- | Usage: <tt><a>glTexImage4DSGIS</a> target level internalformat width
--   height depth size4d border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth,size4d)</tt>.
glTexImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexSubImage4DSGIS</a> target level xoffset yoffset
--   zoffset woffset width height depth size4d format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>woffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth,size4d)</tt>.
glTexSubImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.SGIS.SharpenTexture

-- | Checks that the <a>GL_SGIS_sharpen_texture</a> extension is available.
gl_SGIS_sharpen_texture :: Bool

-- | Usage: <tt><a>glGetSharpenTexFuncSGIS</a> target points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The length of <tt>points</tt> should be <tt>COMPSIZE(target)</tt>.
glGetSharpenTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSharpenTexFuncSGIS</a> target n points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The length of <tt>points</tt> should be <tt>n*2</tt>.
glSharpenTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.SGIS.PointParameters

-- | Checks that the GL_SGIS_point_parameters extension is available.
gl_SGIS_point_parameters :: Bool

-- | Usage: <tt><a>glPointParameterfSGIS</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
--   
--   This command is an alias for <a>glPointParameterf</a>.
glPointParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPointParameterfvSGIS</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glPointParameterfv</a>.
glPointParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.SGIS.PixelTexture

-- | Checks that the <a>GL_SGIS_pixel_texture</a> extension is available.
gl_SGIS_pixel_texture :: Bool

-- | Usage: <tt><a>glGetPixelTexGenParameterfvSGIS</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>PixelTexGenParameterNameSGIS</tt>, one of:
--   <a>GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS</a>,
--   <a>GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPixelTexGenParameterivSGIS</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>PixelTexGenParameterNameSGIS</tt>, one of:
--   <a>GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS</a>,
--   <a>GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glPixelTexGenParameterfSGIS</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>PixelTexGenParameterNameSGIS</tt>, one of:
--   <a>GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS</a>,
--   <a>GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPixelTexGenParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPixelTexGenParameterfvSGIS</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>PixelTexGenParameterNameSGIS</tt>, one of:
--   <a>GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS</a>,
--   <a>GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPixelTexGenParameteriSGIS</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>PixelTexGenParameterNameSGIS</tt>, one of:
--   <a>GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS</a>,
--   <a>GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelTexGenParameteriSGIS :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPixelTexGenParameterivSGIS</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>PixelTexGenParameterNameSGIS</tt>, one of:
--   <a>GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS</a>,
--   <a>GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.SGIS.Multisample

-- | Checks that the <a>GL_SGIS_multisample</a> extension is available.
gl_SGIS_multisample :: Bool

-- | Usage: <tt><a>glSampleMaskSGIS</a> value invert</tt>
--   
--   The parameter <tt>value</tt> is a <tt>ClampedFloat32</tt>.
--   
--   The parameter <tt>invert</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   This command is an alias for <a>glSampleMaskEXT</a>.
glSampleMaskSGIS :: MonadIO m => GLclampf -> GLboolean -> m ()

-- | Usage: <tt><a>glSamplePatternSGIS</a> pattern</tt>
--   
--   The parameter <tt>pattern</tt> is a <tt>SamplePatternSGIS</tt>, one
--   of: <a>GL_1PASS_EXT</a>, <a>GL_1PASS_SGIS</a>, <a>GL_2PASS_0_EXT</a>,
--   <a>GL_2PASS_0_SGIS</a>, <a>GL_2PASS_1_EXT</a>, <a>GL_2PASS_1_SGIS</a>,
--   <a>GL_4PASS_0_EXT</a>, <a>GL_4PASS_0_SGIS</a>, <a>GL_4PASS_1_EXT</a>,
--   <a>GL_4PASS_1_SGIS</a>, <a>GL_4PASS_2_EXT</a>, <a>GL_4PASS_2_SGIS</a>,
--   <a>GL_4PASS_3_EXT</a>, <a>GL_4PASS_3_SGIS</a>.
--   
--   This command is an alias for <a>glSamplePatternEXT</a>.
glSamplePatternSGIS :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.SGIS.FogFunction

-- | Checks that the GL_SGIS_fog_function extension is available.
gl_SGIS_fog_function :: Bool

-- | Usage: <tt><a>glFogFuncSGIS</a> n points</tt>
--   
--   The length of <tt>points</tt> should be <tt>n*2</tt>.
glFogFuncSGIS :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFogFuncSGIS</a> points</tt>
--   
--   The length of <tt>points</tt> should be <tt>COMPSIZE()</tt>.
glGetFogFuncSGIS :: MonadIO m => Ptr GLfloat -> m ()

module Graphics.GL.Ext.SGIS.DetailTexture

-- | Checks that the <a>GL_SGIS_detail_texture</a> extension is available.
gl_SGIS_detail_texture :: Bool

-- | Usage: <tt><a>glDetailTexFuncSGIS</a> target n points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The length of <tt>points</tt> should be <tt>n*2</tt>.
glDetailTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetDetailTexFuncSGIS</a> target points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The length of <tt>points</tt> should be <tt>COMPSIZE(target)</tt>.
glGetDetailTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.SGIS

module Graphics.GL.Ext.SGI.ColorTable

-- | Checks that the <a>GL_SGI_color_table</a> extension is available.
gl_SGI_color_table :: Bool

-- | Usage: <tt><a>glColorTableParameterfvSGI</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTargetSGI</tt>, one
--   of: <a>GL_COLOR_TABLE</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_COLOR_TABLE</a>, <a>GL_PROXY_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>ColorTableParameterPNameSGI</tt>, one of:
--   <a>GL_COLOR_TABLE_BIAS</a>, <a>GL_COLOR_TABLE_BIAS_SGI</a>,
--   <a>GL_COLOR_TABLE_SCALE</a>, <a>GL_COLOR_TABLE_SCALE_SGI</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glColorTableParameterfv</a>.
glColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColorTableParameterivSGI</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTargetSGI</tt>, one
--   of: <a>GL_COLOR_TABLE</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_COLOR_TABLE</a>, <a>GL_PROXY_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>ColorTableParameterPNameSGI</tt>, one of:
--   <a>GL_COLOR_TABLE_BIAS</a>, <a>GL_COLOR_TABLE_BIAS_SGI</a>,
--   <a>GL_COLOR_TABLE_SCALE</a>, <a>GL_COLOR_TABLE_SCALE_SGI</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glColorTableParameteriv</a>.
glColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glColorTableSGI</a> target internalformat width format
--   type table</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTargetSGI</tt>, one
--   of: <a>GL_COLOR_TABLE</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_COLOR_TABLE</a>, <a>GL_PROXY_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>table</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   This command is an alias for <a>glColorTable</a>.
glColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyColorTableSGI</a> target internalformat x y
--   width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTargetSGI</tt>, one
--   of: <a>GL_COLOR_TABLE</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_COLOR_TABLE</a>, <a>GL_PROXY_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   This command is an alias for <a>glCopyColorTable</a>.
glCopyColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glGetColorTableParameterfvSGI</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTargetSGI</tt>, one
--   of: <a>GL_COLOR_TABLE</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_COLOR_TABLE</a>, <a>GL_PROXY_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetColorTableParameterPNameSGI</tt>, one of:
--   <a>GL_COLOR_TABLE_ALPHA_SIZE_SGI</a>, <a>GL_COLOR_TABLE_BIAS_SGI</a>,
--   <a>GL_COLOR_TABLE_BLUE_SIZE_SGI</a>, <a>GL_COLOR_TABLE_FORMAT_SGI</a>,
--   <a>GL_COLOR_TABLE_GREEN_SIZE_SGI</a>,
--   <a>GL_COLOR_TABLE_INTENSITY_SIZE_SGI</a>,
--   <a>GL_COLOR_TABLE_LUMINANCE_SIZE_SGI</a>,
--   <a>GL_COLOR_TABLE_RED_SIZE_SGI</a>, <a>GL_COLOR_TABLE_SCALE_SGI</a>,
--   <a>GL_COLOR_TABLE_WIDTH_SGI</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetColorTableParameterivSGI</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTargetSGI</tt>, one
--   of: <a>GL_COLOR_TABLE</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_COLOR_TABLE</a>, <a>GL_PROXY_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetColorTableParameterPNameSGI</tt>, one of:
--   <a>GL_COLOR_TABLE_ALPHA_SIZE_SGI</a>, <a>GL_COLOR_TABLE_BIAS_SGI</a>,
--   <a>GL_COLOR_TABLE_BLUE_SIZE_SGI</a>, <a>GL_COLOR_TABLE_FORMAT_SGI</a>,
--   <a>GL_COLOR_TABLE_GREEN_SIZE_SGI</a>,
--   <a>GL_COLOR_TABLE_INTENSITY_SIZE_SGI</a>,
--   <a>GL_COLOR_TABLE_LUMINANCE_SIZE_SGI</a>,
--   <a>GL_COLOR_TABLE_RED_SIZE_SGI</a>, <a>GL_COLOR_TABLE_SCALE_SGI</a>,
--   <a>GL_COLOR_TABLE_WIDTH_SGI</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetColorTableSGI</a> target format type table</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTargetSGI</tt>, one
--   of: <a>GL_COLOR_TABLE</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_COLOR_TABLE</a>, <a>GL_PROXY_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE</a>,
--   <a>GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_PROXY_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>table</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.SGI

module Graphics.GL.Ext.QCOM.TiledRendering

-- | Checks that the <a>GL_QCOM_tiled_rendering</a> extension is available.
gl_QCOM_tiled_rendering :: Bool

-- | Usage: <tt><a>glEndTilingQCOM</a> preserveMask</tt>
glEndTilingQCOM :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glStartTilingQCOM</a> x y width height preserveMask</tt>
glStartTilingQCOM :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> m ()

module Graphics.GL.Ext.QCOM.ExtendedGet2

-- | Checks that the <a>GL_QCOM_extended_get2</a> extension is available.
gl_QCOM_extended_get2 :: Bool

-- | Usage: <tt><a>glExtGetProgramBinarySourceQCOM</a> program shadertype
--   source length</tt>
glExtGetProgramBinarySourceQCOM :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> m ()

-- | Usage: <tt><a>glExtGetProgramsQCOM</a> programs maxPrograms
--   numPrograms</tt>
--   
--   The length of <tt>programs</tt> should be <tt>maxPrograms</tt>.
--   
--   The length of <tt>numPrograms</tt> should be <tt>1</tt>.
glExtGetProgramsQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glExtGetShadersQCOM</a> shaders maxShaders
--   numShaders</tt>
--   
--   The length of <tt>shaders</tt> should be <tt>maxShaders</tt>.
--   
--   The length of <tt>numShaders</tt> should be <tt>1</tt>.
glExtGetShadersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glExtIsProgramBinaryQCOM</a> program</tt>
glExtIsProgramBinaryQCOM :: MonadIO m => GLuint -> m GLboolean

module Graphics.GL.Ext.QCOM.ExtendedGet

-- | Checks that the <a>GL_QCOM_extended_get</a> extension is available.
gl_QCOM_extended_get :: Bool

-- | Usage: <tt><a>glExtGetBufferPointervQCOM</a> target params</tt>
glExtGetBufferPointervQCOM :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glExtGetBuffersQCOM</a> buffers maxBuffers
--   numBuffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>maxBuffers</tt>.
--   
--   The length of <tt>numBuffers</tt> should be <tt>1</tt>.
glExtGetBuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glExtGetFramebuffersQCOM</a> framebuffers
--   maxFramebuffers numFramebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be
--   <tt>maxFramebuffers</tt>.
--   
--   The length of <tt>numFramebuffers</tt> should be <tt>1</tt>.
glExtGetFramebuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glExtGetRenderbuffersQCOM</a> renderbuffers
--   maxRenderbuffers numRenderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be
--   <tt>maxRenderbuffers</tt>.
--   
--   The length of <tt>numRenderbuffers</tt> should be <tt>1</tt>.
glExtGetRenderbuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glExtGetTexLevelParameterivQCOM</a> texture face level
--   pname params</tt>
glExtGetTexLevelParameterivQCOM :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glExtGetTexSubImageQCOM</a> target level xoffset yoffset
--   zoffset width height depth format type texels</tt>
glExtGetTexSubImageQCOM :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glExtGetTexturesQCOM</a> textures maxTextures
--   numTextures</tt>
glExtGetTexturesQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glExtTexObjectStateOverrideiQCOM</a> target pname
--   param</tt>
glExtTexObjectStateOverrideiQCOM :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

module Graphics.GL.Ext.QCOM.DriverControl

-- | Checks that the <a>GL_QCOM_driver_control</a> extension is available.
gl_QCOM_driver_control :: Bool

-- | Usage: <tt><a>glDisableDriverControlQCOM</a> driverControl</tt>
glDisableDriverControlQCOM :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glEnableDriverControlQCOM</a> driverControl</tt>
glEnableDriverControlQCOM :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGetDriverControlStringQCOM</a> driverControl bufSize
--   length driverControlString</tt>
--   
--   The length of <tt>driverControlString</tt> should be <tt>bufSize</tt>.
glGetDriverControlStringQCOM :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetDriverControlsQCOM</a> num size driverControls</tt>
--   
--   The length of <tt>driverControls</tt> should be <tt>size</tt>.
glGetDriverControlsQCOM :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()

module Graphics.GL.Ext.QCOM.AlphaTest

-- | Checks that the <a>GL_QCOM_alpha_test</a> extension is available.
gl_QCOM_alpha_test :: Bool

-- | Usage: <tt><a>glAlphaFuncQCOM</a> func ref</tt>
glAlphaFuncQCOM :: MonadIO m => GLenum -> GLclampf -> m ()

module Graphics.GL.Ext.QCOM

module Graphics.GL.Ext.PGI.MiscHints

-- | Checks that the <a>GL_PGI_misc_hints</a> extension is available.
gl_PGI_misc_hints :: Bool

-- | Usage: <tt><a>glHintPGI</a> target mode</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HintTargetPGI</tt>.
glHintPGI :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.PGI

module Graphics.GL.Ext.OVR.MultiviewMultisampledRenderToTexture

-- | Checks that the <a>GL_OVR_multiview_multisampled_render_to_texture</a>
--   extension is available.
gl_OVR_multiview_multisampled_render_to_texture :: Bool

-- | Usage: <tt><a>glFramebufferTextureMultisampleMultiviewOVR</a> target
--   attachment texture level samples baseViewIndex numViews</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
glFramebufferTextureMultisampleMultiviewOVR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> m ()

module Graphics.GL.Ext.OVR.Multiview

-- | Checks that the <a>GL_OVR_multiview</a> extension is available.
gl_OVR_multiview :: Bool

-- | Usage: <tt><a>glFramebufferTextureMultiviewOVR</a> target attachment
--   texture level baseViewIndex numViews</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
glFramebufferTextureMultiviewOVR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> m ()

module Graphics.GL.Ext.OVR

module Graphics.GL.Ext.OES.ViewportArray

-- | Checks that the <a>GL_OES_viewport_array</a> extension is available.
gl_OES_viewport_array :: Bool

-- | Usage: <tt><a>glDepthRangeArrayfvOES</a> first count v</tt>
glDepthRangeArrayfvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glDepthRangeIndexedfOES</a> index n f</tt>
glDepthRangeIndexedfOES :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glDisableiOES</a> target index</tt>
--   
--   This command is an alias for <a>glDisablei</a>.
glDisableiOES :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEnableiOES</a> target index</tt>
--   
--   This command is an alias for <a>glEnablei</a>.
glEnableiOES :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glGetFloati_vOES</a> target index data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetFloati_v</a>.
glGetFloati_vOES :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glIsEnablediOES</a> target index</tt>
--   
--   This command is an alias for <a>glIsEnabledi</a>.
glIsEnablediOES :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Usage: <tt><a>glScissorArrayvOES</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
--   
--   This command is an alias for <a>glScissorArrayv</a>.
glScissorArrayvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glScissorIndexedOES</a> index left bottom width
--   height</tt>
--   
--   This command is an alias for <a>glScissorIndexed</a>.
glScissorIndexedOES :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glScissorIndexedvOES</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glScissorIndexedv</a>.
glScissorIndexedvOES :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glViewportArrayvOES</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
--   
--   This command is an alias for <a>glViewportArrayv</a>.
glViewportArrayvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glViewportIndexedfOES</a> index x y w h</tt>
--   
--   This command is an alias for <a>glViewportIndexedf</a>.
glViewportIndexedfOES :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glViewportIndexedfvOES</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glViewportIndexedfv</a>.
glViewportIndexedfvOES :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.OES.VertexArrayObject

-- | Checks that the <a>GL_OES_vertex_array_object</a> extension is
--   available.
gl_OES_vertex_array_object :: Bool

-- | Usage: <tt><a>glBindVertexArrayOES</a> array</tt>
--   
--   This command is an alias for <a>glBindVertexArray</a>.
glBindVertexArrayOES :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteVertexArraysOES</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDeleteVertexArrays</a>.
glDeleteVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenVertexArraysOES</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glGenVertexArrays</a>.
glGenVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsVertexArrayOES</a> array</tt>
--   
--   This command is an alias for <a>glIsVertexArray</a>.
glIsVertexArrayOES :: MonadIO m => GLuint -> m GLboolean

module Graphics.GL.Ext.OES.TextureView

-- | Checks that the <a>GL_OES_texture_view</a> extension is available.
gl_OES_texture_view :: Bool

-- | Usage: <tt><a>glTextureViewOES</a> texture target origtexture
--   internalformat minlevel numlevels minlayer numlayers</tt>
--   
--   This command is an alias for <a>glTextureView</a>.
glTextureViewOES :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

module Graphics.GL.Ext.OES.TextureStorageMultisample2dArray

-- | Checks that the <a>GL_OES_texture_storage_multisample_2d_array</a>
--   extension is available.
gl_OES_texture_storage_multisample_2d_array :: Bool

-- | Usage: <tt><a>glTexStorage3DMultisampleOES</a> target samples
--   internalformat width height depth fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   This command is an alias for <a>glTexStorage3DMultisample</a>.
glTexStorage3DMultisampleOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

module Graphics.GL.Ext.OES.TextureCubeMap

-- | Checks that the <a>GL_OES_texture_cube_map</a> extension is available.
gl_OES_texture_cube_map :: Bool

-- | Usage: <tt><a>glGetTexGenfvOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexGenivOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexGenxvOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTexGenfOES</a> coord pname param</tt>
glTexGenfOES :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexGenfvOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexGeniOES</a> coord pname param</tt>
glTexGeniOES :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexGenivOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexGenxOES</a> coord pname param</tt>
glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glTexGenxvOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

module Graphics.GL.Ext.OES.TextureBuffer

-- | Checks that the <a>GL_OES_texture_buffer</a> extension is available.
gl_OES_texture_buffer :: Bool

-- | Usage: <tt><a>glTexBufferOES</a> target internalformat buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   This command is an alias for <a>glTexBuffer</a>.
glTexBufferOES :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexBufferRangeOES</a> target internalformat buffer
--   offset size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   This command is an alias for <a>glTexBufferRange</a>.
glTexBufferRangeOES :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

module Graphics.GL.Ext.OES.TextureBorderClamp

-- | Checks that the <a>GL_OES_texture_border_clamp</a> extension is
--   available.
gl_OES_texture_border_clamp :: Bool

-- | Usage: <tt><a>glGetSamplerParameterIivOES</a> sampler pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetSamplerParameterIiv</a>.
glGetSamplerParameterIivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSamplerParameterIuivOES</a> sampler pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetSamplerParameterIuiv</a>.
glGetSamplerParameterIuivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetTexParameterIivOES</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetTexParameterIiv</a>.
glGetTexParameterIivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexParameterIuivOES</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetTexParameterIuiv</a>.
glGetTexParameterIuivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glSamplerParameterIivOES</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glSamplerParameterIiv</a>.
glSamplerParameterIivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glSamplerParameterIuivOES</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glSamplerParameterIuiv</a>.
glSamplerParameterIuivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexParameterIivOES</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glTexParameterIiv</a>.
glTexParameterIivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexParameterIuivOES</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glTexParameterIuiv</a>.
glTexParameterIuivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

module Graphics.GL.Ext.OES.Texture3D

-- | Checks that the <a>GL_OES_texture_3D</a> extension is available.
gl_OES_texture_3D :: Bool

-- | Usage: <tt><a>glCompressedTexImage3DOES</a> target level
--   internalformat width height depth border imageSize data</tt>
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   This command is an alias for <a>glCompressedTexImage3D</a>.
glCompressedTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage3DOES</a> target level xoffset
--   yoffset zoffset width height depth format imageSize data</tt>
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   This command is an alias for <a>glCompressedTexSubImage3D</a>.
glCompressedTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyTexSubImage3DOES</a> target level xoffset yoffset
--   zoffset x y width height</tt>
--   
--   This command is an alias for <a>glCopyTexSubImage3D</a>.
glCopyTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glFramebufferTexture3DOES</a> target attachment
--   textarget texture level zoffset</tt>
--   
--   This command is an alias for <a>glFramebufferTexture3D</a>.
glFramebufferTexture3DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glTexImage3DOES</a> target level internalformat width
--   height depth border format type pixels</tt>
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   This command is an alias for <a>glTexImage3D</a>.
glTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexSubImage3DOES</a> target level xoffset yoffset
--   zoffset width height depth format type pixels</tt>
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   This command is an alias for <a>glTexSubImage3D</a>.
glTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.OES.TessellationShader

-- | Checks that the <a>GL_OES_tessellation_shader</a> extension is
--   available.
gl_OES_tessellation_shader :: Bool

-- | Usage: <tt><a>glPatchParameteriOES</a> pname value</tt>
--   
--   This command is an alias for <a>glPatchParameteri</a>.
glPatchParameteriOES :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.OES.SinglePrecision

-- | Checks that the <a>GL_OES_single_precision</a> extension is available.
gl_OES_single_precision :: Bool

-- | Usage: <tt><a>glClearDepthfOES</a> depth</tt>
--   
--   The parameter <tt>depth</tt> is a <tt>ClampedFloat32</tt>.
--   
--   This command is an alias for <a>glClearDepthf</a>.
glClearDepthfOES :: MonadIO m => GLclampf -> m ()

-- | Usage: <tt><a>glClipPlanefOES</a> plane equation</tt>
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glDepthRangefOES</a> n f</tt>
--   
--   The parameter <tt>n</tt> is a <tt>ClampedFloat32</tt>.
--   
--   The parameter <tt>f</tt> is a <tt>ClampedFloat32</tt>.
--   
--   This command is an alias for <a>glDepthRangef</a>.
glDepthRangefOES :: MonadIO m => GLclampf -> GLclampf -> m ()

-- | Usage: <tt><a>glFrustumfOES</a> l r b t n f</tt>
glFrustumfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glGetClipPlanefOES</a> plane equation</tt>
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glGetClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glOrthofOES</a> l r b t n f</tt>
glOrthofOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

module Graphics.GL.Ext.OES.SampleShading

-- | Checks that the <a>GL_OES_sample_shading</a> extension is available.
gl_OES_sample_shading :: Bool

-- | Usage: <tt><a>glMinSampleShadingOES</a> value</tt>
--   
--   The parameter <tt>value</tt> is a <tt>ColorF</tt>.
--   
--   This command is an alias for <a>glMinSampleShading</a>.
glMinSampleShadingOES :: MonadIO m => GLfloat -> m ()

module Graphics.GL.Ext.OES.QueryMatrix

-- | Checks that the <a>GL_OES_query_matrix</a> extension is available.
gl_OES_query_matrix :: Bool

-- | Usage: <tt><a>glQueryMatrixxOES</a> mantissa exponent</tt>
--   
--   The length of <tt>mantissa</tt> should be <tt>16</tt>.
--   
--   The length of <tt>exponent</tt> should be <tt>16</tt>.
glQueryMatrixxOES :: MonadIO m => Ptr GLfixed -> Ptr GLint -> m GLbitfield

module Graphics.GL.Ext.OES.PrimitiveBoundingBox

-- | Checks that the <a>GL_OES_primitive_bounding_box</a> extension is
--   available.
gl_OES_primitive_bounding_box :: Bool

-- | Usage: <tt><a>glPrimitiveBoundingBoxOES</a> minX minY minZ minW maxX
--   maxY maxZ maxW</tt>
--   
--   This command is an alias for <a>glPrimitiveBoundingBox</a>.
glPrimitiveBoundingBoxOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

module Graphics.GL.Ext.OES.PointSizeArray

-- | Checks that the <a>GL_OES_point_size_array</a> extension is available.
gl_OES_point_size_array :: Bool

-- | Usage: <tt><a>glPointSizePointerOES</a> type stride pointer</tt>
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glPointSizePointerOES :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.OES.MatrixPalette

-- | Checks that the <a>GL_OES_matrix_palette</a> extension is available.
gl_OES_matrix_palette :: Bool

-- | Usage: <tt><a>glCurrentPaletteMatrixOES</a> matrixpaletteindex</tt>
glCurrentPaletteMatrixOES :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glLoadPaletteFromModelViewMatrixOES</a></tt>
glLoadPaletteFromModelViewMatrixOES :: MonadIO m => m ()

-- | Usage: <tt><a>glMatrixIndexPointerOES</a> size type stride
--   pointer</tt>
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glMatrixIndexPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glWeightPointerOES</a> size type stride pointer</tt>
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glWeightPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.OES.Mapbuffer

-- | Checks that the <a>GL_OES_mapbuffer</a> extension is available.
gl_OES_mapbuffer :: Bool

-- | Usage: <tt><a>glGetBufferPointervOES</a> target pname params</tt>
--   
--   This command is an alias for <a>glGetBufferPointerv</a>.
glGetBufferPointervOES :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glMapBufferOES</a> target access</tt>
--   
--   This command is an alias for <a>glMapBuffer</a>.
glMapBufferOES :: MonadIO m => GLenum -> GLenum -> m (Ptr ())

-- | Usage: <tt><a>glUnmapBufferOES</a> target</tt>
--   
--   This command is an alias for <a>glUnmapBuffer</a>.
glUnmapBufferOES :: MonadIO m => GLenum -> m GLboolean

module Graphics.GL.Ext.OES.GetProgramBinary

-- | Checks that the <a>GL_OES_get_program_binary</a> extension is
--   available.
gl_OES_get_program_binary :: Bool

-- | Usage: <tt><a>glGetProgramBinaryOES</a> program bufSize length
--   binaryFormat binary</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binaryFormat</tt> should be <tt>1</tt>.
--   
--   The length of <tt>binary</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glGetProgramBinary</a>.
glGetProgramBinaryOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glProgramBinaryOES</a> program binaryFormat binary
--   length</tt>
--   
--   The length of <tt>binary</tt> should be <tt>length</tt>.
--   
--   This command is an alias for <a>glProgramBinary</a>.
glProgramBinaryOES :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLint -> m ()

module Graphics.GL.Ext.OES.GeometryShader

-- | Checks that the <a>GL_OES_geometry_shader</a> extension is available.
gl_OES_geometry_shader :: Bool

-- | Usage: <tt><a>glFramebufferTextureOES</a> target attachment texture
--   level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureOES :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

module Graphics.GL.Ext.OES.FramebufferObject

-- | Checks that the <a>GL_OES_framebuffer_object</a> extension is
--   available.
gl_OES_framebuffer_object :: Bool

-- | Usage: <tt><a>glBindFramebufferOES</a> target framebuffer</tt>
glBindFramebufferOES :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindRenderbufferOES</a> target renderbuffer</tt>
glBindRenderbufferOES :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glCheckFramebufferStatusOES</a> target</tt>
glCheckFramebufferStatusOES :: MonadIO m => GLenum -> m GLenum

-- | Usage: <tt><a>glDeleteFramebuffersOES</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
glDeleteFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteRenderbuffersOES</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
glDeleteRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glFramebufferRenderbufferOES</a> target attachment
--   renderbuffertarget renderbuffer</tt>
glFramebufferRenderbufferOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glFramebufferTexture2DOES</a> target attachment
--   textarget texture level</tt>
glFramebufferTexture2DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glGenFramebuffersOES</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
glGenFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenRenderbuffersOES</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
glGenRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenerateMipmapOES</a> target</tt>
glGenerateMipmapOES :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGetFramebufferAttachmentParameterivOES</a> target
--   attachment pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferAttachmentParameterivOES :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetRenderbufferParameterivOES</a> target pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetRenderbufferParameterivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsFramebufferOES</a> framebuffer</tt>
glIsFramebufferOES :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsRenderbufferOES</a> renderbuffer</tt>
glIsRenderbufferOES :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glRenderbufferStorageOES</a> target internalformat width
--   height</tt>
glRenderbufferStorageOES :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.OES.FixedPoint

-- | Checks that the <a>GL_OES_fixed_point</a> extension is available.
gl_OES_fixed_point :: Bool

-- | Usage: <tt><a>glAccumxOES</a> op value</tt>
glAccumxOES :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glAlphaFuncxOES</a> func ref</tt>
--   
--   The parameter <tt>ref</tt> is a <tt>ClampedFixed</tt>.
glAlphaFuncxOES :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glBitmapxOES</a> width height xorig yorig xmove ymove
--   bitmap</tt>
--   
--   The length of <tt>bitmap</tt> should be
--   <tt>COMPSIZE(width,height)</tt>.
glBitmapxOES :: MonadIO m => GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glBlendColorxOES</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ClampedFixed</tt>.
glBlendColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glClearAccumxOES</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ClampedFixed</tt>.
glClearAccumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glClearColorxOES</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ClampedFixed</tt>.
glClearColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glClearDepthxOES</a> depth</tt>
--   
--   The parameter <tt>depth</tt> is a <tt>ClampedFixed</tt>.
glClearDepthxOES :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glClipPlanexOES</a> plane equation</tt>
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glColor3xOES</a> red green blue</tt>
glColor3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glColor3xvOES</a> components</tt>
--   
--   The length of <tt>components</tt> should be <tt>3</tt>.
glColor3xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glColor4xOES</a> red green blue alpha</tt>
glColor4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glColor4xvOES</a> components</tt>
--   
--   The length of <tt>components</tt> should be <tt>4</tt>.
glColor4xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glConvolutionParameterxOES</a> target pname param</tt>
glConvolutionParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glConvolutionParameterxvOES</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glDepthRangexOES</a> n f</tt>
--   
--   The parameter <tt>n</tt> is a <tt>ClampedFixed</tt>.
--   
--   The parameter <tt>f</tt> is a <tt>ClampedFixed</tt>.
glDepthRangexOES :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glEvalCoord1xOES</a> u</tt>
glEvalCoord1xOES :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glEvalCoord1xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glEvalCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glEvalCoord2xOES</a> u v</tt>
glEvalCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glEvalCoord2xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glEvalCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glFeedbackBufferxOES</a> n type buffer</tt>
--   
--   The length of <tt>buffer</tt> should be <tt>n</tt>.
glFeedbackBufferxOES :: MonadIO m => GLsizei -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glFogxOES</a> pname param</tt>
glFogxOES :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glFogxvOES</a> pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glFogxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glFrustumxOES</a> l r b t n f</tt>
glFrustumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glGetClipPlanexOES</a> plane equation</tt>
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glGetClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetConvolutionParameterxvOES</a> target pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetFixedvOES</a> pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFixedvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetHistogramParameterxvOES</a> target pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetHistogramParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetLightxOES</a> light pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightxOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetLightxvOES</a> light pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetMapxvOES</a> target query v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(query)</tt>.
glGetMapxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetMaterialxOES</a> face pname param</tt>
glGetMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glGetMaterialxvOES</a> face pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetPixelMapxv</a> map size values</tt>
--   
--   The length of <tt>values</tt> should be <tt>size</tt>.
glGetPixelMapxv :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetTexEnvxvOES</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetTexGenxvOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetTexLevelParameterxvOES</a> target level pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexLevelParameterxvOES :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetTexParameterxvOES</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glIndexxOES</a> component</tt>
glIndexxOES :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glIndexxvOES</a> component</tt>
--   
--   The length of <tt>component</tt> should be <tt>1</tt>.
glIndexxvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glLightModelxOES</a> pname param</tt>
glLightModelxOES :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glLightModelxvOES</a> pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightModelxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glLightxOES</a> light pname param</tt>
glLightxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glLightxvOES</a> light pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glLineWidthxOES</a> width</tt>
glLineWidthxOES :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glLoadMatrixxOES</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glLoadTransposeMatrixxOES</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glMap1xOES</a> target u1 u2 stride order points</tt>
glMap1xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()

-- | Usage: <tt><a>glMap2xOES</a> target u1 u2 ustride uorder v1 v2 vstride
--   vorder points</tt>
glMap2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()

-- | Usage: <tt><a>glMapGrid1xOES</a> n u1 u2</tt>
glMapGrid1xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glMapGrid2xOES</a> n u1 u2 v1 v2</tt>
glMapGrid2xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glMaterialxOES</a> face pname param</tt>
glMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glMaterialxvOES</a> face pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glMultMatrixxOES</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glMultTransposeMatrixxOES</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glMultiTexCoord1xOES</a> texture s</tt>
glMultiTexCoord1xOES :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glMultiTexCoord1xvOES</a> texture coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoord1xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glMultiTexCoord2xOES</a> texture s t</tt>
glMultiTexCoord2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glMultiTexCoord2xvOES</a> texture coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glMultiTexCoord2xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glMultiTexCoord3xOES</a> texture s t r</tt>
glMultiTexCoord3xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glMultiTexCoord3xvOES</a> texture coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glMultiTexCoord3xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glMultiTexCoord4xOES</a> texture s t r q</tt>
glMultiTexCoord4xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glMultiTexCoord4xvOES</a> texture coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glMultiTexCoord4xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glNormal3xOES</a> nx ny nz</tt>
glNormal3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glNormal3xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glNormal3xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glOrthoxOES</a> l r b t n f</tt>
glOrthoxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glPassThroughxOES</a> token</tt>
glPassThroughxOES :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glPixelMapx</a> map size values</tt>
--   
--   The length of <tt>values</tt> should be <tt>size</tt>.
glPixelMapx :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glPixelStorex</a> pname param</tt>
glPixelStorex :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glPixelTransferxOES</a> pname param</tt>
glPixelTransferxOES :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glPixelZoomxOES</a> xfactor yfactor</tt>
glPixelZoomxOES :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glPointParameterxOES</a> pname param</tt>
glPointParameterxOES :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glPointParameterxvOES</a> pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPointParameterxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glPointSizexOES</a> size</tt>
glPointSizexOES :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glPolygonOffsetxOES</a> factor units</tt>
glPolygonOffsetxOES :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glPrioritizeTexturesxOES</a> n textures priorities</tt>
--   
--   The parameter <tt>priorities</tt> is a <tt>ClampedFixed</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   The length of <tt>priorities</tt> should be <tt>n</tt>.
glPrioritizeTexturesxOES :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glRasterPos2xOES</a> x y</tt>
glRasterPos2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glRasterPos2xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glRasterPos2xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glRasterPos3xOES</a> x y z</tt>
glRasterPos3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glRasterPos3xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glRasterPos3xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glRasterPos4xOES</a> x y z w</tt>
glRasterPos4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glRasterPos4xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glRasterPos4xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glRectxOES</a> x1 y1 x2 y2</tt>
glRectxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glRectxvOES</a> v1 v2</tt>
--   
--   The length of <tt>v1</tt> should be <tt>2</tt>.
--   
--   The length of <tt>v2</tt> should be <tt>2</tt>.
glRectxvOES :: MonadIO m => Ptr GLfixed -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glRotatexOES</a> angle x y z</tt>
glRotatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glSampleCoveragexOES</a> value invert</tt>
glSampleCoveragexOES :: MonadIO m => GLclampx -> GLboolean -> m ()

-- | Usage: <tt><a>glScalexOES</a> x y z</tt>
glScalexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glTexCoord1xOES</a> s</tt>
glTexCoord1xOES :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glTexCoord1xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTexCoord2xOES</a> s t</tt>
glTexCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glTexCoord2xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glTexCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTexCoord3xOES</a> s t r</tt>
glTexCoord3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glTexCoord3xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glTexCoord3xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTexCoord4xOES</a> s t r q</tt>
glTexCoord4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glTexCoord4xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glTexCoord4xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTexEnvxOES</a> target pname param</tt>
glTexEnvxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glTexEnvxvOES</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTexGenxOES</a> coord pname param</tt>
glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glTexGenxvOES</a> coord pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTexParameterxOES</a> target pname param</tt>
glTexParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glTexParameterxvOES</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTranslatexOES</a> x y z</tt>
glTranslatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glVertex2xOES</a> x</tt>
glVertex2xOES :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glVertex2xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glVertex2xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glVertex3xOES</a> x y</tt>
glVertex3xOES :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glVertex3xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glVertex3xvOES :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glVertex4xOES</a> x y z</tt>
glVertex4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glVertex4xvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glVertex4xvOES :: MonadIO m => Ptr GLfixed -> m ()

module Graphics.GL.Ext.OES.EGLImage

-- | Checks that the <a>GL_OES_EGL_image</a> extension is available.
gl_OES_EGL_image :: Bool

-- | Usage: <tt><a>glEGLImageTargetRenderbufferStorageOES</a> target
--   image</tt>
glEGLImageTargetRenderbufferStorageOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()

-- | Usage: <tt><a>glEGLImageTargetTexture2DOES</a> target image</tt>
glEGLImageTargetTexture2DOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()

module Graphics.GL.Ext.OES.DrawTexture

-- | Checks that the <a>GL_OES_draw_texture</a> extension is available.
gl_OES_draw_texture :: Bool

-- | Usage: <tt><a>glDrawTexfOES</a> x y z width height</tt>
glDrawTexfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glDrawTexfvOES</a> coords</tt>
glDrawTexfvOES :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glDrawTexiOES</a> x y z width height</tt>
glDrawTexiOES :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glDrawTexivOES</a> coords</tt>
glDrawTexivOES :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glDrawTexsOES</a> x y z width height</tt>
glDrawTexsOES :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glDrawTexsvOES</a> coords</tt>
glDrawTexsvOES :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glDrawTexxOES</a> x y z width height</tt>
glDrawTexxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glDrawTexxvOES</a> coords</tt>
glDrawTexxvOES :: MonadIO m => Ptr GLfixed -> m ()

module Graphics.GL.Ext.OES.DrawElementsBaseVertex

-- | Checks that the <a>GL_OES_draw_elements_base_vertex</a> extension is
--   available.
gl_OES_draw_elements_base_vertex :: Bool

-- | Usage: <tt><a>glDrawElementsBaseVertexOES</a> mode count type indices
--   basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsBaseVertex</a>.
glDrawElementsBaseVertexOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertexOES</a> mode count type
--   indices instancecount basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsInstancedBaseVertex</a>.
glDrawElementsInstancedBaseVertexOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glDrawRangeElementsBaseVertexOES</a> mode start end
--   count type indices basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawRangeElementsBaseVertex</a>.
glDrawRangeElementsBaseVertexOES :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glMultiDrawElementsBaseVertexOES</a> mode count type
--   indices primcount basevertex</tt>
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>basevertex</tt> should be
--   <tt>COMPSIZE(drawcount)</tt>.
--   
--   This command is an alias for <a>glMultiDrawElementsBaseVertex</a>.
glMultiDrawElementsBaseVertexOES :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()

module Graphics.GL.Ext.OES.DrawBuffersIndexed

-- | Checks that the <a>GL_OES_draw_buffers_indexed</a> extension is
--   available.
gl_OES_draw_buffers_indexed :: Bool

-- | Usage: <tt><a>glBlendEquationSeparateiOES</a> buf modeRGB
--   modeAlpha</tt>
--   
--   This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateiOES :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendEquationiOES</a> buf mode</tt>
--   
--   This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationiOES :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparateiOES</a> buf srcRGB dstRGB srcAlpha
--   dstAlpha</tt>
--   
--   This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateiOES :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFunciOES</a> buf src dst</tt>
--   
--   This command is an alias for <a>glBlendFunci</a>.
glBlendFunciOES :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glColorMaskiOES</a> index r g b a</tt>
--   
--   The parameter <tt>r</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>g</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>b</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>a</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   This command is an alias for <a>glColorMaski</a>.
glColorMaskiOES :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glDisableiOES</a> target index</tt>
--   
--   This command is an alias for <a>glDisablei</a>.
glDisableiOES :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEnableiOES</a> target index</tt>
--   
--   This command is an alias for <a>glEnablei</a>.
glEnableiOES :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glIsEnablediOES</a> target index</tt>
--   
--   This command is an alias for <a>glIsEnabledi</a>.
glIsEnablediOES :: MonadIO m => GLenum -> GLuint -> m GLboolean

module Graphics.GL.Ext.OES.CopyImage

-- | Checks that the <a>GL_OES_copy_image</a> extension is available.
gl_OES_copy_image :: Bool

-- | Usage: <tt><a>glCopyImageSubDataOES</a> srcName srcTarget srcLevel
--   srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth
--   srcHeight srcDepth</tt>
--   
--   This command is an alias for <a>glCopyImageSubData</a>.
glCopyImageSubDataOES :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.OES.ByteCoordinates

-- | Checks that the <a>GL_OES_byte_coordinates</a> extension is available.
gl_OES_byte_coordinates :: Bool

-- | Usage: <tt><a>glMultiTexCoord1bOES</a> texture s</tt>
glMultiTexCoord1bOES :: MonadIO m => GLenum -> GLbyte -> m ()

-- | Usage: <tt><a>glMultiTexCoord1bvOES</a> texture coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glMultiTexCoord1bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glMultiTexCoord2bOES</a> texture s t</tt>
glMultiTexCoord2bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glMultiTexCoord2bvOES</a> texture coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glMultiTexCoord2bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glMultiTexCoord3bOES</a> texture s t r</tt>
glMultiTexCoord3bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glMultiTexCoord3bvOES</a> texture coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glMultiTexCoord3bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glMultiTexCoord4bOES</a> texture s t r q</tt>
glMultiTexCoord4bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glMultiTexCoord4bvOES</a> texture coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glMultiTexCoord4bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glTexCoord1bOES</a> s</tt>
glTexCoord1bOES :: MonadIO m => GLbyte -> m ()

-- | Usage: <tt><a>glTexCoord1bvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glTexCoord1bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glTexCoord2bOES</a> s t</tt>
glTexCoord2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glTexCoord2bvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glTexCoord2bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glTexCoord3bOES</a> s t r</tt>
glTexCoord3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glTexCoord3bvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glTexCoord3bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glTexCoord4bOES</a> s t r q</tt>
glTexCoord4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glTexCoord4bvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glTexCoord4bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertex2bOES</a> x y</tt>
glVertex2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glVertex2bvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glVertex2bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertex3bOES</a> x y z</tt>
glVertex3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glVertex3bvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glVertex3bvOES :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertex4bOES</a> x y z w</tt>
glVertex4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glVertex4bvOES</a> coords</tt>
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glVertex4bvOES :: MonadIO m => Ptr GLbyte -> m ()

module Graphics.GL.Ext.OES.BlendSubtract

-- | Checks that the <a>GL_OES_blend_subtract</a> extension is available.
gl_OES_blend_subtract :: Bool

-- | Usage: <tt><a>glBlendEquationOES</a> mode</tt>
glBlendEquationOES :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.OES.BlendFuncSeparate

-- | Checks that the <a>GL_OES_blend_func_separate</a> extension is
--   available.
gl_OES_blend_func_separate :: Bool

-- | Usage: <tt><a>glBlendFuncSeparateOES</a> srcRGB dstRGB srcAlpha
--   dstAlpha</tt>
glBlendFuncSeparateOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

module Graphics.GL.Ext.OES.BlendEquationSeparate

-- | Checks that the <a>GL_OES_blend_equation_separate</a> extension is
--   available.
gl_OES_blend_equation_separate :: Bool

-- | Usage: <tt><a>glBlendEquationSeparateOES</a> modeRGB modeAlpha</tt>
glBlendEquationSeparateOES :: MonadIO m => GLenum -> GLenum -> m ()

module Graphics.GL.Ext.OES

module Graphics.GL.Ext.NVX.ConditionalRender

-- | Checks that the GL_NVX_conditional_render extension is available.
gl_NVX_conditional_render :: Bool

-- | Usage: <tt><a>glBeginConditionalRenderNVX</a> id</tt>
glBeginConditionalRenderNVX :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glEndConditionalRenderNVX</a></tt>
--   
--   This command is an alias for <a>glEndConditionalRender</a>.
glEndConditionalRenderNVX :: MonadIO m => m ()

module Graphics.GL.Ext.NVX

module Graphics.GL.Ext.NV.ViewportSwizzle

-- | Checks that the <a>GL_NV_viewport_swizzle</a> extension is available.
gl_NV_viewport_swizzle :: Bool

-- | Usage: <tt><a>glViewportSwizzleNV</a> index swizzlex swizzley swizzlez
--   swizzlew</tt>
glViewportSwizzleNV :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

module Graphics.GL.Ext.NV.ViewportArray

-- | Checks that the GL_NV_viewport_array extension is available.
gl_NV_viewport_array :: Bool

-- | Usage: <tt><a>glDepthRangeArrayfvNV</a> first count v</tt>
glDepthRangeArrayfvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glDepthRangeIndexedfNV</a> index n f</tt>
glDepthRangeIndexedfNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glDisableiNV</a> target index</tt>
--   
--   This command is an alias for <a>glDisablei</a>.
glDisableiNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEnableiNV</a> target index</tt>
--   
--   This command is an alias for <a>glEnablei</a>.
glEnableiNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glGetFloati_vNV</a> target index data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetFloati_v</a>.
glGetFloati_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glIsEnablediNV</a> target index</tt>
--   
--   This command is an alias for <a>glIsEnabledi</a>.
glIsEnablediNV :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Usage: <tt><a>glScissorArrayvNV</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
--   
--   This command is an alias for <a>glScissorArrayv</a>.
glScissorArrayvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glScissorIndexedNV</a> index left bottom width
--   height</tt>
--   
--   This command is an alias for <a>glScissorIndexed</a>.
glScissorIndexedNV :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glScissorIndexedvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glScissorIndexedv</a>.
glScissorIndexedvNV :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glViewportArrayvNV</a> first count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>COMPSIZE(count)</tt>.
--   
--   This command is an alias for <a>glViewportArrayv</a>.
glViewportArrayvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glViewportIndexedfNV</a> index x y w h</tt>
--   
--   This command is an alias for <a>glViewportIndexedf</a>.
glViewportIndexedfNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glViewportIndexedfvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glViewportIndexedfv</a>.
glViewportIndexedfvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.NV.VideoCapture

-- | Checks that the <a>GL_NV_video_capture</a> extension is available.
gl_NV_video_capture :: Bool

-- | Usage: <tt><a>glBeginVideoCaptureNV</a> video_capture_slot</tt>
glBeginVideoCaptureNV :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glBindVideoCaptureStreamBufferNV</a> video_capture_slot
--   stream frame_region offset</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffsetARB</tt>.
glBindVideoCaptureStreamBufferNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()

-- | Usage: <tt><a>glBindVideoCaptureStreamTextureNV</a> video_capture_slot
--   stream frame_region target texture</tt>
glBindVideoCaptureStreamTextureNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEndVideoCaptureNV</a> video_capture_slot</tt>
glEndVideoCaptureNV :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGetVideoCaptureStreamdvNV</a> video_capture_slot
--   stream pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVideoCaptureStreamdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetVideoCaptureStreamfvNV</a> video_capture_slot
--   stream pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVideoCaptureStreamfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVideoCaptureStreamivNV</a> video_capture_slot
--   stream pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVideoCaptureStreamivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVideoCaptureivNV</a> video_capture_slot pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVideoCaptureivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVideoCaptureNV</a> video_capture_slot sequence_num
--   capture_time</tt>
glVideoCaptureNV :: MonadIO m => GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum

-- | Usage: <tt><a>glVideoCaptureStreamParameterdvNV</a> video_capture_slot
--   stream pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glVideoCaptureStreamParameterdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVideoCaptureStreamParameterfvNV</a> video_capture_slot
--   stream pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glVideoCaptureStreamParameterfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVideoCaptureStreamParameterivNV</a> video_capture_slot
--   stream pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glVideoCaptureStreamParameterivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.NV.VertexProgram4

-- | Checks that the <a>GL_NV_vertex_program4</a> extension is available.
gl_NV_vertex_program4 :: Bool

-- | Usage: <tt><a>glGetVertexAttribIivEXT</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribIiv</a>.
glGetVertexAttribIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexAttribIuivEXT</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribIuiv</a>.
glGetVertexAttribIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI1iEXT</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttribI1i</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttribI1ivEXT</a>.
glVertexAttribI1iEXT :: MonadIO m => GLuint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI1ivEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttribI1iv</a>.
glVertexAttribI1ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI1uiEXT</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttribI1ui</a>.
--   
--   The vector equivalent of this command is
--   <a>glVertexAttribI1uivEXT</a>.
glVertexAttribI1uiEXT :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI1uivEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttribI1uiv</a>.
glVertexAttribI1uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI2iEXT</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttribI2i</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttribI2ivEXT</a>.
glVertexAttribI2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI2ivEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttribI2iv</a>.
glVertexAttribI2ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI2uiEXT</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttribI2ui</a>.
--   
--   The vector equivalent of this command is
--   <a>glVertexAttribI2uivEXT</a>.
glVertexAttribI2uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI2uivEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttribI2uiv</a>.
glVertexAttribI2uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI3iEXT</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttribI3i</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttribI3ivEXT</a>.
glVertexAttribI3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI3ivEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttribI3iv</a>.
glVertexAttribI3ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI3uiEXT</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttribI3ui</a>.
--   
--   The vector equivalent of this command is
--   <a>glVertexAttribI3uivEXT</a>.
glVertexAttribI3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI3uivEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttribI3uiv</a>.
glVertexAttribI3uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4bvEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttribI4bv</a>.
glVertexAttribI4bvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttribI4iEXT</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttribI4i</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttribI4ivEXT</a>.
glVertexAttribI4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI4ivEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttribI4iv</a>.
glVertexAttribI4ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribI4svEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttribI4sv</a>.
glVertexAttribI4svEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttribI4ubvEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttribI4ubv</a>.
glVertexAttribI4ubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttribI4uiEXT</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttribI4ui</a>.
--   
--   The vector equivalent of this command is
--   <a>glVertexAttribI4uivEXT</a>.
glVertexAttribI4uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4uivEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttribI4uiv</a>.
glVertexAttribI4uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttribI4usvEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttribI4usv</a>.
glVertexAttribI4usvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttribIPointerEXT</a> index size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribEnum</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   This command is an alias for <a>glVertexAttribIPointer</a>.
glVertexAttribIPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.NV.VertexProgram

-- | Checks that the <a>GL_NV_vertex_program</a> extension is available.
gl_NV_vertex_program :: Bool

-- | Usage: <tt><a>glAreProgramsResidentNV</a> n programs residences</tt>
--   
--   The parameter <tt>residences</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
--   
--   The length of <tt>residences</tt> should be <tt>n</tt>.
glAreProgramsResidentNV :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Usage: <tt><a>glBindProgramNV</a> target id</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   This command is an alias for <a>glBindProgramARB</a>.
glBindProgramNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteProgramsNV</a> n programs</tt>
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDeleteProgramsARB</a>.
glDeleteProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glExecuteProgramNV</a> target id params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glExecuteProgramNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGenProgramsNV</a> n programs</tt>
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glGenProgramsARB</a>.
glGenProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetProgramParameterdvNV</a> target index pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramParameterdvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetProgramParameterfvNV</a> target index pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetProgramStringNV</a> id pname program</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The parameter <tt>program</tt> is a <tt>ProgramCharacterNV</tt>.
--   
--   The length of <tt>program</tt> should be <tt>COMPSIZE(id,pname)</tt>.
glGetProgramStringNV :: MonadIO m => GLuint -> GLenum -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glGetProgramivNV</a> id pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTrackMatrixivNV</a> target address pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetTrackMatrixivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexAttribPointervNV</a> index pname pointer</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribPointerv</a>.
glGetVertexAttribPointervNV :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetVertexAttribdvNV</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribdv</a>.
glGetVertexAttribdvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetVertexAttribfvNV</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribfv</a>.
glGetVertexAttribfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVertexAttribivNV</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribiv</a>.
glGetVertexAttribivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsProgramNV</a> id</tt>
--   
--   This command is an alias for <a>glIsProgramARB</a>.
glIsProgramNV :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glLoadProgramNV</a> target id len program</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>program</tt> should be <tt>len</tt>.
glLoadProgramNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glProgramParameter4dNV</a> target index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramParameter4dvNV</a>.
glProgramParameter4dNV :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramParameter4dvNV</a> target index v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glProgramParameter4dvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramParameter4fNV</a> target index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramParameter4fvNV</a>.
glProgramParameter4fNV :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramParameter4fvNV</a> target index v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glProgramParameter4fvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramParameters4dvNV</a> target index count v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>count*4</tt>.
glProgramParameters4dvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramParameters4fvNV</a> target index count v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>count*4</tt>.
glProgramParameters4fvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRequestResidentProgramsNV</a> n programs</tt>
--   
--   The length of <tt>programs</tt> should be <tt>n</tt>.
glRequestResidentProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTrackMatrixNV</a> target address matrix transform</tt>
--   
--   The parameter <tt>target</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The parameter <tt>matrix</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The parameter <tt>transform</tt> is a <tt>VertexAttribEnumNV</tt>.
glTrackMatrixNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glVertexAttrib1dNV</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1dvNV</a>.
glVertexAttrib1dNV :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1dvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1dv</a>.
glVertexAttrib1dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1fNV</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1fvNV</a>.
glVertexAttrib1fNV :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1fvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1fv</a>.
glVertexAttrib1fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1sNV</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1svNV</a>.
glVertexAttrib1sNV :: MonadIO m => GLuint -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib1svNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1sv</a>.
glVertexAttrib1svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2dNV</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2dvNV</a>.
glVertexAttrib2dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2dvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2dv</a>.
glVertexAttrib2dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2fNV</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2fvNV</a>.
glVertexAttrib2fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2fvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2fv</a>.
glVertexAttrib2fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2sNV</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2svNV</a>.
glVertexAttrib2sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2svNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2sv</a>.
glVertexAttrib2svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3dNV</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3dvNV</a>.
glVertexAttrib3dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3dvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3dv</a>.
glVertexAttrib3dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3fNV</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3fvNV</a>.
glVertexAttrib3fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3fvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3fv</a>.
glVertexAttrib3fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3sNV</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3svNV</a>.
glVertexAttrib3sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3svNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3sv</a>.
glVertexAttrib3svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4dNV</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4dvNV</a>.
glVertexAttrib4dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4dvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4dv</a>.
glVertexAttrib4dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4fNV</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4fvNV</a>.
glVertexAttrib4fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4fvNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4fv</a>.
glVertexAttrib4fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4sNV</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4svNV</a>.
glVertexAttrib4sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4svNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4sv</a>.
glVertexAttrib4svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4ubNV</a> index x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>ColorUB</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nub</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4ubvNV</a>.
glVertexAttrib4ubNV :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4ubvNV</a> index v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nubv</a>.
glVertexAttrib4ubvNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttribPointerNV</a> index fsize type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribEnumNV</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(fsize,type,stride)</tt>.
glVertexAttribPointerNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glVertexAttribs1dvNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count</tt>.
glVertexAttribs1dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribs1fvNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count</tt>.
glVertexAttribs1fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttribs1svNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count</tt>.
glVertexAttribs1svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttribs2dvNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count*2</tt>.
glVertexAttribs2dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribs2fvNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count*2</tt>.
glVertexAttribs2fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttribs2svNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count*2</tt>.
glVertexAttribs2svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttribs3dvNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count*3</tt>.
glVertexAttribs3dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribs3fvNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count*3</tt>.
glVertexAttribs3fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttribs3svNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count*3</tt>.
glVertexAttribs3svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttribs4dvNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count*4</tt>.
glVertexAttribs4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribs4fvNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count*4</tt>.
glVertexAttribs4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttribs4svNV</a> index count v</tt>
--   
--   The length of <tt>v</tt> should be <tt>count*4</tt>.
glVertexAttribs4svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttribs4ubvNV</a> index count v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>count*4</tt>.
glVertexAttribs4ubvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> m ()

module Graphics.GL.Ext.NV.VertexBufferUnifiedMemory

-- | Checks that the <a>GL_NV_vertex_buffer_unified_memory</a> extension is
--   available.
gl_NV_vertex_buffer_unified_memory :: Bool

-- | Usage: <tt><a>glBufferAddressRangeNV</a> pname index address
--   length</tt>
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
glBufferAddressRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glColorFormatNV</a> size type stride</tt>
glColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glEdgeFlagFormatNV</a> stride</tt>
glEdgeFlagFormatNV :: MonadIO m => GLsizei -> m ()

-- | Usage: <tt><a>glFogCoordFormatNV</a> type stride</tt>
glFogCoordFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glGetIntegerui64i_vNV</a> value index result</tt>
--   
--   The length of <tt>result</tt> should be <tt>COMPSIZE(value)</tt>.
glGetIntegerui64i_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glIndexFormatNV</a> type stride</tt>
glIndexFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glNormalFormatNV</a> type stride</tt>
glNormalFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glSecondaryColorFormatNV</a> size type stride</tt>
glSecondaryColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glTexCoordFormatNV</a> size type stride</tt>
glTexCoordFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glVertexAttribFormatNV</a> index size type normalized
--   stride</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> m ()

-- | Usage: <tt><a>glVertexAttribIFormatNV</a> index size type stride</tt>
glVertexAttribIFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glVertexFormatNV</a> size type stride</tt>
glVertexFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()

module Graphics.GL.Ext.NV.VertexAttribInteger64bit

-- | Checks that the <a>GL_NV_vertex_attrib_integer_64bit</a> extension is
--   available.
gl_NV_vertex_attrib_integer_64bit :: Bool

-- | Usage: <tt><a>glGetVertexAttribLi64vNV</a> index pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVertexAttribLi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glGetVertexAttribLui64vNV</a> index pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVertexAttribLui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL1i64NV</a> index x</tt>
glVertexAttribL1i64NV :: MonadIO m => GLuint -> GLint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL1i64vNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribL1i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL1ui64NV</a> index x</tt>
glVertexAttribL1ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL1ui64vNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttribL1ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL2i64NV</a> index x y</tt>
glVertexAttribL2i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL2i64vNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribL2i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL2ui64NV</a> index x y</tt>
glVertexAttribL2ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL2ui64vNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttribL2ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL3i64NV</a> index x y z</tt>
glVertexAttribL3i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL3i64vNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribL3i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL3ui64NV</a> index x y z</tt>
glVertexAttribL3ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL3ui64vNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttribL3ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL4i64NV</a> index x y z w</tt>
glVertexAttribL4i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL4i64vNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribL4i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL4ui64NV</a> index x y z w</tt>
glVertexAttribL4ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL4ui64vNV</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttribL4ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribLFormatNV</a> index size type stride</tt>
glVertexAttribLFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()

module Graphics.GL.Ext.NV.VertexArrayRange

-- | Checks that the <a>GL_NV_vertex_array_range</a> extension is
--   available.
gl_NV_vertex_array_range :: Bool

-- | Usage: <tt><a>glFlushVertexArrayRangeNV</a></tt>
glFlushVertexArrayRangeNV :: MonadIO m => m ()

-- | Usage: <tt><a>glVertexArrayRangeNV</a> length pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>COMPSIZE(length)</tt>.
glVertexArrayRangeNV :: MonadIO m => GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.NV.VdpauInterop

-- | Checks that the <a>GL_NV_vdpau_interop</a> extension is available.
gl_NV_vdpau_interop :: Bool

-- | Usage: <tt><a>glVDPAUFiniNV</a></tt>
glVDPAUFiniNV :: MonadIO m => m ()

-- | Usage: <tt><a>glVDPAUGetSurfaceivNV</a> surface pname bufSize length
--   values</tt>
--   
--   The parameter <tt>surface</tt> is a <tt>vdpauSurfaceNV</tt>.
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glVDPAUGetSurfaceivNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVDPAUInitNV</a> vdpDevice getProcAddress</tt>
glVDPAUInitNV :: MonadIO m => Ptr () -> Ptr () -> m ()

-- | Usage: <tt><a>glVDPAUIsSurfaceNV</a> surface</tt>
--   
--   The parameter <tt>surface</tt> is a <tt>vdpauSurfaceNV</tt>.
glVDPAUIsSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m GLboolean

-- | Usage: <tt><a>glVDPAUMapSurfacesNV</a> numSurfaces surfaces</tt>
--   
--   The parameter <tt>surfaces</tt> is a <tt>vdpauSurfaceNV</tt>.
--   
--   The length of <tt>surfaces</tt> should be <tt>numSurfaces</tt>.
glVDPAUMapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()

-- | Usage: <tt><a>glVDPAURegisterOutputSurfaceNV</a> vdpSurface target
--   numTextureNames textureNames</tt>
--   
--   The length of <tt>textureNames</tt> should be
--   <tt>numTextureNames</tt>.
glVDPAURegisterOutputSurfaceNV :: MonadIO m => Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV

-- | Usage: <tt><a>glVDPAURegisterVideoSurfaceNV</a> vdpSurface target
--   numTextureNames textureNames</tt>
--   
--   The length of <tt>textureNames</tt> should be
--   <tt>numTextureNames</tt>.
glVDPAURegisterVideoSurfaceNV :: MonadIO m => Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV

-- | Usage: <tt><a>glVDPAUSurfaceAccessNV</a> surface access</tt>
--   
--   The parameter <tt>surface</tt> is a <tt>vdpauSurfaceNV</tt>.
glVDPAUSurfaceAccessNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> m ()

-- | Usage: <tt><a>glVDPAUUnmapSurfacesNV</a> numSurface surfaces</tt>
--   
--   The parameter <tt>surfaces</tt> is a <tt>vdpauSurfaceNV</tt>.
--   
--   The length of <tt>surfaces</tt> should be <tt>numSurface</tt>.
glVDPAUUnmapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()

-- | Usage: <tt><a>glVDPAUUnregisterSurfaceNV</a> surface</tt>
--   
--   The parameter <tt>surface</tt> is a <tt>vdpauSurfaceNV</tt>.
glVDPAUUnregisterSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m ()

module Graphics.GL.Ext.NV.TransformFeedback2

-- | Checks that the <a>GL_NV_transform_feedback2</a> extension is
--   available.
gl_NV_transform_feedback2 :: Bool

-- | Usage: <tt><a>glBindTransformFeedbackNV</a> target id</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
glBindTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteTransformFeedbacksNV</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDeleteTransformFeedbacks</a>.
glDeleteTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDrawTransformFeedbackNV</a> mode id</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawTransformFeedback</a>.
glDrawTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glGenTransformFeedbacksNV</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glGenTransformFeedbacks</a>.
glGenTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsTransformFeedbackNV</a> id</tt>
--   
--   This command is an alias for <a>glIsTransformFeedback</a>.
glIsTransformFeedbackNV :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glPauseTransformFeedbackNV</a></tt>
--   
--   This command is an alias for <a>glPauseTransformFeedback</a>.
glPauseTransformFeedbackNV :: MonadIO m => m ()

-- | Usage: <tt><a>glResumeTransformFeedbackNV</a></tt>
--   
--   This command is an alias for <a>glResumeTransformFeedback</a>.
glResumeTransformFeedbackNV :: MonadIO m => m ()

module Graphics.GL.Ext.NV.TransformFeedback

-- | Checks that the <a>GL_NV_transform_feedback</a> extension is
--   available.
gl_NV_transform_feedback :: Bool

-- | Usage: <tt><a>glActiveVaryingNV</a> program name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
glActiveVaryingNV :: MonadIO m => GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glBeginTransformFeedbackNV</a> primitiveMode</tt>
--   
--   This command is an alias for <a>glBeginTransformFeedback</a>.
glBeginTransformFeedbackNV :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBindBufferBaseNV</a> target index buffer</tt>
--   
--   This command is an alias for <a>glBindBufferBase</a>.
glBindBufferBaseNV :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindBufferOffsetNV</a> target index buffer offset</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   This command is an alias for <a>glBindBufferOffsetEXT</a>.
glBindBufferOffsetNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()

-- | Usage: <tt><a>glBindBufferRangeNV</a> target index buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   This command is an alias for <a>glBindBufferRange</a>.
glBindBufferRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glEndTransformFeedbackNV</a></tt>
--   
--   This command is an alias for <a>glEndTransformFeedback</a>.
glEndTransformFeedbackNV :: MonadIO m => m ()

-- | Usage: <tt><a>glGetActiveVaryingNV</a> program index bufSize length
--   size type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be
--   <tt>COMPSIZE(program,index,bufSize)</tt>.
glGetActiveVaryingNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetTransformFeedbackVaryingNV</a> program index
--   location</tt>
--   
--   The length of <tt>location</tt> should be <tt>1</tt>.
glGetTransformFeedbackVaryingNV :: MonadIO m => GLuint -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVaryingLocationNV</a> program name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
glGetVaryingLocationNV :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glTransformFeedbackAttribsNV</a> count attribs
--   bufferMode</tt>
--   
--   The length of <tt>attribs</tt> should be <tt>COMPSIZE(count)</tt>.
glTransformFeedbackAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLenum -> m ()

-- | Usage: <tt><a>glTransformFeedbackStreamAttribsNV</a> count attribs
--   nbuffers bufstreams bufferMode</tt>
--   
--   The length of <tt>attribs</tt> should be <tt>count</tt>.
--   
--   The length of <tt>bufstreams</tt> should be <tt>nbuffers</tt>.
glTransformFeedbackStreamAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()

-- | Usage: <tt><a>glTransformFeedbackVaryingsNV</a> program count
--   locations bufferMode</tt>
--   
--   The length of <tt>locations</tt> should be <tt>count</tt>.
glTransformFeedbackVaryingsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()

module Graphics.GL.Ext.NV.TextureMultisample

-- | Checks that the <a>GL_NV_texture_multisample</a> extension is
--   available.
gl_NV_texture_multisample :: Bool

-- | Usage: <tt><a>glTexImage2DMultisampleCoverageNV</a> target
--   coverageSamples colorSamples internalFormat width height
--   fixedSampleLocations</tt>
--   
--   The parameter <tt>fixedSampleLocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glTexImage2DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTexImage3DMultisampleCoverageNV</a> target
--   coverageSamples colorSamples internalFormat width height depth
--   fixedSampleLocations</tt>
--   
--   The parameter <tt>fixedSampleLocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glTexImage3DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureImage2DMultisampleCoverageNV</a> texture target
--   coverageSamples colorSamples internalFormat width height
--   fixedSampleLocations</tt>
--   
--   The parameter <tt>fixedSampleLocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glTextureImage2DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureImage2DMultisampleNV</a> texture target samples
--   internalFormat width height fixedSampleLocations</tt>
--   
--   The parameter <tt>fixedSampleLocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glTextureImage2DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureImage3DMultisampleCoverageNV</a> texture target
--   coverageSamples colorSamples internalFormat width height depth
--   fixedSampleLocations</tt>
--   
--   The parameter <tt>fixedSampleLocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glTextureImage3DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureImage3DMultisampleNV</a> texture target samples
--   internalFormat width height depth fixedSampleLocations</tt>
--   
--   The parameter <tt>fixedSampleLocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glTextureImage3DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

module Graphics.GL.Ext.NV.ShaderBufferLoad

-- | Checks that the <a>GL_NV_shader_buffer_load</a> extension is
--   available.
gl_NV_shader_buffer_load :: Bool

-- | Usage: <tt><a>glGetBufferParameterui64vNV</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameterui64vNV :: MonadIO m => GLenum -> GLenum -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glGetIntegerui64vNV</a> value result</tt>
--   
--   The length of <tt>result</tt> should be <tt>COMPSIZE(value)</tt>.
glGetIntegerui64vNV :: MonadIO m => GLenum -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glGetNamedBufferParameterui64vNV</a> buffer pname
--   params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexBufferObjectParameter</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetNamedBufferParameterui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glGetUniformui64vNV</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glIsBufferResidentNV</a> target</tt>
glIsBufferResidentNV :: MonadIO m => GLenum -> m GLboolean

-- | Usage: <tt><a>glIsNamedBufferResidentNV</a> buffer</tt>
glIsNamedBufferResidentNV :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glMakeBufferNonResidentNV</a> target</tt>
glMakeBufferNonResidentNV :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMakeBufferResidentNV</a> target access</tt>
glMakeBufferResidentNV :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glMakeNamedBufferNonResidentNV</a> buffer</tt>
glMakeNamedBufferNonResidentNV :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glMakeNamedBufferResidentNV</a> buffer access</tt>
glMakeNamedBufferResidentNV :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glProgramUniformui64NV</a> program location value</tt>
glProgramUniformui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glProgramUniformui64vNV</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniformui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniformui64NV</a> location value</tt>
glUniformui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glUniformui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniformui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()

module Graphics.GL.Ext.NV.SampleLocations

-- | Checks that the <a>GL_NV_sample_locations</a> extension is available.
gl_NV_sample_locations :: Bool

-- | Usage: <tt><a>glFramebufferSampleLocationsfvNV</a> target start count
--   v</tt>
glFramebufferSampleLocationsfvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNamedFramebufferSampleLocationsfvNV</a> framebuffer
--   start count v</tt>
glNamedFramebufferSampleLocationsfvNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glResolveDepthValuesNV</a></tt>
glResolveDepthValuesNV :: MonadIO m => m ()

module Graphics.GL.Ext.NV.RegisterCombiners2

-- | Checks that the <a>GL_NV_register_combiners2</a> extension is
--   available.
gl_NV_register_combiners2 :: Bool

-- | Usage: <tt><a>glCombinerStageParameterfvNV</a> stage pname params</tt>
--   
--   The parameter <tt>stage</tt> is a <tt>CombinerStageNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetCombinerStageParameterfvNV</a> stage pname
--   params</tt>
--   
--   The parameter <tt>stage</tt> is a <tt>CombinerStageNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.NV.RegisterCombiners

-- | Checks that the <a>GL_NV_register_combiners</a> extension is
--   available.
gl_NV_register_combiners :: Bool

-- | Usage: <tt><a>glCombinerInputNV</a> stage portion variable input
--   mapping componentUsage</tt>
--   
--   The parameter <tt>stage</tt> is a <tt>CombinerStageNV</tt>.
--   
--   The parameter <tt>portion</tt> is a <tt>CombinerPortionNV</tt>.
--   
--   The parameter <tt>variable</tt> is a <tt>CombinerVariableNV</tt>.
--   
--   The parameter <tt>input</tt> is a <tt>CombinerRegisterNV</tt>.
--   
--   The parameter <tt>mapping</tt> is a <tt>CombinerMappingNV</tt>.
--   
--   The parameter <tt>componentUsage</tt> is a
--   <tt>CombinerComponentUsageNV</tt>.
glCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glCombinerOutputNV</a> stage portion abOutput cdOutput
--   sumOutput scale bias abDotProduct cdDotProduct muxSum</tt>
--   
--   The parameter <tt>stage</tt> is a <tt>CombinerStageNV</tt>.
--   
--   The parameter <tt>portion</tt> is a <tt>CombinerPortionNV</tt>.
--   
--   The parameter <tt>abOutput</tt> is a <tt>CombinerRegisterNV</tt>.
--   
--   The parameter <tt>cdOutput</tt> is a <tt>CombinerRegisterNV</tt>.
--   
--   The parameter <tt>sumOutput</tt> is a <tt>CombinerRegisterNV</tt>.
--   
--   The parameter <tt>scale</tt> is a <tt>CombinerScaleNV</tt>.
--   
--   The parameter <tt>bias</tt> is a <tt>CombinerBiasNV</tt>.
--   
--   The parameter <tt>abDotProduct</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>cdDotProduct</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>muxSum</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glCombinerOutputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glCombinerParameterfNV</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
glCombinerParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glCombinerParameterfvNV</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glCombinerParameterfvNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glCombinerParameteriNV</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
glCombinerParameteriNV :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glCombinerParameterivNV</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glCombinerParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glFinalCombinerInputNV</a> variable input mapping
--   componentUsage</tt>
--   
--   The parameter <tt>variable</tt> is a <tt>CombinerVariableNV</tt>.
--   
--   The parameter <tt>input</tt> is a <tt>CombinerRegisterNV</tt>.
--   
--   The parameter <tt>mapping</tt> is a <tt>CombinerMappingNV</tt>.
--   
--   The parameter <tt>componentUsage</tt> is a
--   <tt>CombinerComponentUsageNV</tt>.
glFinalCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glGetCombinerInputParameterfvNV</a> stage portion
--   variable pname params</tt>
--   
--   The parameter <tt>stage</tt> is a <tt>CombinerStageNV</tt>.
--   
--   The parameter <tt>portion</tt> is a <tt>CombinerPortionNV</tt>.
--   
--   The parameter <tt>variable</tt> is a <tt>CombinerVariableNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetCombinerInputParameterivNV</a> stage portion
--   variable pname params</tt>
--   
--   The parameter <tt>stage</tt> is a <tt>CombinerStageNV</tt>.
--   
--   The parameter <tt>portion</tt> is a <tt>CombinerPortionNV</tt>.
--   
--   The parameter <tt>variable</tt> is a <tt>CombinerVariableNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetCombinerOutputParameterfvNV</a> stage portion pname
--   params</tt>
--   
--   The parameter <tt>stage</tt> is a <tt>CombinerStageNV</tt>.
--   
--   The parameter <tt>portion</tt> is a <tt>CombinerPortionNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetCombinerOutputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetCombinerOutputParameterivNV</a> stage portion pname
--   params</tt>
--   
--   The parameter <tt>stage</tt> is a <tt>CombinerStageNV</tt>.
--   
--   The parameter <tt>portion</tt> is a <tt>CombinerPortionNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetCombinerOutputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetFinalCombinerInputParameterfvNV</a> variable pname
--   params</tt>
--   
--   The parameter <tt>variable</tt> is a <tt>CombinerVariableNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFinalCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFinalCombinerInputParameterivNV</a> variable pname
--   params</tt>
--   
--   The parameter <tt>variable</tt> is a <tt>CombinerVariableNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>CombinerParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFinalCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.NV.ReadBuffer

-- | Checks that the <a>GL_NV_read_buffer</a> extension is available.
gl_NV_read_buffer :: Bool

-- | Usage: <tt><a>glReadBufferNV</a> mode</tt>
glReadBufferNV :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.NV.PrimitiveRestart

-- | Checks that the <a>GL_NV_primitive_restart</a> extension is available.
gl_NV_primitive_restart :: Bool

-- | Usage: <tt><a>glPrimitiveRestartIndexNV</a> index</tt>
glPrimitiveRestartIndexNV :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glPrimitiveRestartNV</a></tt>
glPrimitiveRestartNV :: MonadIO m => m ()

module Graphics.GL.Ext.NV.PresentVideo

-- | Checks that the <a>GL_NV_present_video</a> extension is available.
gl_NV_present_video :: Bool

-- | Usage: <tt><a>glGetVideoi64vNV</a> video_slot pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVideoi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()

-- | Usage: <tt><a>glGetVideoivNV</a> video_slot pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVideoivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVideoui64vNV</a> video_slot pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVideoui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glGetVideouivNV</a> video_slot pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVideouivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glPresentFrameDualFillNV</a> video_slot minPresentTime
--   beginPresentTimeId presentDurationId type target0 fill0 target1 fill1
--   target2 fill2 target3 fill3</tt>
glPresentFrameDualFillNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glPresentFrameKeyedNV</a> video_slot minPresentTime
--   beginPresentTimeId presentDurationId type target0 fill0 key0 target1
--   fill1 key1</tt>
glPresentFrameKeyedNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> m ()

module Graphics.GL.Ext.NV.PolygonMode

-- | Checks that the <a>GL_NV_polygon_mode</a> extension is available.
gl_NV_polygon_mode :: Bool

-- | Usage: <tt><a>glPolygonModeNV</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>PolygonMode</tt>, one of:
--   <a>GL_FILL</a>, <a>GL_LINE</a>, <a>GL_POINT</a>.
--   
--   This command is an alias for <a>glPolygonMode</a>.
glPolygonModeNV :: MonadIO m => GLenum -> GLenum -> m ()

module Graphics.GL.Ext.NV.PointSprite

-- | Checks that the <a>GL_NV_point_sprite</a> extension is available.
gl_NV_point_sprite :: Bool

-- | Usage: <tt><a>glPointParameteriNV</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   This command is an alias for <a>glPointParameteri</a>.
glPointParameteriNV :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPointParameterivNV</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glPointParameteriv</a>.
glPointParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.NV.PixelDataRange

-- | Checks that the <a>GL_NV_pixel_data_range</a> extension is available.
gl_NV_pixel_data_range :: Bool

-- | Usage: <tt><a>glFlushPixelDataRangeNV</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>PixelDataRangeTargetNV</tt>.
glFlushPixelDataRangeNV :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glPixelDataRangeNV</a> target length pointer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>PixelDataRangeTargetNV</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>length</tt>.
glPixelDataRangeNV :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.NV.PathRendering

-- | Checks that the <a>GL_NV_path_rendering</a> extension is available.
gl_NV_path_rendering :: Bool

-- | Usage: <tt><a>glCopyPathNV</a> resultPath srcPath</tt>
--   
--   The parameter <tt>resultPath</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>srcPath</tt> is a <tt>Path</tt>.
glCopyPathNV :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glCoverFillPathInstancedNV</a> numPaths pathNameType
--   paths pathBase coverMode transformType transformValues</tt>
--   
--   The parameter <tt>pathNameType</tt> is a <tt>PathElementType</tt>.
--   
--   The parameter <tt>paths</tt> is a <tt>PathElement</tt>.
--   
--   The parameter <tt>pathBase</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>coverMode</tt> is a <tt>PathCoverMode</tt>.
--   
--   The parameter <tt>transformType</tt> is a <tt>PathTransformType</tt>.
--   
--   The length of <tt>paths</tt> should be
--   <tt>COMPSIZE(numPaths,pathNameType,paths)</tt>.
--   
--   The length of <tt>transformValues</tt> should be
--   <tt>COMPSIZE(numPaths,transformType)</tt>.
glCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glCoverFillPathNV</a> path coverMode</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>coverMode</tt> is a <tt>PathCoverMode</tt>.
glCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glCoverStrokePathInstancedNV</a> numPaths pathNameType
--   paths pathBase coverMode transformType transformValues</tt>
--   
--   The parameter <tt>pathNameType</tt> is a <tt>PathElementType</tt>.
--   
--   The parameter <tt>paths</tt> is a <tt>PathElement</tt>.
--   
--   The parameter <tt>pathBase</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>coverMode</tt> is a <tt>PathCoverMode</tt>.
--   
--   The parameter <tt>transformType</tt> is a <tt>PathTransformType</tt>.
--   
--   The length of <tt>paths</tt> should be
--   <tt>COMPSIZE(numPaths,pathNameType,paths)</tt>.
--   
--   The length of <tt>transformValues</tt> should be
--   <tt>COMPSIZE(numPaths,transformType)</tt>.
glCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glCoverStrokePathNV</a> path coverMode</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>coverMode</tt> is a <tt>PathCoverMode</tt>.
glCoverStrokePathNV :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glDeletePathsNV</a> path range</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
glDeletePathsNV :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Usage: <tt><a>glGenPathsNV</a> range</tt>
glGenPathsNV :: MonadIO m => GLsizei -> m GLuint

-- | Usage: <tt><a>glGetPathColorGenfvNV</a> color pname value</tt>
--   
--   The parameter <tt>color</tt> is a <tt>PathColor</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathGenMode</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetPathColorGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPathColorGenivNV</a> color pname value</tt>
--   
--   The parameter <tt>color</tt> is a <tt>PathColor</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathGenMode</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetPathColorGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetPathCommandsNV</a> path commands</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>commands</tt> is a <tt>PathCommand</tt>.
--   
--   The length of <tt>commands</tt> should be <tt>COMPSIZE(path)</tt>.
glGetPathCommandsNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glGetPathCoordsNV</a> path coords</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>COMPSIZE(path)</tt>.
glGetPathCoordsNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPathDashArrayNV</a> path dashArray</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The length of <tt>dashArray</tt> should be <tt>COMPSIZE(path)</tt>.
glGetPathDashArrayNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPathLengthNV</a> path startSegment numSegments</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
glGetPathLengthNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> m GLfloat

-- | Usage: <tt><a>glGetPathMetricRangeNV</a> metricQueryMask firstPathName
--   numPaths stride metrics</tt>
--   
--   The parameter <tt>metricQueryMask</tt> is a <tt>PathMetricMask</tt>.
--   
--   The parameter <tt>firstPathName</tt> is a <tt>Path</tt>.
--   
--   The length of <tt>metrics</tt> should be
--   <tt>COMPSIZE(metricQueryMask,numPaths,stride)</tt>.
glGetPathMetricRangeNV :: MonadIO m => GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPathMetricsNV</a> metricQueryMask numPaths
--   pathNameType paths pathBase stride metrics</tt>
--   
--   The parameter <tt>metricQueryMask</tt> is a <tt>PathMetricMask</tt>.
--   
--   The parameter <tt>pathNameType</tt> is a <tt>PathElementType</tt>.
--   
--   The parameter <tt>paths</tt> is a <tt>PathElement</tt>.
--   
--   The parameter <tt>pathBase</tt> is a <tt>Path</tt>.
--   
--   The length of <tt>paths</tt> should be
--   <tt>COMPSIZE(numPaths,pathNameType,paths)</tt>.
--   
--   The length of <tt>metrics</tt> should be
--   <tt>COMPSIZE(metricQueryMask,numPaths,stride)</tt>.
glGetPathMetricsNV :: MonadIO m => GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPathParameterfvNV</a> path pname value</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathParameter</tt>.
--   
--   The length of <tt>value</tt> should be <tt>4</tt>.
glGetPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPathParameterivNV</a> path pname value</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathParameter</tt>.
--   
--   The length of <tt>value</tt> should be <tt>4</tt>.
glGetPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetPathSpacingNV</a> pathListMode numPaths
--   pathNameType paths pathBase advanceScale kerningScale transformType
--   returnedSpacing</tt>
--   
--   The parameter <tt>pathListMode</tt> is a <tt>PathListMode</tt>.
--   
--   The parameter <tt>pathNameType</tt> is a <tt>PathElementType</tt>.
--   
--   The parameter <tt>paths</tt> is a <tt>PathElement</tt>.
--   
--   The parameter <tt>pathBase</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>transformType</tt> is a <tt>PathTransformType</tt>.
--   
--   The length of <tt>paths</tt> should be
--   <tt>COMPSIZE(numPaths,pathNameType,paths)</tt>.
--   
--   The length of <tt>returnedSpacing</tt> should be
--   <tt>COMPSIZE(pathListMode,numPaths)</tt>.
glGetPathSpacingNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPathTexGenfvNV</a> texCoordSet pname value</tt>
--   
--   The parameter <tt>texCoordSet</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathGenMode</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetPathTexGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPathTexGenivNV</a> texCoordSet pname value</tt>
--   
--   The parameter <tt>texCoordSet</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathGenMode</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetPathTexGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramResourcefvNV</a> program programInterface
--   index propCount props bufSize length params</tt>
glGetProgramResourcefvNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glInterpolatePathsNV</a> resultPath pathA pathB
--   weight</tt>
--   
--   The parameter <tt>resultPath</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>pathA</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>pathB</tt> is a <tt>Path</tt>.
glInterpolatePathsNV :: MonadIO m => GLuint -> GLuint -> GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glIsPathNV</a> path</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
glIsPathNV :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsPointInFillPathNV</a> path mask x y</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
glIsPointInFillPathNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean

-- | Usage: <tt><a>glIsPointInStrokePathNV</a> path x y</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
glIsPointInStrokePathNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m GLboolean

-- | Usage: <tt><a>glMatrixLoad3x2fNV</a> matrixMode m</tt>
glMatrixLoad3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMatrixLoad3x3fNV</a> matrixMode m</tt>
glMatrixLoad3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMatrixLoadTranspose3x3fNV</a> matrixMode m</tt>
glMatrixLoadTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMatrixMult3x2fNV</a> matrixMode m</tt>
glMatrixMult3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMatrixMult3x3fNV</a> matrixMode m</tt>
glMatrixMult3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMatrixMultTranspose3x3fNV</a> matrixMode m</tt>
glMatrixMultTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPathColorGenNV</a> color genMode colorFormat
--   coeffs</tt>
--   
--   The parameter <tt>color</tt> is a <tt>PathColor</tt>.
--   
--   The parameter <tt>genMode</tt> is a <tt>PathGenMode</tt>.
--   
--   The parameter <tt>colorFormat</tt> is a <tt>PathColorFormat</tt>.
--   
--   The length of <tt>coeffs</tt> should be
--   <tt>COMPSIZE(genMode,colorFormat)</tt>.
glPathColorGenNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPathCommandsNV</a> path numCommands commands numCoords
--   coordType coords</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>commands</tt> is a <tt>PathCommand</tt>.
--   
--   The parameter <tt>coordType</tt> is a <tt>PathCoordType</tt>.
--   
--   The length of <tt>commands</tt> should be <tt>numCommands</tt>.
--   
--   The length of <tt>coords</tt> should be
--   <tt>COMPSIZE(numCoords,coordType)</tt>.
glPathCommandsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glPathCoordsNV</a> path numCoords coordType coords</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>coordType</tt> is a <tt>PathCoordType</tt>.
--   
--   The length of <tt>coords</tt> should be
--   <tt>COMPSIZE(numCoords,coordType)</tt>.
glPathCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glPathCoverDepthFuncNV</a> func</tt>
--   
--   The parameter <tt>func</tt> is a <tt>DepthFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
glPathCoverDepthFuncNV :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glPathDashArrayNV</a> path dashCount dashArray</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The length of <tt>dashArray</tt> should be <tt>dashCount</tt>.
glPathDashArrayNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPathFogGenNV</a> genMode</tt>
--   
--   The parameter <tt>genMode</tt> is a <tt>PathGenMode</tt>.
glPathFogGenNV :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glPathGlyphIndexArrayNV</a> firstPathName fontTarget
--   fontName fontStyle firstGlyphIndex numGlyphs pathParameterTemplate
--   emScale</tt>
glPathGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum

-- | Usage: <tt><a>glPathGlyphIndexRangeNV</a> fontTarget fontName
--   fontStyle pathParameterTemplate emScale baseAndCount</tt>
glPathGlyphIndexRangeNV :: MonadIO m => GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum

-- | Usage: <tt><a>glPathGlyphRangeNV</a> firstPathName fontTarget fontName
--   fontStyle firstGlyph numGlyphs handleMissingGlyphs
--   pathParameterTemplate emScale</tt>
--   
--   The parameter <tt>firstPathName</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>fontTarget</tt> is a <tt>PathFontTarget</tt>.
--   
--   The parameter <tt>fontStyle</tt> is a <tt>PathFontStyle</tt>.
--   
--   The parameter <tt>handleMissingGlyphs</tt> is a
--   <tt>PathHandleMissingGlyphs</tt>.
--   
--   The parameter <tt>pathParameterTemplate</tt> is a <tt>Path</tt>.
--   
--   The length of <tt>fontName</tt> should be
--   <tt>COMPSIZE(fontTarget,fontName)</tt>.
glPathGlyphRangeNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glPathGlyphsNV</a> firstPathName fontTarget fontName
--   fontStyle numGlyphs type charcodes handleMissingGlyphs
--   pathParameterTemplate emScale</tt>
--   
--   The parameter <tt>firstPathName</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>fontTarget</tt> is a <tt>PathFontTarget</tt>.
--   
--   The parameter <tt>fontStyle</tt> is a <tt>PathFontStyle</tt>.
--   
--   The parameter <tt>type</tt> is a <tt>PathElementType</tt>.
--   
--   The parameter <tt>handleMissingGlyphs</tt> is a
--   <tt>PathHandleMissingGlyphs</tt>.
--   
--   The parameter <tt>pathParameterTemplate</tt> is a <tt>Path</tt>.
--   
--   The length of <tt>fontName</tt> should be
--   <tt>COMPSIZE(fontTarget,fontName)</tt>.
--   
--   The length of <tt>charcodes</tt> should be
--   <tt>COMPSIZE(numGlyphs,type,charcodes)</tt>.
glPathGlyphsNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glPathMemoryGlyphIndexArrayNV</a> firstPathName
--   fontTarget fontSize fontData faceIndex firstGlyphIndex numGlyphs
--   pathParameterTemplate emScale</tt>
glPathMemoryGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum

-- | Usage: <tt><a>glPathParameterfNV</a> path pname value</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathParameter</tt>.
glPathParameterfNV :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPathParameterfvNV</a> path pname value</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathParameter</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(pname)</tt>.
glPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPathParameteriNV</a> path pname value</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathParameter</tt>.
glPathParameteriNV :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPathParameterivNV</a> path pname value</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PathParameter</tt>.
--   
--   The length of <tt>value</tt> should be <tt>COMPSIZE(pname)</tt>.
glPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glPathStencilDepthOffsetNV</a> factor units</tt>
glPathStencilDepthOffsetNV :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glPathStencilFuncNV</a> func ref mask</tt>
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>ClampedStencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
glPathStencilFuncNV :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glPathStringNV</a> path format length pathString</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PathStringFormat</tt>.
--   
--   The length of <tt>pathString</tt> should be <tt>length</tt>.
glPathStringNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glPathSubCommandsNV</a> path commandStart
--   commandsToDelete numCommands commands numCoords coordType coords</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>commands</tt> is a <tt>PathCommand</tt>.
--   
--   The parameter <tt>coordType</tt> is a <tt>PathCoordType</tt>.
--   
--   The length of <tt>commands</tt> should be <tt>numCommands</tt>.
--   
--   The length of <tt>coords</tt> should be
--   <tt>COMPSIZE(numCoords,coordType)</tt>.
glPathSubCommandsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glPathSubCoordsNV</a> path coordStart numCoords
--   coordType coords</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>coordType</tt> is a <tt>PathCoordType</tt>.
--   
--   The length of <tt>coords</tt> should be
--   <tt>COMPSIZE(numCoords,coordType)</tt>.
glPathSubCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glPathTexGenNV</a> texCoordSet genMode components
--   coeffs</tt>
--   
--   The parameter <tt>texCoordSet</tt> is a <tt>PathColor</tt>.
--   
--   The parameter <tt>genMode</tt> is a <tt>PathGenMode</tt>.
--   
--   The length of <tt>coeffs</tt> should be
--   <tt>COMPSIZE(genMode,components)</tt>.
glPathTexGenNV :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPointAlongPathNV</a> path startSegment numSegments
--   distance x y tangentX tangentY</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The length of <tt>x</tt> should be <tt>1</tt>.
--   
--   The length of <tt>y</tt> should be <tt>1</tt>.
--   
--   The length of <tt>tangentX</tt> should be <tt>1</tt>.
--   
--   The length of <tt>tangentY</tt> should be <tt>1</tt>.
glPointAlongPathNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean

-- | Usage: <tt><a>glProgramPathFragmentInputGenNV</a> program location
--   genMode components coeffs</tt>
glProgramPathFragmentInputGenNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glStencilFillPathInstancedNV</a> numPaths pathNameType
--   paths pathBase fillMode mask transformType transformValues</tt>
--   
--   The parameter <tt>pathNameType</tt> is a <tt>PathElementType</tt>.
--   
--   The parameter <tt>paths</tt> is a <tt>PathElement</tt>.
--   
--   The parameter <tt>pathBase</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>fillMode</tt> is a <tt>PathFillMode</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   The parameter <tt>transformType</tt> is a <tt>PathTransformType</tt>.
--   
--   The length of <tt>paths</tt> should be
--   <tt>COMPSIZE(numPaths,pathNameType,paths)</tt>.
--   
--   The length of <tt>transformValues</tt> should be
--   <tt>COMPSIZE(numPaths,transformType)</tt>.
glStencilFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glStencilFillPathNV</a> path fillMode mask</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>fillMode</tt> is a <tt>PathFillMode</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
glStencilFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glStencilStrokePathInstancedNV</a> numPaths pathNameType
--   paths pathBase reference mask transformType transformValues</tt>
--   
--   The parameter <tt>pathNameType</tt> is a <tt>PathElementType</tt>.
--   
--   The parameter <tt>paths</tt> is a <tt>PathElement</tt>.
--   
--   The parameter <tt>pathBase</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>reference</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   The parameter <tt>transformType</tt> is a <tt>PathTransformType</tt>.
--   
--   The length of <tt>paths</tt> should be
--   <tt>COMPSIZE(numPaths,pathNameType,paths)</tt>.
--   
--   The length of <tt>transformValues</tt> should be
--   <tt>COMPSIZE(numPaths,transformType)</tt>.
glStencilStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glStencilStrokePathNV</a> path reference mask</tt>
--   
--   The parameter <tt>path</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>reference</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
glStencilStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilThenCoverFillPathInstancedNV</a> numPaths
--   pathNameType paths pathBase fillMode mask coverMode transformType
--   transformValues</tt>
glStencilThenCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glStencilThenCoverFillPathNV</a> path fillMode mask
--   coverMode</tt>
glStencilThenCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glStencilThenCoverStrokePathInstancedNV</a> numPaths
--   pathNameType paths pathBase reference mask coverMode transformType
--   transformValues</tt>
glStencilThenCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glStencilThenCoverStrokePathNV</a> path reference mask
--   coverMode</tt>
glStencilThenCoverStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glTransformPathNV</a> resultPath srcPath transformType
--   transformValues</tt>
--   
--   The parameter <tt>resultPath</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>srcPath</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>transformType</tt> is a <tt>PathTransformType</tt>.
--   
--   The length of <tt>transformValues</tt> should be
--   <tt>COMPSIZE(transformType)</tt>.
glTransformPathNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWeightPathsNV</a> resultPath numPaths paths
--   weights</tt>
--   
--   The parameter <tt>resultPath</tt> is a <tt>Path</tt>.
--   
--   The parameter <tt>paths</tt> is a <tt>Path</tt>.
--   
--   The length of <tt>paths</tt> should be <tt>numPaths</tt>.
--   
--   The length of <tt>weights</tt> should be <tt>numPaths</tt>.
glWeightPathsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.NV.ParameterBufferObject

-- | Checks that the <a>GL_NV_parameter_buffer_object</a> extension is
--   available.
gl_NV_parameter_buffer_object :: Bool

-- | Usage: <tt><a>glProgramBufferParametersIivNV</a> target bindingIndex
--   wordIndex count params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count</tt>.
glProgramBufferParametersIivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramBufferParametersIuivNV</a> target bindingIndex
--   wordIndex count params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count</tt>.
glProgramBufferParametersIuivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramBufferParametersfvNV</a> target bindingIndex
--   wordIndex count params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count</tt>.
glProgramBufferParametersfvNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.NV.OcclusionQuery

-- | Checks that the <a>GL_NV_occlusion_query</a> extension is available.
gl_NV_occlusion_query :: Bool

-- | Usage: <tt><a>glBeginOcclusionQueryNV</a> id</tt>
glBeginOcclusionQueryNV :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteOcclusionQueriesNV</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
glDeleteOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glEndOcclusionQueryNV</a></tt>
glEndOcclusionQueryNV :: MonadIO m => m ()

-- | Usage: <tt><a>glGenOcclusionQueriesNV</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
glGenOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetOcclusionQueryivNV</a> id pname params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>OcclusionQueryParameterNameNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetOcclusionQueryivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetOcclusionQueryuivNV</a> id pname params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>OcclusionQueryParameterNameNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetOcclusionQueryuivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsOcclusionQueryNV</a> id</tt>
glIsOcclusionQueryNV :: MonadIO m => GLuint -> m GLboolean

module Graphics.GL.Ext.NV.NonSquareMatrices

-- | Checks that the <a>GL_NV_non_square_matrices</a> extension is
--   available.
gl_NV_non_square_matrices :: Bool

-- | Usage: <tt><a>glUniformMatrix2x3fvNV</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
--   
--   This command is an alias for <a>glUniformMatrix2x3fv</a>.
glUniformMatrix2x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix2x4fvNV</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
--   
--   This command is an alias for <a>glUniformMatrix2x4fv</a>.
glUniformMatrix2x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3x2fvNV</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
--   
--   This command is an alias for <a>glUniformMatrix3x2fv</a>.
glUniformMatrix3x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3x4fvNV</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
--   
--   This command is an alias for <a>glUniformMatrix3x4fv</a>.
glUniformMatrix3x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4x2fvNV</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
--   
--   This command is an alias for <a>glUniformMatrix4x2fv</a>.
glUniformMatrix4x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4x3fvNV</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
--   
--   This command is an alias for <a>glUniformMatrix4x3fv</a>.
glUniformMatrix4x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.NV.InternalformatSampleQuery

-- | Checks that the <a>GL_NV_internalformat_sample_query</a> extension is
--   available.
gl_NV_internalformat_sample_query :: Bool

-- | Usage: <tt><a>glGetInternalformatSampleivNV</a> target internalformat
--   samples pname bufSize params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetInternalformatSampleivNV :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> m ()

module Graphics.GL.Ext.NV.InstancedArrays

-- | Checks that the <a>GL_NV_instanced_arrays</a> extension is available.
gl_NV_instanced_arrays :: Bool

-- | Usage: <tt><a>glVertexAttribDivisorNV</a> index divisor</tt>
--   
--   This command is an alias for <a>glVertexAttribDivisor</a>.
glVertexAttribDivisorNV :: MonadIO m => GLuint -> GLuint -> m ()

module Graphics.GL.Ext.NV.HalfFloat

-- | Checks that the <a>GL_NV_half_float</a> extension is available.
gl_NV_half_float :: Bool

-- | Usage: <tt><a>glColor3hNV</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glColor3hvNV</a>.
glColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glColor3hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glColor4hNV</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glColor4hvNV</a>.
glColor4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glColor4hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glColor4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glFogCoordhNV</a> fog</tt>
--   
--   The parameter <tt>fog</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glFogCoordhvNV</a>.
glFogCoordhNV :: MonadIO m => GLhalfNV -> m ()

-- | Usage: <tt><a>glFogCoordhvNV</a> fog</tt>
--   
--   The parameter <tt>fog</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>fog</tt> should be <tt>1</tt>.
glFogCoordhvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glMultiTexCoord1hNV</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1hvNV</a>.
glMultiTexCoord1hNV :: MonadIO m => GLenum -> GLhalfNV -> m ()

-- | Usage: <tt><a>glMultiTexCoord1hvNV</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glMultiTexCoord1hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glMultiTexCoord2hNV</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2hvNV</a>.
glMultiTexCoord2hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glMultiTexCoord2hvNV</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glMultiTexCoord2hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glMultiTexCoord3hNV</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3hvNV</a>.
glMultiTexCoord3hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glMultiTexCoord3hvNV</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glMultiTexCoord3hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glMultiTexCoord4hNV</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4hvNV</a>.
glMultiTexCoord4hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glMultiTexCoord4hvNV</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glMultiTexCoord4hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glNormal3hNV</a> nx ny nz</tt>
--   
--   The parameter <tt>nx</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>ny</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>nz</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glNormal3hvNV</a>.
glNormal3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glNormal3hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glNormal3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glSecondaryColor3hNV</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glSecondaryColor3hvNV</a>.
glSecondaryColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glSecondaryColor3hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glSecondaryColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glTexCoord1hNV</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord1hvNV</a>.
glTexCoord1hNV :: MonadIO m => GLhalfNV -> m ()

-- | Usage: <tt><a>glTexCoord1hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glTexCoord1hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glTexCoord2hNV</a> s t</tt>
--   
--   The parameter <tt>s</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord2hvNV</a>.
glTexCoord2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glTexCoord2hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glTexCoord2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glTexCoord3hNV</a> s t r</tt>
--   
--   The parameter <tt>s</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord3hvNV</a>.
glTexCoord3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glTexCoord3hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTexCoord3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glTexCoord4hNV</a> s t r q</tt>
--   
--   The parameter <tt>s</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glTexCoord4hvNV</a>.
glTexCoord4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glTexCoord4hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glTexCoord4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertex2hNV</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glVertex2hvNV</a>.
glVertex2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glVertex2hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertex2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertex3hNV</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glVertex3hvNV</a>.
glVertex3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glVertex3hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertex3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertex4hNV</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glVertex4hvNV</a>.
glVertex4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glVertex4hvNV</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertex4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttrib1hNV</a> index x</tt>
--   
--   The parameter <tt>x</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1hvNV</a>.
glVertexAttrib1hNV :: MonadIO m => GLuint -> GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttrib1hvNV</a> index v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
glVertexAttrib1hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttrib2hNV</a> index x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2hvNV</a>.
glVertexAttrib2hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttrib2hvNV</a> index v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
glVertexAttrib2hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttrib3hNV</a> index x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3hvNV</a>.
glVertexAttrib3hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttrib3hvNV</a> index v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glVertexAttrib3hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttrib4hNV</a> index x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>Half16NV</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4hvNV</a>.
glVertexAttrib4hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttrib4hvNV</a> index v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glVertexAttrib4hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttribs1hvNV</a> index n v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>n</tt>.
glVertexAttribs1hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttribs2hvNV</a> index n v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>n</tt>.
glVertexAttribs2hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttribs3hvNV</a> index n v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>n</tt>.
glVertexAttribs3hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexAttribs4hvNV</a> index n v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>v</tt> should be <tt>n</tt>.
glVertexAttribs4hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexWeighthNV</a> weight</tt>
--   
--   The parameter <tt>weight</tt> is a <tt>Half16NV</tt>.
--   
--   The vector equivalent of this command is <a>glVertexWeighthvNV</a>.
glVertexWeighthNV :: MonadIO m => GLhalfNV -> m ()

-- | Usage: <tt><a>glVertexWeighthvNV</a> weight</tt>
--   
--   The parameter <tt>weight</tt> is a <tt>Half16NV</tt>.
--   
--   The length of <tt>weight</tt> should be <tt>1</tt>.
glVertexWeighthvNV :: MonadIO m => Ptr GLhalfNV -> m ()

module Graphics.GL.Ext.NV.GpuProgram5

-- | Checks that the <a>GL_NV_gpu_program5</a> extension is available.
gl_NV_gpu_program5 :: Bool

-- | Usage: <tt><a>glGetProgramSubroutineParameteruivNV</a> target index
--   param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(target)</tt>.
glGetProgramSubroutineParameteruivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramSubroutineParametersuivNV</a> target count
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>count</tt>.
glProgramSubroutineParametersuivNV :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

module Graphics.GL.Ext.NV.GpuProgram4

-- | Checks that the <a>GL_NV_gpu_program4</a> extension is available.
gl_NV_gpu_program4 :: Bool

-- | Usage: <tt><a>glGetProgramEnvParameterIivNV</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramEnvParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramEnvParameterIuivNV</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramEnvParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetProgramLocalParameterIivNV</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramLocalParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetProgramLocalParameterIuivNV</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramLocalParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramEnvParameterI4iNV</a> target index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramEnvParameterI4ivNV</a>.
glProgramEnvParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramEnvParameterI4ivNV</a> target index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramEnvParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramEnvParameterI4uiNV</a> target index x y z
--   w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramEnvParameterI4uivNV</a>.
glProgramEnvParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramEnvParameterI4uivNV</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramEnvParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramEnvParametersI4ivNV</a> target index count
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count*4</tt>.
glProgramEnvParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramEnvParametersI4uivNV</a> target index count
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count*4</tt>.
glProgramEnvParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramLocalParameterI4iNV</a> target index x y z
--   w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramLocalParameterI4ivNV</a>.
glProgramLocalParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramLocalParameterI4ivNV</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramLocalParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramLocalParameterI4uiNV</a> target index x y z
--   w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramLocalParameterI4uivNV</a>.
glProgramLocalParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramLocalParameterI4uivNV</a> target index
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glProgramLocalParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramLocalParametersI4ivNV</a> target index count
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count*4</tt>.
glProgramLocalParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramLocalParametersI4uivNV</a> target index count
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count*4</tt>.
glProgramLocalParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

module Graphics.GL.Ext.NV.GeometryProgram4

-- | Checks that the <a>GL_NV_geometry_program4</a> extension is available.
gl_NV_geometry_program4 :: Bool

-- | Usage: <tt><a>glFramebufferTextureEXT</a> target attachment texture
--   level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTextureFaceEXT</a> target attachment
--   texture level face</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>face</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   This command is an alias for <a>glFramebufferTextureFaceARB</a>.
glFramebufferTextureFaceEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()

-- | Usage: <tt><a>glFramebufferTextureLayerEXT</a> target attachment
--   texture level layer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glFramebufferTextureLayer</a>.
glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramVertexLimitNV</a> target limit</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
glProgramVertexLimitNV :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.NV.FramebufferMultisampleCoverage

-- | Checks that the <a>GL_NV_framebuffer_multisample_coverage</a>
--   extension is available.
gl_NV_framebuffer_multisample_coverage :: Bool

-- | Usage: <tt><a>glRenderbufferStorageMultisampleCoverageNV</a> target
--   coverageSamples colorSamples internalformat width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
glRenderbufferStorageMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.NV.FramebufferMultisample

-- | Checks that the <a>GL_NV_framebuffer_multisample</a> extension is
--   available.
gl_NV_framebuffer_multisample :: Bool

-- | Usage: <tt><a>glRenderbufferStorageMultisampleNV</a> target samples
--   internalformat width height</tt>
--   
--   This command is an alias for <a>glRenderbufferStorageMultisample</a>.
glRenderbufferStorageMultisampleNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.NV.FramebufferMixedSamples

-- | Checks that the <a>GL_NV_framebuffer_mixed_samples</a> extension is
--   available.
gl_NV_framebuffer_mixed_samples :: Bool

-- | Usage: <tt><a>glCoverageModulationNV</a> components</tt>
glCoverageModulationNV :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glCoverageModulationTableNV</a> n v</tt>
glCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetCoverageModulationTableNV</a> bufsize v</tt>
glGetCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glRasterSamplesEXT</a> samples fixedsamplelocations</tt>
glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()

module Graphics.GL.Ext.NV.FramebufferBlit

-- | Checks that the <a>GL_NV_framebuffer_blit</a> extension is available.
gl_NV_framebuffer_blit :: Bool

-- | Usage: <tt><a>glBlitFramebufferNV</a> srcX0 srcY0 srcX1 srcY1 dstX0
--   dstY0 dstX1 dstY1 mask filter</tt>
--   
--   This command is an alias for <a>glBlitFramebuffer</a>.
glBlitFramebufferNV :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

module Graphics.GL.Ext.NV.FragmentProgram

-- | Checks that the <a>GL_NV_fragment_program</a> extension is available.
gl_NV_fragment_program :: Bool

-- | Usage: <tt><a>glGetProgramNamedParameterdvNV</a> id len name
--   params</tt>
--   
--   The length of <tt>name</tt> should be <tt>1</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramNamedParameterdvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetProgramNamedParameterfvNV</a> id len name
--   params</tt>
--   
--   The length of <tt>name</tt> should be <tt>1</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetProgramNamedParameterfvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramNamedParameter4dNV</a> id len name x y z w</tt>
--   
--   The length of <tt>name</tt> should be <tt>1</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramNamedParameter4dvNV</a>.
glProgramNamedParameter4dNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramNamedParameter4dvNV</a> id len name v</tt>
--   
--   The length of <tt>name</tt> should be <tt>1</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glProgramNamedParameter4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramNamedParameter4fNV</a> id len name x y z w</tt>
--   
--   The length of <tt>name</tt> should be <tt>1</tt>.
--   
--   The vector equivalent of this command is
--   <a>glProgramNamedParameter4fvNV</a>.
glProgramNamedParameter4fNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramNamedParameter4fvNV</a> id len name v</tt>
--   
--   The length of <tt>name</tt> should be <tt>1</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glProgramNamedParameter4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.NV.FragmentCoverageToColor

-- | Checks that the <a>GL_NV_fragment_coverage_to_color</a> extension is
--   available.
gl_NV_fragment_coverage_to_color :: Bool

-- | Usage: <tt><a>glFragmentCoverageColorNV</a> color</tt>
glFragmentCoverageColorNV :: MonadIO m => GLuint -> m ()

module Graphics.GL.Ext.NV.Fence

-- | Checks that the <a>GL_NV_fence</a> extension is available.
gl_NV_fence :: Bool

-- | Usage: <tt><a>glDeleteFencesNV</a> n fences</tt>
--   
--   The parameter <tt>fences</tt> is a <tt>FenceNV</tt>.
--   
--   The length of <tt>fences</tt> should be <tt>n</tt>.
glDeleteFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glFinishFenceNV</a> fence</tt>
--   
--   The parameter <tt>fence</tt> is a <tt>FenceNV</tt>.
glFinishFenceNV :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGenFencesNV</a> n fences</tt>
--   
--   The parameter <tt>fences</tt> is a <tt>FenceNV</tt>.
--   
--   The length of <tt>fences</tt> should be <tt>n</tt>.
glGenFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetFenceivNV</a> fence pname params</tt>
--   
--   The parameter <tt>fence</tt> is a <tt>FenceNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>FenceParameterNameNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFenceivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsFenceNV</a> fence</tt>
--   
--   The parameter <tt>fence</tt> is a <tt>FenceNV</tt>.
glIsFenceNV :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glSetFenceNV</a> fence condition</tt>
--   
--   The parameter <tt>fence</tt> is a <tt>FenceNV</tt>.
--   
--   The parameter <tt>condition</tt> is a <tt>FenceConditionNV</tt>.
glSetFenceNV :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glTestFenceNV</a> fence</tt>
--   
--   The parameter <tt>fence</tt> is a <tt>FenceNV</tt>.
glTestFenceNV :: MonadIO m => GLuint -> m GLboolean

module Graphics.GL.Ext.NV.ExplicitMultisample

-- | Checks that the <a>GL_NV_explicit_multisample</a> extension is
--   available.
gl_NV_explicit_multisample :: Bool

-- | Usage: <tt><a>glGetMultisamplefvNV</a> pname index val</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetMultisamplePNameNV</tt>.
--   
--   The length of <tt>val</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glGetMultisamplefv</a>.
glGetMultisamplefvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSampleMaskIndexedNV</a> index mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>SampleMaskNV</tt>.
glSampleMaskIndexedNV :: MonadIO m => GLuint -> GLbitfield -> m ()

-- | Usage: <tt><a>glTexRenderbufferNV</a> target renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
glTexRenderbufferNV :: MonadIO m => GLenum -> GLuint -> m ()

module Graphics.GL.Ext.NV.Evaluators

-- | Checks that the <a>GL_NV_evaluators</a> extension is available.
gl_NV_evaluators :: Bool

-- | Usage: <tt><a>glEvalMapsNV</a> target mode</tt>
--   
--   The parameter <tt>target</tt> is a <tt>EvalTargetNV</tt>.
--   
--   The parameter <tt>mode</tt> is a <tt>EvalMapsModeNV</tt>.
glEvalMapsNV :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glGetMapAttribParameterfvNV</a> target index pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>EvalTargetNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>MapAttribParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMapAttribParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMapAttribParameterivNV</a> target index pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>EvalTargetNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>MapAttribParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMapAttribParameterivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMapControlPointsNV</a> target index type ustride
--   vstride packed points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>EvalTargetNV</tt>.
--   
--   The parameter <tt>type</tt> is a <tt>MapTypeNV</tt>.
--   
--   The parameter <tt>packed</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>points</tt> should be <tt>COMPSIZE(target)</tt>.
glGetMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> m ()

-- | Usage: <tt><a>glGetMapParameterfvNV</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>EvalTargetNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>MapParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(target,pname)</tt>.
glGetMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMapParameterivNV</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>EvalTargetNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>MapParameterNV</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(target,pname)</tt>.
glGetMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMapControlPointsNV</a> target index type ustride
--   vstride uorder vorder packed points</tt>
--   
--   The parameter <tt>target</tt> is a <tt>EvalTargetNV</tt>.
--   
--   The parameter <tt>type</tt> is a <tt>MapTypeNV</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>packed</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(target,uorder,vorder)</tt>.
glMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> m ()

-- | Usage: <tt><a>glMapParameterfvNV</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>EvalTargetNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>MapParameterNV</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(target,pname)</tt>.
glMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMapParameterivNV</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>EvalTargetNV</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>MapParameterNV</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(target,pname)</tt>.
glMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.NV.DrawTexture

-- | Checks that the <a>GL_NV_draw_texture</a> extension is available.
gl_NV_draw_texture :: Bool

-- | Usage: <tt><a>glDrawTextureNV</a> texture sampler x0 y0 x1 y1 z s0 t0
--   s1 t1</tt>
glDrawTextureNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

module Graphics.GL.Ext.NV.DrawInstanced

-- | Checks that the <a>GL_NV_draw_instanced</a> extension is available.
gl_NV_draw_instanced :: Bool

-- | Usage: <tt><a>glDrawArraysInstancedNV</a> mode first count
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedNV :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedNV</a> mode count type indices
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()

module Graphics.GL.Ext.NV.DrawBuffers

-- | Checks that the <a>GL_NV_draw_buffers</a> extension is available.
gl_NV_draw_buffers :: Bool

-- | Usage: <tt><a>glDrawBuffersNV</a> n bufs</tt>
--   
--   The length of <tt>bufs</tt> should be <tt>n</tt>.
glDrawBuffersNV :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

module Graphics.GL.Ext.NV.DepthBufferFloat

-- | Checks that the <a>GL_NV_depth_buffer_float</a> extension is
--   available.
gl_NV_depth_buffer_float :: Bool

-- | Usage: <tt><a>glClearDepthdNV</a> depth</tt>
glClearDepthdNV :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glDepthBoundsdNV</a> zmin zmax</tt>
glDepthBoundsdNV :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glDepthRangedNV</a> zNear zFar</tt>
glDepthRangedNV :: MonadIO m => GLdouble -> GLdouble -> m ()

module Graphics.GL.Ext.NV.CoverageSample

-- | Checks that the <a>GL_NV_coverage_sample</a> extension is available.
gl_NV_coverage_sample :: Bool

-- | Usage: <tt><a>glCoverageMaskNV</a> mask</tt>
glCoverageMaskNV :: MonadIO m => GLboolean -> m ()

-- | Usage: <tt><a>glCoverageOperationNV</a> operation</tt>
glCoverageOperationNV :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.NV.CopyImage

-- | Checks that the <a>GL_NV_copy_image</a> extension is available.
gl_NV_copy_image :: Bool

-- | Usage: <tt><a>glCopyImageSubDataNV</a> srcName srcTarget srcLevel srcX
--   srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ width height
--   depth</tt>
glCopyImageSubDataNV :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.NV.CopyBuffer

-- | Checks that the <a>GL_NV_copy_buffer</a> extension is available.
gl_NV_copy_buffer :: Bool

-- | Usage: <tt><a>glCopyBufferSubDataNV</a> readTarget writeTarget
--   readOffset writeOffset size</tt>
--   
--   The parameter <tt>readOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>writeOffset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   This command is an alias for <a>glCopyBufferSubData</a>.
glCopyBufferSubDataNV :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

module Graphics.GL.Ext.NV.ConservativeRasterPreSnapTriangles

-- | Checks that the <a>GL_NV_conservative_raster_pre_snap_triangles</a>
--   extension is available.
gl_NV_conservative_raster_pre_snap_triangles :: Bool

-- | Usage: <tt><a>glConservativeRasterParameteriNV</a> pname param</tt>
glConservativeRasterParameteriNV :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.NV.ConservativeRasterDilate

-- | Checks that the <a>GL_NV_conservative_raster_dilate</a> extension is
--   available.
gl_NV_conservative_raster_dilate :: Bool

-- | Usage: <tt><a>glConservativeRasterParameterfNV</a> pname value</tt>
glConservativeRasterParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()

module Graphics.GL.Ext.NV.ConservativeRaster

-- | Checks that the <a>GL_NV_conservative_raster</a> extension is
--   available.
gl_NV_conservative_raster :: Bool

-- | Usage: <tt><a>glSubpixelPrecisionBiasNV</a> xbits ybits</tt>
glSubpixelPrecisionBiasNV :: MonadIO m => GLuint -> GLuint -> m ()

module Graphics.GL.Ext.NV.ConditionalRender

-- | Checks that the <a>GL_NV_conditional_render</a> extension is
--   available.
gl_NV_conditional_render :: Bool

-- | Usage: <tt><a>glBeginConditionalRenderNV</a> id mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>TypeEnum</tt>.
--   
--   This command is an alias for <a>glBeginConditionalRender</a>.
glBeginConditionalRenderNV :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glEndConditionalRenderNV</a></tt>
--   
--   This command is an alias for <a>glEndConditionalRender</a>.
glEndConditionalRenderNV :: MonadIO m => m ()

module Graphics.GL.Ext.NV.CommandList

-- | Checks that the <a>GL_NV_command_list</a> extension is available.
gl_NV_command_list :: Bool

-- | Usage: <tt><a>glCallCommandListNV</a> list</tt>
glCallCommandListNV :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCommandListSegmentsNV</a> list segments</tt>
glCommandListSegmentsNV :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glCompileCommandListNV</a> list</tt>
glCompileCommandListNV :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCreateCommandListsNV</a> n lists</tt>
glCreateCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateStatesNV</a> n states</tt>
glCreateStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteCommandListsNV</a> n lists</tt>
glDeleteCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteStatesNV</a> n states</tt>
glDeleteStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDrawCommandsAddressNV</a> primitiveMode indirects
--   sizes count</tt>
glDrawCommandsAddressNV :: MonadIO m => GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()

-- | Usage: <tt><a>glDrawCommandsNV</a> primitiveMode buffer indirects
--   sizes count</tt>
glDrawCommandsNV :: MonadIO m => GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()

-- | Usage: <tt><a>glDrawCommandsStatesAddressNV</a> indirects sizes states
--   fbos count</tt>
glDrawCommandsStatesAddressNV :: MonadIO m => Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDrawCommandsStatesNV</a> buffer indirects sizes states
--   fbos count</tt>
glDrawCommandsStatesNV :: MonadIO m => GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glGetCommandHeaderNV</a> tokenID size</tt>
glGetCommandHeaderNV :: MonadIO m => GLenum -> GLuint -> m GLuint

-- | Usage: <tt><a>glGetStageIndexNV</a> shadertype</tt>
glGetStageIndexNV :: MonadIO m => GLenum -> m GLushort

-- | Usage: <tt><a>glIsCommandListNV</a> list</tt>
glIsCommandListNV :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsStateNV</a> state</tt>
glIsStateNV :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glListDrawCommandsStatesClientNV</a> list segment
--   indirects sizes states fbos count</tt>
glListDrawCommandsStatesClientNV :: MonadIO m => GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glStateCaptureNV</a> state mode</tt>
glStateCaptureNV :: MonadIO m => GLuint -> GLenum -> m ()

module Graphics.GL.Ext.NV.ClipSpaceWScaling

-- | Checks that the <a>GL_NV_clip_space_w_scaling</a> extension is
--   available.
gl_NV_clip_space_w_scaling :: Bool

-- | Usage: <tt><a>glViewportPositionWScaleNV</a> index xcoeff ycoeff</tt>
glViewportPositionWScaleNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

module Graphics.GL.Ext.NV.BlendEquationAdvanced

-- | Checks that the <a>GL_NV_blend_equation_advanced</a> extension is
--   available.
gl_NV_blend_equation_advanced :: Bool

-- | Usage: <tt><a>glBlendBarrierNV</a></tt>
--   
--   This command is an alias for <a>glBlendBarrier</a>.
glBlendBarrierNV :: MonadIO m => m ()

-- | Usage: <tt><a>glBlendParameteriNV</a> pname value</tt>
glBlendParameteriNV :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.NV.BindlessTexture

-- | Checks that the <a>GL_NV_bindless_texture</a> extension is available.
gl_NV_bindless_texture :: Bool

-- | Usage: <tt><a>glGetImageHandleNV</a> texture level layered layer
--   format</tt>
--   
--   The parameter <tt>layered</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glGetImageHandleNV :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64

-- | Usage: <tt><a>glGetTextureHandleNV</a> texture</tt>
glGetTextureHandleNV :: MonadIO m => GLuint -> m GLuint64

-- | Usage: <tt><a>glGetTextureSamplerHandleNV</a> texture sampler</tt>
glGetTextureSamplerHandleNV :: MonadIO m => GLuint -> GLuint -> m GLuint64

-- | Usage: <tt><a>glIsImageHandleResidentNV</a> handle</tt>
glIsImageHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean

-- | Usage: <tt><a>glIsTextureHandleResidentNV</a> handle</tt>
glIsTextureHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean

-- | Usage: <tt><a>glMakeImageHandleNonResidentNV</a> handle</tt>
glMakeImageHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()

-- | Usage: <tt><a>glMakeImageHandleResidentNV</a> handle access</tt>
glMakeImageHandleResidentNV :: MonadIO m => GLuint64 -> GLenum -> m ()

-- | Usage: <tt><a>glMakeTextureHandleNonResidentNV</a> handle</tt>
glMakeTextureHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()

-- | Usage: <tt><a>glMakeTextureHandleResidentNV</a> handle</tt>
glMakeTextureHandleResidentNV :: MonadIO m => GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniformHandleui64NV</a> program location
--   value</tt>
glProgramUniformHandleui64NV :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniformHandleui64vNV</a> program location count
--   values</tt>
--   
--   The length of <tt>values</tt> should be <tt>count</tt>.
glProgramUniformHandleui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glUniformHandleui64NV</a> location value</tt>
glUniformHandleui64NV :: MonadIO m => GLint -> GLuint64 -> m ()

-- | Usage: <tt><a>glUniformHandleui64vNV</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glUniformHandleui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()

module Graphics.GL.Ext.NV.BindlessMultiDrawIndirectCount

-- | Checks that the <a>GL_NV_bindless_multi_draw_indirect_count</a>
--   extension is available.
gl_NV_bindless_multi_draw_indirect_count :: Bool

-- | Usage: <tt><a>glMultiDrawArraysIndirectBindlessCountNV</a> mode
--   indirect drawCount maxDrawCount stride vertexBufferCount</tt>
glMultiDrawArraysIndirectBindlessCountNV :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glMultiDrawElementsIndirectBindlessCountNV</a> mode type
--   indirect drawCount maxDrawCount stride vertexBufferCount</tt>
glMultiDrawElementsIndirectBindlessCountNV :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()

module Graphics.GL.Ext.NV.BindlessMultiDrawIndirect

-- | Checks that the <a>GL_NV_bindless_multi_draw_indirect</a> extension is
--   available.
gl_NV_bindless_multi_draw_indirect :: Bool

-- | Usage: <tt><a>glMultiDrawArraysIndirectBindlessNV</a> mode indirect
--   drawCount stride vertexBufferCount</tt>
glMultiDrawArraysIndirectBindlessNV :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glMultiDrawElementsIndirectBindlessNV</a> mode type
--   indirect drawCount stride vertexBufferCount</tt>
glMultiDrawElementsIndirectBindlessNV :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()

module Graphics.GL.Ext.NV

module Graphics.GL.Ext.MESA.WindowPos

-- | Checks that the <a>GL_MESA_window_pos</a> extension is available.
gl_MESA_window_pos :: Bool

-- | Usage: <tt><a>glWindowPos2dMESA</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   This command is an alias for <a>glWindowPos2d</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos2dvMESA</a>.
glWindowPos2dMESA :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos2dvMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glWindowPos2dv</a>.
glWindowPos2dvMESA :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos2fMESA</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   This command is an alias for <a>glWindowPos2f</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos2fvMESA</a>.
glWindowPos2fMESA :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos2fvMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glWindowPos2fv</a>.
glWindowPos2fvMESA :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos2iMESA</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   This command is an alias for <a>glWindowPos2i</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos2ivMESA</a>.
glWindowPos2iMESA :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glWindowPos2ivMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glWindowPos2iv</a>.
glWindowPos2ivMESA :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glWindowPos2sMESA</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   This command is an alias for <a>glWindowPos2s</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos2svMESA</a>.
glWindowPos2sMESA :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glWindowPos2svMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glWindowPos2sv</a>.
glWindowPos2svMESA :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glWindowPos3dMESA</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   This command is an alias for <a>glWindowPos3d</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos3dvMESA</a>.
glWindowPos3dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos3dvMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glWindowPos3dv</a>.
glWindowPos3dvMESA :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos3fMESA</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   This command is an alias for <a>glWindowPos3f</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos3fvMESA</a>.
glWindowPos3fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos3fvMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glWindowPos3fv</a>.
glWindowPos3fvMESA :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos3iMESA</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   This command is an alias for <a>glWindowPos3i</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos3ivMESA</a>.
glWindowPos3iMESA :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glWindowPos3ivMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glWindowPos3iv</a>.
glWindowPos3ivMESA :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glWindowPos3sMESA</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   This command is an alias for <a>glWindowPos3s</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos3svMESA</a>.
glWindowPos3sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glWindowPos3svMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glWindowPos3sv</a>.
glWindowPos3svMESA :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glWindowPos4dMESA</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos4dvMESA</a>.
glWindowPos4dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos4dvMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glWindowPos4dvMESA :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos4fMESA</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos4fvMESA</a>.
glWindowPos4fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos4fvMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glWindowPos4fvMESA :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos4iMESA</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordI</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos4ivMESA</a>.
glWindowPos4iMESA :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glWindowPos4ivMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glWindowPos4ivMESA :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glWindowPos4sMESA</a> x y z w</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>w</tt> is a <tt>CoordS</tt>.
--   
--   The vector equivalent of this command is <a>glWindowPos4svMESA</a>.
glWindowPos4sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glWindowPos4svMESA</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
glWindowPos4svMESA :: MonadIO m => Ptr GLshort -> m ()

module Graphics.GL.Ext.MESA

module Graphics.GL.Ext.KHR.Robustness

-- | Checks that the <a>GL_KHR_robustness</a> extension is available.
gl_KHR_robustness :: Bool

-- | Usage: <tt><a>glGetGraphicsResetStatus</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml</a>
glGetGraphicsResetStatus :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetGraphicsResetStatusKHR</a></tt>
--   
--   This command is an alias for <a>glGetGraphicsResetStatus</a>.
glGetGraphicsResetStatusKHR :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetnUniformfv</a> program location bufSize params</tt>
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnUniformfvKHR</a> program location bufSize
--   params</tt>
--   
--   This command is an alias for <a>glGetnUniformfv</a>.
glGetnUniformfvKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnUniformiv</a> program location bufSize params</tt>
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetnUniformivKHR</a> program location bufSize
--   params</tt>
--   
--   This command is an alias for <a>glGetnUniformiv</a>.
glGetnUniformivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetnUniformuiv</a> program location bufSize
--   params</tt>
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetnUniformuivKHR</a> program location bufSize
--   params</tt>
--   
--   This command is an alias for <a>glGetnUniformuiv</a>.
glGetnUniformuivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glReadnPixels</a> x y width height format type bufSize
--   data</tt>
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glReadnPixelsKHR</a> x y width height format type
--   bufSize data</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>data</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glReadnPixels</a>.
glReadnPixelsKHR :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.KHR.Debug

-- | Checks that the <a>GL_KHR_debug</a> extension is available.
gl_KHR_debug :: Bool

-- | Usage: <tt><a>glDebugMessageCallback</a> callback userParam</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageCallback.xhtml</a>
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()

-- | Usage: <tt><a>glDebugMessageCallbackKHR</a> callback userParam</tt>
--   
--   This command is an alias for <a>glDebugMessageCallback</a>.
glDebugMessageCallbackKHR :: MonadIO m => GLDEBUGPROCKHR -> Ptr () -> m ()

-- | Usage: <tt><a>glDebugMessageControl</a> source type severity count ids
--   enabled</tt>
--   
--   The parameter <tt>enabled</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageControl.xhtml</a>
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Usage: <tt><a>glDebugMessageControlKHR</a> source type severity count
--   ids enabled</tt>
--   
--   This command is an alias for <a>glDebugMessageControl</a>.
glDebugMessageControlKHR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Usage: <tt><a>glDebugMessageInsert</a> source type id severity length
--   buf</tt>
--   
--   The length of <tt>buf</tt> should be <tt>COMPSIZE(buf,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageInsert.xhtml</a>
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glDebugMessageInsertKHR</a> source type id severity
--   length buf</tt>
--   
--   This command is an alias for <a>glDebugMessageInsert</a>.
glDebugMessageInsertKHR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetDebugMessageLog</a> count bufSize sources types ids
--   severities lengths messageLog</tt>
--   
--   The length of <tt>sources</tt> should be <tt>count</tt>.
--   
--   The length of <tt>types</tt> should be <tt>count</tt>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   The length of <tt>severities</tt> should be <tt>count</tt>.
--   
--   The length of <tt>lengths</tt> should be <tt>count</tt>.
--   
--   The length of <tt>messageLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetDebugMessageLog.xhtml</a>
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetDebugMessageLogKHR</a> count bufSize sources types
--   ids severities lengths messageLog</tt>
--   
--   The length of <tt>sources</tt> should be <tt>count</tt>.
--   
--   The length of <tt>types</tt> should be <tt>count</tt>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   The length of <tt>severities</tt> should be <tt>count</tt>.
--   
--   The length of <tt>lengths</tt> should be <tt>count</tt>.
--   
--   The length of <tt>messageLog</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glGetDebugMessageLog</a>.
glGetDebugMessageLogKHR :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetObjectLabel</a> identifier name bufSize length
--   label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetObjectLabel.xhtml</a>
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetObjectLabelKHR</a> identifier name bufSize length
--   label</tt>
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glGetObjectLabel</a>.
glGetObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetObjectPtrLabel</a> ptr bufSize length label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetObjectPtrLabel.xhtml</a>
glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetObjectPtrLabelKHR</a> ptr bufSize length label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glGetObjectPtrLabel</a>.
glGetObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetPointerv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPointervPName</tt>, one of:
--   <a>GL_COLOR_ARRAY_POINTER</a>, <a>GL_COLOR_ARRAY_POINTER_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER_EXT</a>,
--   <a>GL_FEEDBACK_BUFFER_POINTER</a>, <a>GL_INDEX_ARRAY_POINTER</a>,
--   <a>GL_INDEX_ARRAY_POINTER_EXT</a>,
--   <a>GL_INSTRUMENT_BUFFER_POINTER_SGIX</a>,
--   <a>GL_NORMAL_ARRAY_POINTER</a>, <a>GL_NORMAL_ARRAY_POINTER_EXT</a>,
--   <a>GL_SELECTION_BUFFER_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER_EXT</a>,
--   <a>GL_VERTEX_ARRAY_POINTER</a>, <a>GL_VERTEX_ARRAY_POINTER_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml</a>
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetPointervKHR</a> pname params</tt>
--   
--   This command is an alias for <a>glGetPointerv</a>.
glGetPointervKHR :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glObjectLabel</a> identifier name length label</tt>
--   
--   The length of <tt>label</tt> should be
--   <tt>COMPSIZE(label,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glObjectLabel.xhtml</a>
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glObjectLabelKHR</a> identifier name length label</tt>
--   
--   This command is an alias for <a>glObjectLabel</a>.
glObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glObjectPtrLabel</a> ptr length label</tt>
--   
--   The length of <tt>label</tt> should be
--   <tt>COMPSIZE(label,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glObjectPtrLabel.xhtml</a>
glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glObjectPtrLabelKHR</a> ptr length label</tt>
--   
--   This command is an alias for <a>glObjectPtrLabel</a>.
glObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glPopDebugGroup</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPopDebugGroup.xhtml</a>
glPopDebugGroup :: MonadIO m => m ()

-- | Usage: <tt><a>glPopDebugGroupKHR</a></tt>
--   
--   This command is an alias for <a>glPopDebugGroup</a>.
glPopDebugGroupKHR :: MonadIO m => m ()

-- | Usage: <tt><a>glPushDebugGroup</a> source id length message</tt>
--   
--   The length of <tt>message</tt> should be
--   <tt>COMPSIZE(message,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPushDebugGroup.xhtml</a>
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glPushDebugGroupKHR</a> source id length message</tt>
--   
--   This command is an alias for <a>glPushDebugGroup</a>.
glPushDebugGroupKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

module Graphics.GL.Ext.KHR

module Graphics.GL.Ext.INTEL.PerformanceQuery

-- | Checks that the <a>GL_INTEL_performance_query</a> extension is
--   available.
gl_INTEL_performance_query :: Bool

-- | Usage: <tt><a>glBeginPerfQueryINTEL</a> queryHandle</tt>
glBeginPerfQueryINTEL :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCreatePerfQueryINTEL</a> queryId queryHandle</tt>
glCreatePerfQueryINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeletePerfQueryINTEL</a> queryHandle</tt>
glDeletePerfQueryINTEL :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glEndPerfQueryINTEL</a> queryHandle</tt>
glEndPerfQueryINTEL :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGetFirstPerfQueryIdINTEL</a> queryId</tt>
glGetFirstPerfQueryIdINTEL :: MonadIO m => Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetNextPerfQueryIdINTEL</a> queryId nextQueryId</tt>
glGetNextPerfQueryIdINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetPerfCounterInfoINTEL</a> queryId counterId
--   counterNameLength counterName counterDescLength counterDesc
--   counterOffset counterDataSize counterTypeEnum counterDataTypeEnum
--   rawCounterMaxValue</tt>
glGetPerfCounterInfoINTEL :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glGetPerfQueryDataINTEL</a> queryHandle flags dataSize
--   data bytesWritten</tt>
glGetPerfQueryDataINTEL :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetPerfQueryIdByNameINTEL</a> queryName queryId</tt>
glGetPerfQueryIdByNameINTEL :: MonadIO m => Ptr GLchar -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetPerfQueryInfoINTEL</a> queryId queryNameLength
--   queryName dataSize noCounters noInstances capsMask</tt>
glGetPerfQueryInfoINTEL :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()

module Graphics.GL.Ext.INTEL.ParallelArrays

-- | Checks that the <a>GL_INTEL_parallel_arrays</a> extension is
--   available.
gl_INTEL_parallel_arrays :: Bool

-- | Usage: <tt><a>glColorPointervINTEL</a> size type pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be <tt>4</tt>.
glColorPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glNormalPointervINTEL</a> type pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>NormalPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be <tt>4</tt>.
glNormalPointervINTEL :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glTexCoordPointervINTEL</a> size type pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be <tt>4</tt>.
glTexCoordPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glVertexPointervINTEL</a> size type pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be <tt>4</tt>.
glVertexPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()

module Graphics.GL.Ext.INTEL.MapTexture

-- | Checks that the <a>GL_INTEL_map_texture</a> extension is available.
gl_INTEL_map_texture :: Bool

-- | Usage: <tt><a>glMapTexture2DINTEL</a> texture level access stride
--   layout</tt>
--   
--   The length of <tt>stride</tt> should be <tt>1</tt>.
--   
--   The length of <tt>layout</tt> should be <tt>1</tt>.
glMapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> m (Ptr ())

-- | Usage: <tt><a>glSyncTextureINTEL</a> texture</tt>
glSyncTextureINTEL :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glUnmapTexture2DINTEL</a> texture level</tt>
glUnmapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> m ()

module Graphics.GL.Ext.INTEL

module Graphics.GL.Ext.INGR.BlendFuncSeparate

-- | Checks that the GL_INGR_blend_func_separate extension is available.
gl_INGR_blend_func_separate :: Bool

-- | Usage: <tt><a>glBlendFuncSeparateINGR</a> sfactorRGB dfactorRGB
--   sfactorAlpha dfactorAlpha</tt>
--   
--   The parameter <tt>sfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>sfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   This command is an alias for <a>glBlendFuncSeparate</a>.
glBlendFuncSeparateINGR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

module Graphics.GL.Ext.INGR

module Graphics.GL.Ext.IMG.UserClipPlane

-- | Checks that the <a>GL_IMG_user_clip_plane</a> extension is available.
gl_IMG_user_clip_plane :: Bool

-- | Usage: <tt><a>glClipPlanefIMG</a> p eqn</tt>
--   
--   The length of <tt>eqn</tt> should be <tt>4</tt>.
glClipPlanefIMG :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glClipPlanexIMG</a> p eqn</tt>
--   
--   The length of <tt>eqn</tt> should be <tt>4</tt>.
glClipPlanexIMG :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

module Graphics.GL.Ext.IMG.MultisampledRenderToTexture

-- | Checks that the <a>GL_IMG_multisampled_render_to_texture</a> extension
--   is available.
gl_IMG_multisampled_render_to_texture :: Bool

-- | Usage: <tt><a>glFramebufferTexture2DMultisampleIMG</a> target
--   attachment textarget texture level samples</tt>
glFramebufferTexture2DMultisampleIMG :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glRenderbufferStorageMultisampleIMG</a> target samples
--   internalformat width height</tt>
glRenderbufferStorageMultisampleIMG :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.IMG.FramebufferDownsample

-- | Checks that the <a>GL_IMG_framebuffer_downsample</a> extension is
--   available.
gl_IMG_framebuffer_downsample :: Bool

-- | Usage: <tt><a>glFramebufferTexture2DDownsampleIMG</a> target
--   attachment textarget texture level xscale yscale</tt>
glFramebufferTexture2DDownsampleIMG :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTextureLayerDownsampleIMG</a> target
--   attachment texture level layer xscale yscale</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
glFramebufferTextureLayerDownsampleIMG :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

module Graphics.GL.Ext.IMG.BindlessTexture

-- | Checks that the <a>GL_IMG_bindless_texture</a> extension is available.
gl_IMG_bindless_texture :: Bool

-- | Usage: <tt><a>glGetTextureHandleIMG</a> texture</tt>
--   
--   This command is an alias for <a>glGetTextureHandleARB</a>.
glGetTextureHandleIMG :: MonadIO m => GLuint -> m GLuint64

-- | Usage: <tt><a>glGetTextureSamplerHandleIMG</a> texture sampler</tt>
--   
--   This command is an alias for <a>glGetTextureSamplerHandleARB</a>.
glGetTextureSamplerHandleIMG :: MonadIO m => GLuint -> GLuint -> m GLuint64

-- | Usage: <tt><a>glProgramUniformHandleui64IMG</a> program location
--   value</tt>
--   
--   This command is an alias for <a>glProgramUniformHandleui64ARB</a>.
glProgramUniformHandleui64IMG :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniformHandleui64vIMG</a> program location
--   count values</tt>
--   
--   The length of <tt>values</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniformHandleui64vARB</a>.
glProgramUniformHandleui64vIMG :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glUniformHandleui64IMG</a> location value</tt>
--   
--   This command is an alias for <a>glUniformHandleui64ARB</a>.
glUniformHandleui64IMG :: MonadIO m => GLint -> GLuint64 -> m ()

-- | Usage: <tt><a>glUniformHandleui64vIMG</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glUniformHandleui64vARB</a>.
glUniformHandleui64vIMG :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()

module Graphics.GL.Ext.IMG

module Graphics.GL.Ext.IBM.VertexArrayLists

-- | Checks that the <a>GL_IBM_vertex_array_lists</a> extension is
--   available.
gl_IBM_vertex_array_lists :: Bool

-- | Usage: <tt><a>glColorPointerListIBM</a> size type stride pointer
--   ptrstride</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()

-- | Usage: <tt><a>glEdgeFlagPointerListIBM</a> stride pointer
--   ptrstride</tt>
--   
--   The parameter <tt>pointer</tt> is a <tt>BooleanPointer</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>COMPSIZE(stride)</tt>.
glEdgeFlagPointerListIBM :: MonadIO m => GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()

-- | Usage: <tt><a>glFogCoordPointerListIBM</a> type stride pointer
--   ptrstride</tt>
--   
--   The parameter <tt>type</tt> is a <tt>FogPointerTypeIBM</tt>, one of:
--   <a>GL_FLOAT</a>, <a>GL_DOUBLE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glFogCoordPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()

-- | Usage: <tt><a>glIndexPointerListIBM</a> type stride pointer
--   ptrstride</tt>
--   
--   The parameter <tt>type</tt> is a <tt>IndexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glIndexPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()

-- | Usage: <tt><a>glNormalPointerListIBM</a> type stride pointer
--   ptrstride</tt>
--   
--   The parameter <tt>type</tt> is a <tt>NormalPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glNormalPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()

-- | Usage: <tt><a>glSecondaryColorPointerListIBM</a> size type stride
--   pointer ptrstride</tt>
--   
--   The parameter <tt>type</tt> is a
--   <tt>SecondaryColorPointerTypeIBM</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glSecondaryColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()

-- | Usage: <tt><a>glTexCoordPointerListIBM</a> size type stride pointer
--   ptrstride</tt>
--   
--   The parameter <tt>type</tt> is a <tt>TexCoordPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glTexCoordPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()

-- | Usage: <tt><a>glVertexPointerListIBM</a> size type stride pointer
--   ptrstride</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glVertexPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()

module Graphics.GL.Ext.IBM.StaticData

-- | Checks that the <a>GL_IBM_static_data</a> extension is available.
gl_IBM_static_data :: Bool

-- | Usage: <tt><a>glFlushStaticDataIBM</a> target</tt>
glFlushStaticDataIBM :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.IBM.MultimodeDrawArrays

-- | Checks that the <a>GL_IBM_multimode_draw_arrays</a> extension is
--   available.
gl_IBM_multimode_draw_arrays :: Bool

-- | Usage: <tt><a>glMultiModeDrawArraysIBM</a> mode first count primcount
--   modestride</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>mode</tt> should be <tt>COMPSIZE(primcount)</tt>.
--   
--   The length of <tt>first</tt> should be <tt>COMPSIZE(primcount)</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(primcount)</tt>.
glMultiModeDrawArraysIBM :: MonadIO m => Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glMultiModeDrawElementsIBM</a> mode count type indices
--   primcount modestride</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>mode</tt> should be <tt>COMPSIZE(primcount)</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(primcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(primcount)</tt>.
glMultiModeDrawElementsIBM :: MonadIO m => Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> m ()

module Graphics.GL.Ext.IBM

module Graphics.GL.Ext.HP.ImageTransform

-- | Checks that the <a>GL_HP_image_transform</a> extension is available.
gl_HP_image_transform :: Bool

-- | Usage: <tt><a>glGetImageTransformParameterfvHP</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ImageTransformTargetHP</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ImageTransformPNameHP</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetImageTransformParameterivHP</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ImageTransformTargetHP</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ImageTransformPNameHP</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glImageTransformParameterfHP</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ImageTransformTargetHP</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ImageTransformPNameHP</tt>.
glImageTransformParameterfHP :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glImageTransformParameterfvHP</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ImageTransformTargetHP</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ImageTransformPNameHP</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glImageTransformParameteriHP</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ImageTransformTargetHP</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ImageTransformPNameHP</tt>.
glImageTransformParameteriHP :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glImageTransformParameterivHP</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ImageTransformTargetHP</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ImageTransformPNameHP</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.HP

module Graphics.GL.Ext.GREMEDY.StringMarker

-- | Checks that the <a>GL_GREMEDY_string_marker</a> extension is
--   available.
gl_GREMEDY_string_marker :: Bool

-- | Usage: <tt><a>glStringMarkerGREMEDY</a> len string</tt>
--   
--   The length of <tt>string</tt> should be <tt>len</tt>.
glStringMarkerGREMEDY :: MonadIO m => GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.GREMEDY

module Graphics.GL.Ext.EXT.X11SyncObject

-- | Checks that the <a>GL_EXT_x11_sync_object</a> extension is available.
gl_EXT_x11_sync_object :: Bool

-- | Usage: <tt><a>glImportSyncEXT</a> external_sync_type external_sync
--   flags</tt>
glImportSyncEXT :: MonadIO m => GLenum -> GLintptr -> GLbitfield -> m GLsync

module Graphics.GL.Ext.EXT.WindowRectangles

-- | Checks that the <a>GL_EXT_window_rectangles</a> extension is
--   available.
gl_EXT_window_rectangles :: Bool

-- | Usage: <tt><a>glWindowRectanglesEXT</a> mode count box</tt>
--   
--   The length of <tt>box</tt> should be <tt>COMPSIZE(count)</tt>.
glWindowRectanglesEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLint -> m ()

module Graphics.GL.Ext.EXT.VertexWeighting

-- | Checks that the <a>GL_EXT_vertex_weighting</a> extension is available.
gl_EXT_vertex_weighting :: Bool

-- | Usage: <tt><a>glVertexWeightPointerEXT</a> size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexWeightPointerTypeEXT</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glVertexWeightPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glVertexWeightfEXT</a> weight</tt>
--   
--   The vector equivalent of this command is <a>glVertexWeightfvEXT</a>.
glVertexWeightfEXT :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glVertexWeightfvEXT</a> weight</tt>
--   
--   The length of <tt>weight</tt> should be <tt>1</tt>.
glVertexWeightfvEXT :: MonadIO m => Ptr GLfloat -> m ()

module Graphics.GL.Ext.EXT.VertexShader

-- | Checks that the <a>GL_EXT_vertex_shader</a> extension is available.
gl_EXT_vertex_shader :: Bool

-- | Usage: <tt><a>glBeginVertexShaderEXT</a></tt>
glBeginVertexShaderEXT :: MonadIO m => m ()

-- | Usage: <tt><a>glBindLightParameterEXT</a> light value</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>value</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
glBindLightParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint

-- | Usage: <tt><a>glBindMaterialParameterEXT</a> face value</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>value</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
glBindMaterialParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint

-- | Usage: <tt><a>glBindParameterEXT</a> value</tt>
--   
--   The parameter <tt>value</tt> is a <tt>VertexShaderParameterEXT</tt>.
glBindParameterEXT :: MonadIO m => GLenum -> m GLuint

-- | Usage: <tt><a>glBindTexGenParameterEXT</a> unit coord value</tt>
--   
--   The parameter <tt>unit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>value</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
glBindTexGenParameterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> m GLuint

-- | Usage: <tt><a>glBindTextureUnitParameterEXT</a> unit value</tt>
--   
--   The parameter <tt>unit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>value</tt> is a
--   <tt>VertexShaderTextureUnitParameter</tt>.
glBindTextureUnitParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint

-- | Usage: <tt><a>glBindVertexShaderEXT</a> id</tt>
glBindVertexShaderEXT :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteVertexShaderEXT</a> id</tt>
glDeleteVertexShaderEXT :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDisableVariantClientStateEXT</a> id</tt>
glDisableVariantClientStateEXT :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glEnableVariantClientStateEXT</a> id</tt>
glEnableVariantClientStateEXT :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glEndVertexShaderEXT</a></tt>
glEndVertexShaderEXT :: MonadIO m => m ()

-- | Usage: <tt><a>glExtractComponentEXT</a> res src num</tt>
glExtractComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glGenSymbolsEXT</a> datatype storagetype range
--   components</tt>
--   
--   The parameter <tt>datatype</tt> is a <tt>DataTypeEXT</tt>.
--   
--   The parameter <tt>storagetype</tt> is a
--   <tt>VertexShaderStorageTypeEXT</tt>.
--   
--   The parameter <tt>range</tt> is a <tt>ParameterRangeEXT</tt>.
glGenSymbolsEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m GLuint

-- | Usage: <tt><a>glGenVertexShadersEXT</a> range</tt>
glGenVertexShadersEXT :: MonadIO m => GLuint -> m GLuint

-- | Usage: <tt><a>glGetInvariantBooleanvEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetInvariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetInvariantFloatvEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetInvariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetInvariantIntegervEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetInvariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetLocalConstantBooleanvEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetLocalConstantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetLocalConstantFloatvEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetLocalConstantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetLocalConstantIntegervEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetLocalConstantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVariantBooleanvEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetVariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetVariantFloatvEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetVariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVariantIntegervEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetVariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVariantPointervEXT</a> id value data</tt>
--   
--   The parameter <tt>value</tt> is a <tt>GetVariantValueEXT</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(id)</tt>.
glGetVariantPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glInsertComponentEXT</a> res src num</tt>
glInsertComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glIsVariantEnabledEXT</a> id cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>VariantCapEXT</tt>.
glIsVariantEnabledEXT :: MonadIO m => GLuint -> GLenum -> m GLboolean

-- | Usage: <tt><a>glSetInvariantEXT</a> id type addr</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ScalarType</tt>.
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id,type)</tt>.
glSetInvariantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glSetLocalConstantEXT</a> id type addr</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ScalarType</tt>.
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id,type)</tt>.
glSetLocalConstantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glShaderOp1EXT</a> op res arg1</tt>
--   
--   The parameter <tt>op</tt> is a <tt>VertexShaderOpEXT</tt>.
glShaderOp1EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glShaderOp2EXT</a> op res arg1 arg2</tt>
--   
--   The parameter <tt>op</tt> is a <tt>VertexShaderOpEXT</tt>.
glShaderOp2EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glShaderOp3EXT</a> op res arg1 arg2 arg3</tt>
--   
--   The parameter <tt>op</tt> is a <tt>VertexShaderOpEXT</tt>.
glShaderOp3EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glSwizzleEXT</a> res in outX outY outZ outW</tt>
--   
--   The parameter <tt>outX</tt> is a <tt>VertexShaderCoordOutEXT</tt>.
--   
--   The parameter <tt>outY</tt> is a <tt>VertexShaderCoordOutEXT</tt>.
--   
--   The parameter <tt>outZ</tt> is a <tt>VertexShaderCoordOutEXT</tt>.
--   
--   The parameter <tt>outW</tt> is a <tt>VertexShaderCoordOutEXT</tt>.
glSwizzleEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glVariantPointerEXT</a> id type stride addr</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ScalarType</tt>.
--   
--   The length of <tt>addr</tt> should be
--   <tt>COMPSIZE(id,type,stride)</tt>.
glVariantPointerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr () -> m ()

-- | Usage: <tt><a>glVariantbvEXT</a> id addr</tt>
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id)</tt>.
glVariantbvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVariantdvEXT</a> id addr</tt>
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id)</tt>.
glVariantdvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVariantfvEXT</a> id addr</tt>
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id)</tt>.
glVariantfvEXT :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVariantivEXT</a> id addr</tt>
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id)</tt>.
glVariantivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVariantsvEXT</a> id addr</tt>
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id)</tt>.
glVariantsvEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVariantubvEXT</a> id addr</tt>
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id)</tt>.
glVariantubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVariantuivEXT</a> id addr</tt>
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id)</tt>.
glVariantuivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVariantusvEXT</a> id addr</tt>
--   
--   The length of <tt>addr</tt> should be <tt>COMPSIZE(id)</tt>.
glVariantusvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glWriteMaskEXT</a> res in outX outY outZ outW</tt>
--   
--   The parameter <tt>outX</tt> is a <tt>VertexShaderWriteMaskEXT</tt>.
--   
--   The parameter <tt>outY</tt> is a <tt>VertexShaderWriteMaskEXT</tt>.
--   
--   The parameter <tt>outZ</tt> is a <tt>VertexShaderWriteMaskEXT</tt>.
--   
--   The parameter <tt>outW</tt> is a <tt>VertexShaderWriteMaskEXT</tt>.
glWriteMaskEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

module Graphics.GL.Ext.EXT.VertexAttrib64bit

-- | Checks that the <a>GL_EXT_vertex_attrib_64bit</a> extension is
--   available.
gl_EXT_vertex_attrib_64bit :: Bool

-- | Usage: <tt><a>glGetVertexAttribLdvEXT</a> index pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribLdv</a>.
glGetVertexAttribLdvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL1dEXT</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttribL1d</a>.
glVertexAttribL1dEXT :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL1dvEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttribL1dv</a>.
glVertexAttribL1dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL2dEXT</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttribL2d</a>.
glVertexAttribL2dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL2dvEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttribL2dv</a>.
glVertexAttribL2dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL3dEXT</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttribL3d</a>.
glVertexAttribL3dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL3dvEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttribL3dv</a>.
glVertexAttribL3dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL4dEXT</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttribL4d</a>.
glVertexAttribL4dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribL4dvEXT</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttribL4dv</a>.
glVertexAttribL4dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttribLPointerEXT</a> index size type stride
--   pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>size</tt>.
--   
--   This command is an alias for <a>glVertexAttribLPointer</a>.
glVertexAttribLPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.VertexArray

-- | Checks that the <a>GL_EXT_vertex_array</a> extension is available.
gl_EXT_vertex_array :: Bool

-- | Usage: <tt><a>glArrayElementEXT</a> i</tt>
--   
--   This command is an alias for <a>glArrayElement</a>.
glArrayElementEXT :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glColorPointerEXT</a> size type stride count
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride,count)</tt>.
glColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glDrawArraysEXT</a> mode first count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawArrays</a>.
glDrawArraysEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glEdgeFlagPointerEXT</a> stride count pointer</tt>
--   
--   The parameter <tt>pointer</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(stride,count)</tt>.
glEdgeFlagPointerEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetPointervEXT</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPointervPName</tt>, one of:
--   <a>GL_COLOR_ARRAY_POINTER</a>, <a>GL_COLOR_ARRAY_POINTER_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER_EXT</a>,
--   <a>GL_FEEDBACK_BUFFER_POINTER</a>, <a>GL_INDEX_ARRAY_POINTER</a>,
--   <a>GL_INDEX_ARRAY_POINTER_EXT</a>,
--   <a>GL_INSTRUMENT_BUFFER_POINTER_SGIX</a>,
--   <a>GL_NORMAL_ARRAY_POINTER</a>, <a>GL_NORMAL_ARRAY_POINTER_EXT</a>,
--   <a>GL_SELECTION_BUFFER_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER_EXT</a>,
--   <a>GL_VERTEX_ARRAY_POINTER</a>, <a>GL_VERTEX_ARRAY_POINTER_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetPointerv</a>.
glGetPointervEXT :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glIndexPointerEXT</a> type stride count pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>IndexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride,count)</tt>.
glIndexPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glNormalPointerEXT</a> type stride count pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>NormalPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride,count)</tt>.
glNormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glTexCoordPointerEXT</a> size type stride count
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>TexCoordPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride,count)</tt>.
glTexCoordPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glVertexPointerEXT</a> size type stride count
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride,count)</tt>.
glVertexPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.TransformFeedback

-- | Checks that the <a>GL_EXT_transform_feedback</a> extension is
--   available.
gl_EXT_transform_feedback :: Bool

-- | Usage: <tt><a>glBeginTransformFeedbackEXT</a> primitiveMode</tt>
--   
--   This command is an alias for <a>glBeginTransformFeedback</a>.
glBeginTransformFeedbackEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glBindBufferBaseEXT</a> target index buffer</tt>
--   
--   This command is an alias for <a>glBindBufferBase</a>.
glBindBufferBaseEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindBufferOffsetEXT</a> target index buffer
--   offset</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
glBindBufferOffsetEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()

-- | Usage: <tt><a>glBindBufferRangeEXT</a> target index buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   This command is an alias for <a>glBindBufferRange</a>.
glBindBufferRangeEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glEndTransformFeedbackEXT</a></tt>
--   
--   This command is an alias for <a>glEndTransformFeedback</a>.
glEndTransformFeedbackEXT :: MonadIO m => m ()

-- | Usage: <tt><a>glGetTransformFeedbackVaryingEXT</a> program index
--   bufSize length size type name</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glGetTransformFeedbackVarying</a>.
glGetTransformFeedbackVaryingEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glTransformFeedbackVaryingsEXT</a> program count
--   varyings bufferMode</tt>
--   
--   The length of <tt>varyings</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glTransformFeedbackVaryings</a>.
glTransformFeedbackVaryingsEXT :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()

module Graphics.GL.Ext.EXT.TextureView

-- | Checks that the <a>GL_EXT_texture_view</a> extension is available.
gl_EXT_texture_view :: Bool

-- | Usage: <tt><a>glTextureViewEXT</a> texture target origtexture
--   internalformat minlevel numlevels minlayer numlayers</tt>
--   
--   This command is an alias for <a>glTextureView</a>.
glTextureViewEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

module Graphics.GL.Ext.EXT.TextureStorage

-- | Checks that the <a>GL_EXT_texture_storage</a> extension is available.
gl_EXT_texture_storage :: Bool

-- | Usage: <tt><a>glTexStorage1DEXT</a> target levels internalformat
--   width</tt>
--   
--   This command is an alias for <a>glTexStorage1D</a>.
glTexStorage1DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glTexStorage2DEXT</a> target levels internalformat width
--   height</tt>
--   
--   This command is an alias for <a>glTexStorage2D</a>.
glTexStorage2DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTexStorage3DEXT</a> target levels internalformat width
--   height depth</tt>
--   
--   This command is an alias for <a>glTexStorage3D</a>.
glTexStorage3DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage1DEXT</a> texture target levels
--   internalformat width</tt>
glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage2DEXT</a> texture target levels
--   internalformat width height</tt>
glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage3DEXT</a> texture target levels
--   internalformat width height depth</tt>
glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.TexturePerturbNormal

-- | Checks that the <a>GL_EXT_texture_perturb_normal</a> extension is
--   available.
gl_EXT_texture_perturb_normal :: Bool

-- | Usage: <tt><a>glTextureNormalEXT</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>TextureNormalModeEXT</tt>.
glTextureNormalEXT :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.EXT.TextureObject

-- | Checks that the <a>GL_EXT_texture_object</a> extension is available.
gl_EXT_texture_object :: Bool

-- | Usage: <tt><a>glAreTexturesResidentEXT</a> n textures residences</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>residences</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   The length of <tt>residences</tt> should be <tt>n</tt>.
glAreTexturesResidentEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean

-- | Usage: <tt><a>glBindTextureEXT</a> target texture</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   This command is an alias for <a>glBindTexture</a>.
glBindTextureEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteTexturesEXT</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
glDeleteTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenTexturesEXT</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
glGenTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsTextureEXT</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
glIsTextureEXT :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glPrioritizeTexturesEXT</a> n textures priorities</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>priorities</tt> is a <tt>ClampedFloat32</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   The length of <tt>priorities</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glPrioritizeTextures</a>.
glPrioritizeTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLclampf -> m ()

module Graphics.GL.Ext.EXT.TextureInteger

-- | Checks that the <a>GL_EXT_texture_integer</a> extension is available.
gl_EXT_texture_integer :: Bool

-- | Usage: <tt><a>glClearColorIiEXT</a> red green blue alpha</tt>
glClearColorIiEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glClearColorIuiEXT</a> red green blue alpha</tt>
glClearColorIuiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glGetTexParameterIivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetTexParameterIiv</a>.
glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexParameterIuivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetTexParameterIuiv</a>.
glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexParameterIivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glTexParameterIiv</a>.
glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexParameterIuivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glTexParameterIuiv</a>.
glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

module Graphics.GL.Ext.EXT.TextureBuffer

-- | Checks that the <a>GL_EXT_texture_buffer</a> extension is available.
gl_EXT_texture_buffer :: Bool

-- | Usage: <tt><a>glTexBufferEXT</a> target internalformat buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   This command is an alias for <a>glTexBuffer</a>.
glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexBufferRangeEXT</a> target internalformat buffer
--   offset size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   This command is an alias for <a>glTexBufferRange</a>.
glTexBufferRangeEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

module Graphics.GL.Ext.EXT.TextureBorderClamp

-- | Checks that the <a>GL_EXT_texture_border_clamp</a> extension is
--   available.
gl_EXT_texture_border_clamp :: Bool

-- | Usage: <tt><a>glGetSamplerParameterIivEXT</a> sampler pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetSamplerParameterIiv</a>.
glGetSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSamplerParameterIuivEXT</a> sampler pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetSamplerParameterIuiv</a>.
glGetSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetTexParameterIivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetTexParameterIiv</a>.
glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexParameterIuivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetTexParameterIuiv</a>.
glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glSamplerParameterIivEXT</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glSamplerParameterIiv</a>.
glSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glSamplerParameterIuivEXT</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glSamplerParameterIuiv</a>.
glSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexParameterIivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glTexParameterIiv</a>.
glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexParameterIuivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glTexParameterIuiv</a>.
glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

module Graphics.GL.Ext.EXT.Texture3D

-- | Checks that the <a>GL_EXT_texture3D</a> extension is available.
gl_EXT_texture3D :: Bool

-- | Usage: <tt><a>glTexImage3DEXT</a> target level internalformat width
--   height depth border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   This command is an alias for <a>glTexImage3D</a>.
glTexImage3DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexSubImage3DEXT</a> target level xoffset yoffset
--   zoffset width height depth format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
--   
--   This command is an alias for <a>glTexSubImage3D</a>.
glTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.TessellationShader

-- | Checks that the <a>GL_EXT_tessellation_shader</a> extension is
--   available.
gl_EXT_tessellation_shader :: Bool

-- | Usage: <tt><a>glPatchParameteriEXT</a> pname value</tt>
--   
--   This command is an alias for <a>glPatchParameteri</a>.
glPatchParameteriEXT :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.EXT.Subtexture

-- | Checks that the <a>GL_EXT_subtexture</a> extension is available.
gl_EXT_subtexture :: Bool

-- | Usage: <tt><a>glTexSubImage1DEXT</a> target level xoffset width format
--   type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   This command is an alias for <a>glTexSubImage1D</a>.
glTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexSubImage2DEXT</a> target level xoffset yoffset
--   width height format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   This command is an alias for <a>glTexSubImage2D</a>.
glTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.StencilTwoSide

-- | Checks that the <a>GL_EXT_stencil_two_side</a> extension is available.
gl_EXT_stencil_two_side :: Bool

-- | Usage: <tt><a>glActiveStencilFaceEXT</a> face</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
glActiveStencilFaceEXT :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.EXT.StencilClearTag

-- | Checks that the <a>GL_EXT_stencil_clear_tag</a> extension is
--   available.
gl_EXT_stencil_clear_tag :: Bool

-- | Usage: <tt><a>glStencilClearTagEXT</a> stencilTagBits
--   stencilClearTag</tt>
glStencilClearTagEXT :: MonadIO m => GLsizei -> GLuint -> m ()

module Graphics.GL.Ext.EXT.SparseTexture

-- | Checks that the <a>GL_EXT_sparse_texture</a> extension is available.
gl_EXT_sparse_texture :: Bool

-- | Usage: <tt><a>glTexPageCommitmentEXT</a> target level xoffset yoffset
--   zoffset width height depth commit</tt>
--   
--   This command is an alias for <a>glTexPageCommitmentARB</a>.
glTexPageCommitmentEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage2

-- | Checks that the <a>GL_EXT_shader_pixel_local_storage2</a> extension is
--   available.
gl_EXT_shader_pixel_local_storage2 :: Bool

-- | Usage: <tt><a>glClearPixelLocalStorageuiEXT</a> offset n values</tt>
glClearPixelLocalStorageuiEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glFramebufferPixelLocalStorageSizeEXT</a> target
--   size</tt>
glFramebufferPixelLocalStorageSizeEXT :: MonadIO m => GLuint -> GLsizei -> m ()

-- | Usage: <tt><a>glGetFramebufferPixelLocalStorageSizeEXT</a> target</tt>
glGetFramebufferPixelLocalStorageSizeEXT :: MonadIO m => GLuint -> m GLsizei

module Graphics.GL.Ext.EXT.ShaderImageLoadStore

-- | Checks that the <a>GL_EXT_shader_image_load_store</a> extension is
--   available.
gl_EXT_shader_image_load_store :: Bool

-- | Usage: <tt><a>glBindImageTextureEXT</a> index texture level layered
--   layer access format</tt>
--   
--   The parameter <tt>layered</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glBindImageTextureEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glMemoryBarrierEXT</a> barriers</tt>
--   
--   This command is an alias for <a>glMemoryBarrier</a>.
glMemoryBarrierEXT :: MonadIO m => GLbitfield -> m ()

module Graphics.GL.Ext.EXT.SeparateShaderObjects

-- | Checks that the <a>GL_EXT_separate_shader_objects</a> extension is
--   available.
gl_EXT_separate_shader_objects :: Bool

-- | Usage: <tt><a>glActiveProgramEXT</a> program</tt>
glActiveProgramEXT :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glActiveShaderProgramEXT</a> pipeline program</tt>
glActiveShaderProgramEXT :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBindProgramPipelineEXT</a> pipeline</tt>
glBindProgramPipelineEXT :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glCreateShaderProgramEXT</a> type string</tt>
glCreateShaderProgramEXT :: MonadIO m => GLenum -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glCreateShaderProgramvEXT</a> type count strings</tt>
--   
--   The length of <tt>strings</tt> should be <tt>count</tt>.
glCreateShaderProgramvEXT :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint

-- | Usage: <tt><a>glDeleteProgramPipelinesEXT</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
glDeleteProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenProgramPipelinesEXT</a> n pipelines</tt>
--   
--   The length of <tt>pipelines</tt> should be <tt>n</tt>.
glGenProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetProgramPipelineInfoLogEXT</a> pipeline bufSize
--   length infoLog</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>bufSize</tt>.
glGetProgramPipelineInfoLogEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetProgramPipelineivEXT</a> pipeline pname params</tt>
glGetProgramPipelineivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsProgramPipelineEXT</a> pipeline</tt>
glIsProgramPipelineEXT :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glProgramParameteriEXT</a> program pname value</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramParameterPName</tt>.
--   
--   This command is an alias for <a>glProgramParameteri</a>.
glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1fEXT</a> program location v0</tt>
--   
--   This command is an alias for <a>glProgramUniform1f</a>.
glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniform1fv</a>.
glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1iEXT</a> program location v0</tt>
--   
--   This command is an alias for <a>glProgramUniform1i</a>.
glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniform1iv</a>.
glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1uiEXT</a> program location v0</tt>
--   
--   This command is an alias for <a>glProgramUniform1ui</a>.
glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform1uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniform1uiv</a>.
glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2fEXT</a> program location v0 v1</tt>
--   
--   This command is an alias for <a>glProgramUniform2f</a>.
glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glProgramUniform2fv</a>.
glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2iEXT</a> program location v0 v1</tt>
--   
--   This command is an alias for <a>glProgramUniform2i</a>.
glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glProgramUniform2iv</a>.
glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2uiEXT</a> program location v0 v1</tt>
--   
--   This command is an alias for <a>glProgramUniform2ui</a>.
glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glProgramUniform2uiv</a>.
glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3fEXT</a> program location v0 v1 v2</tt>
--   
--   This command is an alias for <a>glProgramUniform3f</a>.
glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glProgramUniform3fv</a>.
glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3iEXT</a> program location v0 v1 v2</tt>
--   
--   This command is an alias for <a>glProgramUniform3i</a>.
glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glProgramUniform3iv</a>.
glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3uiEXT</a> program location v0 v1
--   v2</tt>
--   
--   This command is an alias for <a>glProgramUniform3ui</a>.
glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glProgramUniform3uiv</a>.
glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4fEXT</a> program location v0 v1 v2
--   v3</tt>
--   
--   This command is an alias for <a>glProgramUniform4f</a>.
glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniform4fv</a>.
glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4iEXT</a> program location v0 v1 v2
--   v3</tt>
--   
--   This command is an alias for <a>glProgramUniform4i</a>.
glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniform4iv</a>.
glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4uiEXT</a> program location v0 v1 v2
--   v3</tt>
--   
--   This command is an alias for <a>glProgramUniform4ui</a>.
glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniform4uiv</a>.
glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2fvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix2fv</a>.
glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x3fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix2x3fv</a>.
glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x4fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix2x4fv</a>.
glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3fvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix3fv</a>.
glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x2fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix3x2fv</a>.
glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x4fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix3x4fv</a>.
glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4fvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix4fv</a>.
glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x2fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix4x2fv</a>.
glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x3fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix4x3fv</a>.
glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUseProgramStagesEXT</a> pipeline stages program</tt>
glUseProgramStagesEXT :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()

-- | Usage: <tt><a>glUseShaderProgramEXT</a> type program</tt>
glUseShaderProgramEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glValidateProgramPipelineEXT</a> pipeline</tt>
glValidateProgramPipelineEXT :: MonadIO m => GLuint -> m ()

module Graphics.GL.Ext.EXT.SecondaryColor

-- | Checks that the <a>GL_EXT_secondary_color</a> extension is available.
gl_EXT_secondary_color :: Bool

-- | Usage: <tt><a>glSecondaryColor3bEXT</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorB</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3b</a>.
--   
--   The vector equivalent of this command is
--   <a>glSecondaryColor3bvEXT</a>.
glSecondaryColor3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3bvEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3bv</a>.
glSecondaryColor3bvEXT :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3dEXT</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorD</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorD</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3d</a>.
--   
--   The vector equivalent of this command is
--   <a>glSecondaryColor3dvEXT</a>.
glSecondaryColor3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glSecondaryColor3dvEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3dv</a>.
glSecondaryColor3dvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glSecondaryColor3fEXT</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3f</a>.
--   
--   The vector equivalent of this command is
--   <a>glSecondaryColor3fvEXT</a>.
glSecondaryColor3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glSecondaryColor3fvEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3fv</a>.
glSecondaryColor3fvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glSecondaryColor3iEXT</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorI</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3i</a>.
--   
--   The vector equivalent of this command is
--   <a>glSecondaryColor3ivEXT</a>.
glSecondaryColor3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glSecondaryColor3ivEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3iv</a>.
glSecondaryColor3ivEXT :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glSecondaryColor3sEXT</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorS</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3s</a>.
--   
--   The vector equivalent of this command is
--   <a>glSecondaryColor3svEXT</a>.
glSecondaryColor3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glSecondaryColor3svEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3sv</a>.
glSecondaryColor3svEXT :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glSecondaryColor3ubEXT</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3ub</a>.
--   
--   The vector equivalent of this command is
--   <a>glSecondaryColor3ubvEXT</a>.
glSecondaryColor3ubEXT :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3ubvEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUB</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3ubv</a>.
glSecondaryColor3ubvEXT :: MonadIO m => Ptr GLubyte -> m ()

-- | Usage: <tt><a>glSecondaryColor3uiEXT</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUI</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUI</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3ui</a>.
--   
--   The vector equivalent of this command is
--   <a>glSecondaryColor3uivEXT</a>.
glSecondaryColor3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColor3uivEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3uiv</a>.
glSecondaryColor3uivEXT :: MonadIO m => Ptr GLuint -> m ()

-- | Usage: <tt><a>glSecondaryColor3usEXT</a> red green blue</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUS</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUS</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3us</a>.
--   
--   The vector equivalent of this command is
--   <a>glSecondaryColor3usvEXT</a>.
glSecondaryColor3usEXT :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()

-- | Usage: <tt><a>glSecondaryColor3usvEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>ColorUS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glSecondaryColor3usv</a>.
glSecondaryColor3usvEXT :: MonadIO m => Ptr GLushort -> m ()

-- | Usage: <tt><a>glSecondaryColorPointerEXT</a> size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   This command is an alias for <a>glSecondaryColorPointer</a>.
glSecondaryColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.Robustness

-- | Checks that the <a>GL_EXT_robustness</a> extension is available.
gl_EXT_robustness :: Bool

-- | Usage: <tt><a>glGetGraphicsResetStatusEXT</a></tt>
glGetGraphicsResetStatusEXT :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetnUniformfvEXT</a> program location bufSize
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetnUniformfvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnUniformivEXT</a> program location bufSize
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetnUniformivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glReadnPixelsEXT</a> x y width height format type
--   bufSize data</tt>
--   
--   The length of <tt>data</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glReadnPixels</a>.
glReadnPixelsEXT :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.ProvokingVertex

-- | Checks that the <a>GL_EXT_provoking_vertex</a> extension is available.
gl_EXT_provoking_vertex :: Bool

-- | Usage: <tt><a>glProvokingVertexEXT</a> mode</tt>
--   
--   This command is an alias for <a>glProvokingVertex</a>.
glProvokingVertexEXT :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.EXT.PrimitiveBoundingBox

-- | Checks that the <a>GL_EXT_primitive_bounding_box</a> extension is
--   available.
gl_EXT_primitive_bounding_box :: Bool

-- | Usage: <tt><a>glPrimitiveBoundingBoxEXT</a> minX minY minZ minW maxX
--   maxY maxZ maxW</tt>
--   
--   This command is an alias for <a>glPrimitiveBoundingBox</a>.
glPrimitiveBoundingBoxEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

module Graphics.GL.Ext.EXT.PolygonOffsetClamp

-- | Checks that the <a>GL_EXT_polygon_offset_clamp</a> extension is
--   available.
gl_EXT_polygon_offset_clamp :: Bool

-- | Usage: <tt><a>glPolygonOffsetClampEXT</a> factor units clamp</tt>
glPolygonOffsetClampEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

module Graphics.GL.Ext.EXT.PolygonOffset

-- | Checks that the <a>GL_EXT_polygon_offset</a> extension is available.
gl_EXT_polygon_offset :: Bool

-- | Usage: <tt><a>glPolygonOffsetEXT</a> factor bias</tt>
glPolygonOffsetEXT :: MonadIO m => GLfloat -> GLfloat -> m ()

module Graphics.GL.Ext.EXT.PointParameters

-- | Checks that the <a>GL_EXT_point_parameters</a> extension is available.
gl_EXT_point_parameters :: Bool

-- | Usage: <tt><a>glPointParameterfEXT</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
--   
--   This command is an alias for <a>glPointParameterf</a>.
glPointParameterfEXT :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPointParameterfvEXT</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glPointParameterfv</a>.
glPointParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.EXT.PixelTransform

-- | Checks that the <a>GL_EXT_pixel_transform</a> extension is available.
gl_EXT_pixel_transform :: Bool

-- | Usage: <tt><a>glGetPixelTransformParameterfvEXT</a> target pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetPixelTransformParameterivEXT</a> target pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glPixelTransformParameterfEXT</a> target pname
--   param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>PixelTransformTargetEXT</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransformPNameEXT</tt>.
glPixelTransformParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPixelTransformParameterfvEXT</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>PixelTransformTargetEXT</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransformPNameEXT</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPixelTransformParameteriEXT</a> target pname
--   param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>PixelTransformTargetEXT</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransformPNameEXT</tt>.
glPixelTransformParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPixelTransformParameterivEXT</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>PixelTransformTargetEXT</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>PixelTransformPNameEXT</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.EXT.PalettedTexture

-- | Checks that the <a>GL_EXT_paletted_texture</a> extension is available.
gl_EXT_paletted_texture :: Bool

-- | Usage: <tt><a>glColorTableEXT</a> target internalFormat width format
--   type table</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>internalFormat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>table</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   This command is an alias for <a>glColorTable</a>.
glColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetColorTableEXT</a> target format type data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>data</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
--   
--   This command is an alias for <a>glGetColorTable</a>.
glGetColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetColorTableParameterfvEXT</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetColorTableParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetColorTableParameterfv</a>.
glGetColorTableParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetColorTableParameterivEXT</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetColorTableParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetColorTableParameteriv</a>.
glGetColorTableParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.EXT.MultiviewDrawBuffers

-- | Checks that the <a>GL_EXT_multiview_draw_buffers</a> extension is
--   available.
gl_EXT_multiview_draw_buffers :: Bool

-- | Usage: <tt><a>glDrawBuffersIndexedEXT</a> n location indices</tt>
--   
--   The length of <tt>location</tt> should be <tt>n</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>n</tt>.
glDrawBuffersIndexedEXT :: MonadIO m => GLint -> Ptr GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetIntegeri_vEXT</a> target index data</tt>
glGetIntegeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glReadBufferIndexedEXT</a> src index</tt>
glReadBufferIndexedEXT :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.EXT.MultisampledRenderToTexture

-- | Checks that the <a>GL_EXT_multisampled_render_to_texture</a> extension
--   is available.
gl_EXT_multisampled_render_to_texture :: Bool

-- | Usage: <tt><a>glFramebufferTexture2DMultisampleEXT</a> target
--   attachment textarget texture level samples</tt>
glFramebufferTexture2DMultisampleEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glRenderbufferStorageMultisampleEXT</a> target samples
--   internalformat width height</tt>
--   
--   This command is an alias for <a>glRenderbufferStorageMultisample</a>.
glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.Multisample

-- | Checks that the GL_EXT_multisample extension is available.
gl_EXT_multisample :: Bool

-- | Usage: <tt><a>glSampleMaskEXT</a> value invert</tt>
--   
--   The parameter <tt>value</tt> is a <tt>ClampedFloat32</tt>.
--   
--   The parameter <tt>invert</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glSampleMaskEXT :: MonadIO m => GLclampf -> GLboolean -> m ()

-- | Usage: <tt><a>glSamplePatternEXT</a> pattern</tt>
--   
--   The parameter <tt>pattern</tt> is a <tt>SamplePatternEXT</tt>.
glSamplePatternEXT :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.EXT.MultiDrawIndirect

-- | Checks that the GL_EXT_multi_draw_indirect extension is available.
gl_EXT_multi_draw_indirect :: Bool

-- | Usage: <tt><a>glMultiDrawArraysIndirectEXT</a> mode indirect drawcount
--   stride</tt>
--   
--   The length of <tt>indirect</tt> should be
--   <tt>COMPSIZE(drawcount,stride)</tt>.
--   
--   This command is an alias for <a>glMultiDrawArraysIndirect</a>.
glMultiDrawArraysIndirectEXT :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawElementsIndirectEXT</a> mode type indirect
--   drawcount stride</tt>
--   
--   The length of <tt>indirect</tt> should be
--   <tt>COMPSIZE(drawcount,stride)</tt>.
--   
--   This command is an alias for <a>glMultiDrawElementsIndirect</a>.
glMultiDrawElementsIndirectEXT :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.MultiDrawArrays

-- | Checks that the <a>GL_EXT_multi_draw_arrays</a> extension is
--   available.
gl_EXT_multi_draw_arrays :: Bool

-- | Usage: <tt><a>glMultiDrawArraysEXT</a> mode first count primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>first</tt> should be <tt>COMPSIZE(primcount)</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(primcount)</tt>.
--   
--   This command is an alias for <a>glMultiDrawArrays</a>.
glMultiDrawArraysEXT :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawElementsEXT</a> mode count type indices
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(primcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(primcount)</tt>.
--   
--   This command is an alias for <a>glMultiDrawElements</a>.
glMultiDrawElementsEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.MapBufferRange

-- | Checks that the <a>GL_EXT_map_buffer_range</a> extension is available.
gl_EXT_map_buffer_range :: Bool

-- | Usage: <tt><a>glFlushMappedBufferRangeEXT</a> target offset
--   length</tt>
--   
--   This command is an alias for <a>glFlushMappedBufferRange</a>.
glFlushMappedBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glMapBufferRangeEXT</a> target offset length access</tt>
--   
--   This command is an alias for <a>glMapBufferRange</a>.
glMapBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())

module Graphics.GL.Ext.EXT.LightTexture

-- | Checks that the <a>GL_EXT_light_texture</a> extension is available.
gl_EXT_light_texture :: Bool

-- | Usage: <tt><a>glApplyTextureEXT</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>LightTextureModeEXT</tt>.
glApplyTextureEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glTextureLightEXT</a> pname</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightTexturePNameEXT</tt>.
glTextureLightEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glTextureMaterialEXT</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
glTextureMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()

module Graphics.GL.Ext.EXT.InstancedArrays

-- | Checks that the <a>GL_EXT_instanced_arrays</a> extension is available.
gl_EXT_instanced_arrays :: Bool

-- | Usage: <tt><a>glDrawArraysInstancedEXT</a> mode start count
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedEXT</a> mode count type indices
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glVertexAttribDivisorEXT</a> index divisor</tt>
--   
--   This command is an alias for <a>glVertexAttribDivisor</a>.
glVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> m ()

module Graphics.GL.Ext.EXT.IndexMaterial

-- | Checks that the <a>GL_EXT_index_material</a> extension is available.
gl_EXT_index_material :: Bool

-- | Usage: <tt><a>glIndexMaterialEXT</a> face mode</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>IndexMaterialParameterEXT</tt>.
glIndexMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()

module Graphics.GL.Ext.EXT.IndexFunc

-- | Checks that the <a>GL_EXT_index_func</a> extension is available.
gl_EXT_index_func :: Bool

-- | Usage: <tt><a>glIndexFuncEXT</a> func ref</tt>
--   
--   The parameter <tt>func</tt> is a <tt>IndexFunctionEXT</tt>.
--   
--   The parameter <tt>ref</tt> is a <tt>ClampedFloat32</tt>.
glIndexFuncEXT :: MonadIO m => GLenum -> GLclampf -> m ()

module Graphics.GL.Ext.EXT.Histogram

-- | Checks that the <a>GL_EXT_histogram</a> extension is available.
gl_EXT_histogram :: Bool

-- | Usage: <tt><a>glGetHistogramEXT</a> target reset format type
--   values</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTargetEXT</tt>, one
--   of: <a>GL_HISTOGRAM</a>, <a>GL_HISTOGRAM_EXT</a>,
--   <a>GL_PROXY_HISTOGRAM</a>, <a>GL_PROXY_HISTOGRAM_EXT</a>.
--   
--   The parameter <tt>reset</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>values</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetHistogramEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetHistogramParameterfvEXT</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTargetEXT</tt>, one
--   of: <a>GL_HISTOGRAM</a>, <a>GL_HISTOGRAM_EXT</a>,
--   <a>GL_PROXY_HISTOGRAM</a>, <a>GL_PROXY_HISTOGRAM_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetHistogramParameterPNameEXT</tt>, one of:
--   <a>GL_HISTOGRAM_ALPHA_SIZE_EXT</a>, <a>GL_HISTOGRAM_BLUE_SIZE_EXT</a>,
--   <a>GL_HISTOGRAM_FORMAT_EXT</a>, <a>GL_HISTOGRAM_GREEN_SIZE_EXT</a>,
--   <a>GL_HISTOGRAM_LUMINANCE_SIZE_EXT</a>,
--   <a>GL_HISTOGRAM_RED_SIZE_EXT</a>, <a>GL_HISTOGRAM_SINK_EXT</a>,
--   <a>GL_HISTOGRAM_WIDTH_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetHistogramParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetHistogramParameterivEXT</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTargetEXT</tt>, one
--   of: <a>GL_HISTOGRAM</a>, <a>GL_HISTOGRAM_EXT</a>,
--   <a>GL_PROXY_HISTOGRAM</a>, <a>GL_PROXY_HISTOGRAM_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetHistogramParameterPNameEXT</tt>, one of:
--   <a>GL_HISTOGRAM_ALPHA_SIZE_EXT</a>, <a>GL_HISTOGRAM_BLUE_SIZE_EXT</a>,
--   <a>GL_HISTOGRAM_FORMAT_EXT</a>, <a>GL_HISTOGRAM_GREEN_SIZE_EXT</a>,
--   <a>GL_HISTOGRAM_LUMINANCE_SIZE_EXT</a>,
--   <a>GL_HISTOGRAM_RED_SIZE_EXT</a>, <a>GL_HISTOGRAM_SINK_EXT</a>,
--   <a>GL_HISTOGRAM_WIDTH_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetHistogramParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMinmaxEXT</a> target reset format type values</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTargetEXT</tt>, one of:
--   <a>GL_MINMAX</a>, <a>GL_MINMAX_EXT</a>.
--   
--   The parameter <tt>reset</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>values</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetMinmaxEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetMinmaxParameterfvEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTargetEXT</tt>, one of:
--   <a>GL_MINMAX</a>, <a>GL_MINMAX_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetMinmaxParameterPNameEXT</tt>,
--   one of: <a>GL_MINMAX_FORMAT</a>, <a>GL_MINMAX_FORMAT_EXT</a>,
--   <a>GL_MINMAX_SINK</a>, <a>GL_MINMAX_SINK_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMinmaxParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMinmaxParameterivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTargetEXT</tt>, one of:
--   <a>GL_MINMAX</a>, <a>GL_MINMAX_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetMinmaxParameterPNameEXT</tt>,
--   one of: <a>GL_MINMAX_FORMAT</a>, <a>GL_MINMAX_FORMAT_EXT</a>,
--   <a>GL_MINMAX_SINK</a>, <a>GL_MINMAX_SINK_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMinmaxParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glHistogramEXT</a> target width internalformat sink</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTargetEXT</tt>, one
--   of: <a>GL_HISTOGRAM</a>, <a>GL_HISTOGRAM_EXT</a>,
--   <a>GL_PROXY_HISTOGRAM</a>, <a>GL_PROXY_HISTOGRAM_EXT</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>sink</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   This command is an alias for <a>glHistogram</a>.
glHistogramEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()

-- | Usage: <tt><a>glMinmaxEXT</a> target internalformat sink</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTargetEXT</tt>, one of:
--   <a>GL_MINMAX</a>, <a>GL_MINMAX_EXT</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>sink</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   This command is an alias for <a>glMinmax</a>.
glMinmaxEXT :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()

-- | Usage: <tt><a>glResetHistogramEXT</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTargetEXT</tt>, one
--   of: <a>GL_HISTOGRAM</a>, <a>GL_HISTOGRAM_EXT</a>,
--   <a>GL_PROXY_HISTOGRAM</a>, <a>GL_PROXY_HISTOGRAM_EXT</a>.
--   
--   This command is an alias for <a>glResetHistogram</a>.
glResetHistogramEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glResetMinmaxEXT</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTargetEXT</tt>, one of:
--   <a>GL_MINMAX</a>, <a>GL_MINMAX_EXT</a>.
--   
--   This command is an alias for <a>glResetMinmax</a>.
glResetMinmaxEXT :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.EXT.GpuShader4

-- | Checks that the <a>GL_EXT_gpu_shader4</a> extension is available.
gl_EXT_gpu_shader4 :: Bool

-- | Usage: <tt><a>glBindFragDataLocationEXT</a> program color name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   This command is an alias for <a>glBindFragDataLocation</a>.
glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetFragDataLocationEXT</a> program name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   This command is an alias for <a>glGetFragDataLocation</a>.
glGetFragDataLocationEXT :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetUniformuivEXT</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
--   
--   This command is an alias for <a>glGetUniformuiv</a>.
glGetUniformuivEXT :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform1uiEXT</a> location v0</tt>
--   
--   This command is an alias for <a>glUniform1ui</a>.
glUniform1uiEXT :: MonadIO m => GLint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform1uivEXT</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
--   
--   This command is an alias for <a>glUniform1uiv</a>.
glUniform1uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform2uiEXT</a> location v0 v1</tt>
--   
--   This command is an alias for <a>glUniform2ui</a>.
glUniform2uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform2uivEXT</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glUniform2uiv</a>.
glUniform2uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform3uiEXT</a> location v0 v1 v2</tt>
--   
--   This command is an alias for <a>glUniform3ui</a>.
glUniform3uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform3uivEXT</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glUniform3uiv</a>.
glUniform3uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glUniform4uiEXT</a> location v0 v1 v2 v3</tt>
--   
--   This command is an alias for <a>glUniform4ui</a>.
glUniform4uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glUniform4uivEXT</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glUniform4uiv</a>.
glUniform4uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()

module Graphics.GL.Ext.EXT.GpuProgramParameters

-- | Checks that the <a>GL_EXT_gpu_program_parameters</a> extension is
--   available.
gl_EXT_gpu_program_parameters :: Bool

-- | Usage: <tt><a>glProgramEnvParameters4fvEXT</a> target index count
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count*4</tt>.
glProgramEnvParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramLocalParameters4fvEXT</a> target index count
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTargetARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count*4</tt>.
glProgramLocalParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.EXT.FramebufferObject

-- | Checks that the <a>GL_EXT_framebuffer_object</a> extension is
--   available.
gl_EXT_framebuffer_object :: Bool

-- | Usage: <tt><a>glBindFramebufferEXT</a> target framebuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
glBindFramebufferEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindRenderbufferEXT</a> target renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
glBindRenderbufferEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glCheckFramebufferStatusEXT</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   This command is an alias for <a>glCheckFramebufferStatus</a>.
glCheckFramebufferStatusEXT :: MonadIO m => GLenum -> m GLenum

-- | Usage: <tt><a>glDeleteFramebuffersEXT</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDeleteFramebuffers</a>.
glDeleteFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteRenderbuffersEXT</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDeleteRenderbuffers</a>.
glDeleteRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glFramebufferRenderbufferEXT</a> target attachment
--   renderbuffertarget renderbuffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>renderbuffertarget</tt> is a
--   <tt>RenderbufferTarget</tt>.
--   
--   This command is an alias for <a>glFramebufferRenderbuffer</a>.
glFramebufferRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glFramebufferTexture1DEXT</a> target attachment
--   textarget texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   This command is an alias for <a>glFramebufferTexture1D</a>.
glFramebufferTexture1DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTexture2DEXT</a> target attachment
--   textarget texture level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   This command is an alias for <a>glFramebufferTexture2D</a>.
glFramebufferTexture2DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTexture3DEXT</a> target attachment
--   textarget texture level zoffset</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   This command is an alias for <a>glFramebufferTexture3D</a>.
glFramebufferTexture3DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glGenFramebuffersEXT</a> n framebuffers</tt>
--   
--   The length of <tt>framebuffers</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glGenFramebuffers</a>.
glGenFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenRenderbuffersEXT</a> n renderbuffers</tt>
--   
--   The length of <tt>renderbuffers</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glGenRenderbuffers</a>.
glGenRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenerateMipmapEXT</a> target</tt>
--   
--   This command is an alias for <a>glGenerateMipmap</a>.
glGenerateMipmapEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGetFramebufferAttachmentParameterivEXT</a> target
--   attachment pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for
--   <a>glGetFramebufferAttachmentParameteriv</a>.
glGetFramebufferAttachmentParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetRenderbufferParameterivEXT</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetRenderbufferParameteriv</a>.
glGetRenderbufferParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsFramebufferEXT</a> framebuffer</tt>
--   
--   This command is an alias for <a>glIsFramebuffer</a>.
glIsFramebufferEXT :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsRenderbufferEXT</a> renderbuffer</tt>
--   
--   This command is an alias for <a>glIsRenderbuffer</a>.
glIsRenderbufferEXT :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glRenderbufferStorageEXT</a> target internalformat width
--   height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>RenderbufferTarget</tt>.
--   
--   This command is an alias for <a>glRenderbufferStorage</a>.
glRenderbufferStorageEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.FramebufferBlit

-- | Checks that the <a>GL_EXT_framebuffer_blit</a> extension is available.
gl_EXT_framebuffer_blit :: Bool

-- | Usage: <tt><a>glBlitFramebufferEXT</a> srcX0 srcY0 srcX1 srcY1 dstX0
--   dstY0 dstX1 dstY1 mask filter</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   This command is an alias for <a>glBlitFramebuffer</a>.
glBlitFramebufferEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

module Graphics.GL.Ext.EXT.FogCoord

-- | Checks that the <a>GL_EXT_fog_coord</a> extension is available.
gl_EXT_fog_coord :: Bool

-- | Usage: <tt><a>glFogCoordPointerEXT</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>FogPointerTypeEXT</tt>, one of:
--   <a>GL_FLOAT</a>, <a>GL_DOUBLE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
--   
--   This command is an alias for <a>glFogCoordPointer</a>.
glFogCoordPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glFogCoorddEXT</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordD</tt>.
--   
--   This command is an alias for <a>glFogCoordd</a>.
--   
--   The vector equivalent of this command is <a>glFogCoorddvEXT</a>.
glFogCoorddEXT :: MonadIO m => GLdouble -> m ()

-- | Usage: <tt><a>glFogCoorddvEXT</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>coord</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glFogCoorddv</a>.
glFogCoorddvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glFogCoordfEXT</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordF</tt>.
--   
--   This command is an alias for <a>glFogCoordf</a>.
--   
--   The vector equivalent of this command is <a>glFogCoordfvEXT</a>.
glFogCoordfEXT :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glFogCoordfvEXT</a> coord</tt>
--   
--   The parameter <tt>coord</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>coord</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glFogCoordfv</a>.
glFogCoordfvEXT :: MonadIO m => Ptr GLfloat -> m ()

module Graphics.GL.Ext.EXT.DrawTransformFeedback

-- | Checks that the <a>GL_EXT_draw_transform_feedback</a> extension is
--   available.
gl_EXT_draw_transform_feedback :: Bool

-- | Usage: <tt><a>glDrawTransformFeedbackEXT</a> mode id</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawTransformFeedback</a>.
glDrawTransformFeedbackEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDrawTransformFeedbackInstancedEXT</a> mode id
--   instancecount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawTransformFeedbackInstanced</a>.
glDrawTransformFeedbackInstancedEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.DrawRangeElements

-- | Checks that the <a>GL_EXT_draw_range_elements</a> extension is
--   available.
gl_EXT_draw_range_elements :: Bool

-- | Usage: <tt><a>glDrawRangeElementsEXT</a> mode start end count type
--   indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawRangeElements</a>.
glDrawRangeElementsEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.DrawElementsBaseVertex

-- | Checks that the GL_EXT_draw_elements_base_vertex extension is
--   available.
gl_EXT_draw_elements_base_vertex :: Bool

-- | Usage: <tt><a>glDrawElementsBaseVertexEXT</a> mode count type indices
--   basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsBaseVertex</a>.
glDrawElementsBaseVertexEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertexEXT</a> mode count type
--   indices instancecount basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsInstancedBaseVertex</a>.
glDrawElementsInstancedBaseVertexEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glDrawRangeElementsBaseVertexEXT</a> mode start end
--   count type indices basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawRangeElementsBaseVertex</a>.
glDrawRangeElementsBaseVertexEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glMultiDrawElementsBaseVertexEXT</a> mode count type
--   indices primcount basevertex</tt>
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>count</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>indices</tt> should be <tt>COMPSIZE(drawcount)</tt>.
--   
--   The length of <tt>basevertex</tt> should be
--   <tt>COMPSIZE(drawcount)</tt>.
--   
--   This command is an alias for <a>glMultiDrawElementsBaseVertex</a>.
glMultiDrawElementsBaseVertexEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()

module Graphics.GL.Ext.EXT.DrawBuffersIndexed

-- | Checks that the <a>GL_EXT_draw_buffers_indexed</a> extension is
--   available.
gl_EXT_draw_buffers_indexed :: Bool

-- | Usage: <tt><a>glBlendEquationSeparateiEXT</a> buf modeRGB
--   modeAlpha</tt>
--   
--   This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendEquationiEXT</a> buf mode</tt>
--   
--   This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationiEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparateiEXT</a> buf srcRGB dstRGB srcAlpha
--   dstAlpha</tt>
--   
--   This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFunciEXT</a> buf src dst</tt>
--   
--   This command is an alias for <a>glBlendFunci</a>.
glBlendFunciEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glColorMaskiEXT</a> index r g b a</tt>
--   
--   The parameter <tt>r</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>g</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>b</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>a</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   This command is an alias for <a>glColorMaski</a>.
glColorMaskiEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glDisableiEXT</a> target index</tt>
--   
--   This command is an alias for <a>glDisablei</a>.
glDisableiEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEnableiEXT</a> target index</tt>
--   
--   This command is an alias for <a>glEnablei</a>.
glEnableiEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glIsEnablediEXT</a> target index</tt>
--   
--   This command is an alias for <a>glIsEnabledi</a>.
glIsEnablediEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean

module Graphics.GL.Ext.EXT.DrawBuffers2

-- | Checks that the <a>GL_EXT_draw_buffers2</a> extension is available.
gl_EXT_draw_buffers2 :: Bool

-- | Usage: <tt><a>glColorMaskIndexedEXT</a> index r g b a</tt>
--   
--   The parameter <tt>r</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>g</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>b</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>a</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   This command is an alias for <a>glColorMaski</a>.
glColorMaskIndexedEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glDisableIndexedEXT</a> target index</tt>
--   
--   This command is an alias for <a>glDisablei</a>.
glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEnableIndexedEXT</a> target index</tt>
--   
--   This command is an alias for <a>glEnablei</a>.
glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glGetBooleanIndexedvEXT</a> target index data</tt>
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetBooleani_v</a>.
glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetIntegerIndexedvEXT</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetIntegeri_v</a>.
glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsEnabledIndexedEXT</a> target index</tt>
--   
--   This command is an alias for <a>glIsEnabledi</a>.
glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean

module Graphics.GL.Ext.EXT.DrawBuffers

-- | Checks that the <a>GL_EXT_draw_buffers</a> extension is available.
gl_EXT_draw_buffers :: Bool

-- | Usage: <tt><a>glDrawBuffersEXT</a> n bufs</tt>
--   
--   This command is an alias for <a>glDrawBuffers</a>.
glDrawBuffersEXT :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

module Graphics.GL.Ext.EXT.DisjointTimerQuery

-- | Checks that the <a>GL_EXT_disjoint_timer_query</a> extension is
--   available.
gl_EXT_disjoint_timer_query :: Bool

-- | Usage: <tt><a>glBeginQueryEXT</a> target id</tt>
glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteQueriesEXT</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glEndQueryEXT</a> target</tt>
glEndQueryEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGenQueriesEXT</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetQueryObjecti64vEXT</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetQueryObjecti64v</a>.
glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetQueryObjectivEXT</a> id pname params</tt>
--   
--   This command is an alias for <a>glGetQueryObjectiv</a>.
glGetQueryObjectivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetQueryObjectui64vEXT</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetQueryObjectui64v</a>.
glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glGetQueryObjectuivEXT</a> id pname params</tt>
glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetQueryivEXT</a> target pname params</tt>
glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsQueryEXT</a> id</tt>
glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glQueryCounterEXT</a> id target</tt>
--   
--   This command is an alias for <a>glQueryCounter</a>.
glQueryCounterEXT :: MonadIO m => GLuint -> GLenum -> m ()

module Graphics.GL.Ext.EXT.DiscardFramebuffer

-- | Checks that the <a>GL_EXT_discard_framebuffer</a> extension is
--   available.
gl_EXT_discard_framebuffer :: Bool

-- | Usage: <tt><a>glDiscardFramebufferEXT</a> target numAttachments
--   attachments</tt>
--   
--   The length of <tt>attachments</tt> should be <tt>numAttachments</tt>.
glDiscardFramebufferEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()

module Graphics.GL.Ext.EXT.DirectStateAccess

-- | Checks that the <a>GL_EXT_direct_state_access</a> extension is
--   available.
gl_EXT_direct_state_access :: Bool

-- | Usage: <tt><a>glBindMultiTextureEXT</a> texunit target texture</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
glBindMultiTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glCheckNamedFramebufferStatusEXT</a> framebuffer
--   target</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
glCheckNamedFramebufferStatusEXT :: MonadIO m => GLuint -> GLenum -> m GLenum

-- | Usage: <tt><a>glClearNamedBufferDataEXT</a> buffer internalformat
--   format type data</tt>
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
glClearNamedBufferDataEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearNamedBufferSubDataEXT</a> buffer internalformat
--   offset size format type data</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
glClearNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClientAttribDefaultEXT</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClientAttribMask</tt>, one of:
--   <a>GL_CLIENT_ALL_ATTRIB_BITS</a>, <a>GL_CLIENT_PIXEL_STORE_BIT</a>,
--   <a>GL_CLIENT_VERTEX_ARRAY_BIT</a>.
glClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glCompressedMultiTexImage1DEXT</a> texunit target level
--   internalformat width border imageSize bits</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedMultiTexImage2DEXT</a> texunit target level
--   internalformat width height border imageSize bits</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedMultiTexImage3DEXT</a> texunit target level
--   internalformat width height depth border imageSize bits</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedMultiTexSubImage1DEXT</a> texunit target
--   level xoffset width format imageSize bits</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedMultiTexSubImage2DEXT</a> texunit target
--   level xoffset yoffset width height format imageSize bits</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedMultiTexSubImage3DEXT</a> texunit target
--   level xoffset yoffset zoffset width height depth format imageSize
--   bits</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureImage1DEXT</a> texture target level
--   internalformat width border imageSize bits</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureImage2DEXT</a> texture target level
--   internalformat width height border imageSize bits</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureImage3DEXT</a> texture target level
--   internalformat width height depth border imageSize bits</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureSubImage1DEXT</a> texture target
--   level xoffset width format imageSize bits</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureSubImage2DEXT</a> texture target
--   level xoffset yoffset width height format imageSize bits</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureSubImage3DEXT</a> texture target
--   level xoffset yoffset zoffset width height depth format imageSize
--   bits</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The length of <tt>bits</tt> should be <tt>imageSize</tt>.
glCompressedTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyMultiTexImage1DEXT</a> texunit target level
--   internalformat x y width border</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
glCopyMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyMultiTexImage2DEXT</a> texunit target level
--   internalformat x y width height border</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
glCopyMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyMultiTexSubImage1DEXT</a> texunit target level
--   xoffset x y width</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyMultiTexSubImage2DEXT</a> texunit target level
--   xoffset yoffset x y width height</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyMultiTexSubImage3DEXT</a> texunit target level
--   xoffset yoffset zoffset x y width height</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTextureImage1DEXT</a> texture target level
--   internalformat x y width border</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
glCopyTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTextureImage2DEXT</a> texture target level
--   internalformat x y width height border</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
glCopyTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTextureSubImage1DEXT</a> texture target level
--   xoffset x y width</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTextureSubImage2DEXT</a> texture target level
--   xoffset yoffset x y width height</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTextureSubImage3DEXT</a> texture target level
--   xoffset yoffset zoffset x y width height</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDisableClientStateIndexedEXT</a> array index</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDisableClientStateiEXT</a> array index</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDisableIndexedEXT</a> target index</tt>
--   
--   This command is an alias for <a>glDisablei</a>.
glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDisableVertexArrayAttribEXT</a> vaobj index</tt>
glDisableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDisableVertexArrayEXT</a> vaobj array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glEnableClientStateIndexedEXT</a> array index</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glEnableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEnableClientStateiEXT</a> array index</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glEnableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEnableIndexedEXT</a> target index</tt>
--   
--   This command is an alias for <a>glEnablei</a>.
glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glEnableVertexArrayAttribEXT</a> vaobj index</tt>
glEnableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glEnableVertexArrayEXT</a> vaobj array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glEnableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glFlushMappedNamedBufferRangeEXT</a> buffer offset
--   length</tt>
glFlushMappedNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glFramebufferDrawBufferEXT</a> framebuffer mode</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>mode</tt> is a <tt>DrawBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>, <a>GL_FRONT_LEFT</a>,
--   <a>GL_FRONT_RIGHT</a>, <a>GL_LEFT</a>, <a>GL_NONE</a>,
--   <a>GL_NONE_OES</a>, <a>GL_RIGHT</a>.
glFramebufferDrawBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glFramebufferDrawBuffersEXT</a> framebuffer n bufs</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>bufs</tt> is a <tt>DrawBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>, <a>GL_FRONT_LEFT</a>,
--   <a>GL_FRONT_RIGHT</a>, <a>GL_LEFT</a>, <a>GL_NONE</a>,
--   <a>GL_NONE_OES</a>, <a>GL_RIGHT</a>.
--   
--   The length of <tt>bufs</tt> should be <tt>n</tt>.
glFramebufferDrawBuffersEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glFramebufferReadBufferEXT</a> framebuffer mode</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>mode</tt> is a <tt>ReadBufferMode</tt>, one of:
--   <a>GL_AUX0</a>, <a>GL_AUX1</a>, <a>GL_AUX2</a>, <a>GL_AUX3</a>,
--   <a>GL_BACK</a>, <a>GL_BACK_LEFT</a>, <a>GL_BACK_RIGHT</a>,
--   <a>GL_FRONT</a>, <a>GL_FRONT_LEFT</a>, <a>GL_FRONT_RIGHT</a>,
--   <a>GL_LEFT</a>, <a>GL_RIGHT</a>.
glFramebufferReadBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glGenerateMultiTexMipmapEXT</a> texunit target</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
glGenerateMultiTexMipmapEXT :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glGenerateTextureMipmapEXT</a> texture target</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
glGenerateTextureMipmapEXT :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glGetBooleanIndexedvEXT</a> target index data</tt>
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetBooleani_v</a>.
glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetCompressedMultiTexImageEXT</a> texunit target lod
--   img</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>lod</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>img</tt> should be <tt>COMPSIZE(target,lod)</tt>.
glGetCompressedMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr () -> m ()

-- | Usage: <tt><a>glGetCompressedTextureImageEXT</a> texture target lod
--   img</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>lod</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>img</tt> should be <tt>COMPSIZE(target,lod)</tt>.
glGetCompressedTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr () -> m ()

-- | Usage: <tt><a>glGetDoubleIndexedvEXT</a> target index data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetDoublei_v</a>.
glGetDoubleIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetDoublei_vEXT</a> pname index params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetDoublei_v</a>.
glGetDoublei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetFloatIndexedvEXT</a> target index data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetFloati_v</a>.
glGetFloatIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFloati_vEXT</a> pname index params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetFloati_v</a>.
glGetFloati_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFramebufferParameterivEXT</a> framebuffer pname
--   params</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetFramebufferParameter</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetIntegerIndexedvEXT</a> target index data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(target)</tt>.
--   
--   This command is an alias for <a>glGetIntegeri_v</a>.
glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMultiTexEnvfvEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMultiTexEnvivEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMultiTexGendvEXT</a> texunit coord pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetMultiTexGenfvEXT</a> texunit coord pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMultiTexGenivEXT</a> texunit coord pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMultiTexImageEXT</a> texunit target level format
--   type pixels</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(target,level,format,type)</tt>.
glGetMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetMultiTexLevelParameterfvEXT</a> texunit target
--   level pname params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexLevelParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMultiTexLevelParameterivEXT</a> texunit target
--   level pname params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexLevelParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMultiTexParameterIivEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMultiTexParameterIuivEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetMultiTexParameterfvEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMultiTexParameterivEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedBufferParameterivEXT</a> buffer pname
--   params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexBufferObjectParameter</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetNamedBufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedBufferPointervEXT</a> buffer pname params</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexBufferObjectParameter</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetNamedBufferPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetNamedBufferSubDataEXT</a> buffer offset size
--   data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(size)</tt>.
glGetNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glGetNamedFramebufferAttachmentParameterivEXT</a>
--   framebuffer attachment pname params</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>FramebufferAttachmentParameterName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetNamedFramebufferAttachmentParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedFramebufferParameterivEXT</a> framebuffer
--   pname params</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetFramebufferParameter</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetNamedFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedProgramLocalParameterIivEXT</a> program target
--   index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetNamedProgramLocalParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedProgramLocalParameterIuivEXT</a> program
--   target index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetNamedProgramLocalParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetNamedProgramLocalParameterdvEXT</a> program target
--   index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetNamedProgramLocalParameterdvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetNamedProgramLocalParameterfvEXT</a> program target
--   index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glGetNamedProgramLocalParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetNamedProgramStringEXT</a> program target pname
--   string</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramStringProperty</tt>.
--   
--   The length of <tt>string</tt> should be
--   <tt>COMPSIZE(program,pname)</tt>.
glGetNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetNamedProgramivEXT</a> program target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramProperty</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetNamedProgramivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedRenderbufferParameterivEXT</a> renderbuffer
--   pname params</tt>
--   
--   The parameter <tt>renderbuffer</tt> is a <tt>Renderbuffer</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>RenderbufferParameterName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetNamedRenderbufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetPointerIndexedvEXT</a> target index data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>data</tt> should be <tt>1</tt>.
glGetPointerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetPointeri_vEXT</a> pname index params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>TypeEnum</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetPointeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetTextureImageEXT</a> texture target level format
--   type pixels</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(target,level,format,type)</tt>.
glGetTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetTextureLevelParameterfvEXT</a> texture target level
--   pname params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTextureLevelParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTextureLevelParameterivEXT</a> texture target level
--   pname params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTextureLevelParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTextureParameterIivEXT</a> texture target pname
--   params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTextureParameterIuivEXT</a> texture target pname
--   params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetTextureParameterfvEXT</a> texture target pname
--   params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTextureParameterivEXT</a> texture target pname
--   params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexArrayIntegeri_vEXT</a> vaobj index pname
--   param</tt>
glGetVertexArrayIntegeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexArrayIntegervEXT</a> vaobj pname param</tt>
glGetVertexArrayIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexArrayPointeri_vEXT</a> vaobj index pname
--   param</tt>
glGetVertexArrayPointeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetVertexArrayPointervEXT</a> vaobj pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>1</tt>.
glGetVertexArrayPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glIsEnabledIndexedEXT</a> target index</tt>
--   
--   This command is an alias for <a>glIsEnabledi</a>.
glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Usage: <tt><a>glMapNamedBufferEXT</a> buffer access</tt>
--   
--   The parameter <tt>access</tt> is a <tt>VertexBufferObjectAccess</tt>.
glMapNamedBufferEXT :: MonadIO m => GLuint -> GLenum -> m (Ptr ())

-- | Usage: <tt><a>glMapNamedBufferRangeEXT</a> buffer offset length
--   access</tt>
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessMask</tt>.
glMapNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())

-- | Usage: <tt><a>glMatrixFrustumEXT</a> mode left right bottom top zNear
--   zFar</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixFrustumEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMatrixLoadIdentityEXT</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixLoadIdentityEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMatrixLoadTransposedEXT</a> mode m</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMatrixLoadTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMatrixLoadTransposefEXT</a> mode m</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMatrixLoadTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMatrixLoaddEXT</a> mode m</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMatrixLoaddEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMatrixLoadfEXT</a> mode m</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMatrixLoadfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMatrixMultTransposedEXT</a> mode m</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMatrixMultTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMatrixMultTransposefEXT</a> mode m</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMatrixMultTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMatrixMultdEXT</a> mode m</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMatrixMultdEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMatrixMultfEXT</a> mode m</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMatrixMultfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMatrixOrthoEXT</a> mode left right bottom top zNear
--   zFar</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixOrthoEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMatrixPopEXT</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixPopEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMatrixPushEXT</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixPushEXT :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMatrixRotatedEXT</a> mode angle x y z</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixRotatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMatrixRotatefEXT</a> mode angle x y z</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixRotatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMatrixScaledEXT</a> mode x y z</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixScaledEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMatrixScalefEXT</a> mode x y z</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixScalefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMatrixTranslatedEXT</a> mode x y z</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixTranslatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMatrixTranslatefEXT</a> mode x y z</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixTranslatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexBufferEXT</a> texunit target internalformat
--   buffer</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>TypeEnum</tt>.
glMultiTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexCoordPointerEXT</a> texunit size type stride
--   pointer</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>type</tt> is a <tt>TexCoordPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glMultiTexCoordPointerEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glMultiTexEnvfEXT</a> texunit target pname param</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexEnvfvEXT</a>.
glMultiTexEnvfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexEnvfvEXT</a> texunit target pname params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexEnviEXT</a> texunit target pname param</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexEnvivEXT</a>.
glMultiTexEnviEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexEnvivEXT</a> texunit target pname params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexGendEXT</a> texunit coord pname param</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexGendvEXT</a>.
glMultiTexGendEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexGendvEXT</a> texunit coord pname params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexGenfEXT</a> texunit coord pname param</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexGenfvEXT</a>.
glMultiTexGenfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexGenfvEXT</a> texunit coord pname params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexGeniEXT</a> texunit coord pname param</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexGenivEXT</a>.
glMultiTexGeniEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexGenivEXT</a> texunit coord pname params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>coord</tt> is a <tt>TextureCoordName</tt>, one of:
--   <a>GL_S</a>, <a>GL_T</a>, <a>GL_R</a>, <a>GL_Q</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureGenParameter</tt>, one
--   of: <a>GL_EYE_LINE_SGIS</a>, <a>GL_EYE_PLANE</a>,
--   <a>GL_EYE_POINT_SGIS</a>, <a>GL_OBJECT_LINE_SGIS</a>,
--   <a>GL_OBJECT_PLANE</a>, <a>GL_OBJECT_POINT_SGIS</a>,
--   <a>GL_TEXTURE_GEN_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexImage1DEXT</a> texunit target level
--   internalformat width border format type pixels</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
glMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glMultiTexImage2DEXT</a> texunit target level
--   internalformat width height border format type pixels</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
glMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glMultiTexImage3DEXT</a> texunit target level
--   internalformat width height depth border format type pixels</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
glMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glMultiTexParameterIivEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexParameterIuivEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMultiTexParameterfEXT</a> texunit target pname
--   param</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The vector equivalent of this command is
--   <a>glMultiTexParameterfvEXT</a>.
glMultiTexParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexParameterfvEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexParameteriEXT</a> texunit target pname
--   param</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
--   
--   The vector equivalent of this command is
--   <a>glMultiTexParameterivEXT</a>.
glMultiTexParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexParameterivEXT</a> texunit target pname
--   params</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexRenderbufferEXT</a> texunit target
--   renderbuffer</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
glMultiTexRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glMultiTexSubImage1DEXT</a> texunit target level xoffset
--   width format type pixels</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
glMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glMultiTexSubImage2DEXT</a> texunit target level xoffset
--   yoffset width height format type pixels</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
glMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glMultiTexSubImage3DEXT</a> texunit target level xoffset
--   yoffset zoffset width height depth format type pixels</tt>
--   
--   The parameter <tt>texunit</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
glMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glNamedBufferDataEXT</a> buffer size data usage</tt>
--   
--   The parameter <tt>usage</tt> is a <tt>VertexBufferObjectUsage</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(size)</tt>.
glNamedBufferDataEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glNamedBufferStorageEXT</a> buffer size data flags</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   This command is an alias for <a>glNamedBufferStorage</a>.
glNamedBufferStorageEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()

-- | Usage: <tt><a>glNamedBufferSubDataEXT</a> buffer offset size data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(size)</tt>.
--   
--   This command is an alias for <a>glNamedBufferSubData</a>.
glNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glNamedCopyBufferSubDataEXT</a> readBuffer writeBuffer
--   readOffset writeOffset size</tt>
glNamedCopyBufferSubDataEXT :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glNamedFramebufferParameteriEXT</a> framebuffer pname
--   param</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>FramebufferParameterName</tt>.
glNamedFramebufferParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glNamedFramebufferRenderbufferEXT</a> framebuffer
--   attachment renderbuffertarget renderbuffer</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>renderbuffertarget</tt> is a
--   <tt>RenderbufferTarget</tt>.
--   
--   The parameter <tt>renderbuffer</tt> is a <tt>Renderbuffer</tt>.
glNamedFramebufferRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glNamedFramebufferTexture1DEXT</a> framebuffer
--   attachment textarget texture level</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>textarget</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
glNamedFramebufferTexture1DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glNamedFramebufferTexture2DEXT</a> framebuffer
--   attachment textarget texture level</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>textarget</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
glNamedFramebufferTexture2DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glNamedFramebufferTexture3DEXT</a> framebuffer
--   attachment textarget texture level zoffset</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>textarget</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
glNamedFramebufferTexture3DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glNamedFramebufferTextureEXT</a> framebuffer attachment
--   texture level</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
glNamedFramebufferTextureEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glNamedFramebufferTextureFaceEXT</a> framebuffer
--   attachment texture level face</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>face</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
glNamedFramebufferTextureFaceEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()

-- | Usage: <tt><a>glNamedFramebufferTextureLayerEXT</a> framebuffer
--   attachment texture level layer</tt>
--   
--   The parameter <tt>framebuffer</tt> is a <tt>Framebuffer</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
glNamedFramebufferTextureLayerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParameter4dEXT</a> program target
--   index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The vector equivalent of this command is
--   <a>glNamedProgramLocalParameter4dvEXT</a>.
glNamedProgramLocalParameter4dEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParameter4dvEXT</a> program target
--   index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glNamedProgramLocalParameter4dvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParameter4fEXT</a> program target
--   index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The vector equivalent of this command is
--   <a>glNamedProgramLocalParameter4fvEXT</a>.
glNamedProgramLocalParameter4fEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParameter4fvEXT</a> program target
--   index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glNamedProgramLocalParameter4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParameterI4iEXT</a> program target
--   index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The vector equivalent of this command is
--   <a>glNamedProgramLocalParameterI4ivEXT</a>.
glNamedProgramLocalParameterI4iEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParameterI4ivEXT</a> program target
--   index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glNamedProgramLocalParameterI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParameterI4uiEXT</a> program target
--   index x y z w</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The vector equivalent of this command is
--   <a>glNamedProgramLocalParameterI4uivEXT</a>.
glNamedProgramLocalParameterI4uiEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParameterI4uivEXT</a> program target
--   index params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glNamedProgramLocalParameterI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParameters4fvEXT</a> program target
--   index count params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count*4</tt>.
glNamedProgramLocalParameters4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParametersI4ivEXT</a> program target
--   index count params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count*4</tt>.
glNamedProgramLocalParametersI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glNamedProgramLocalParametersI4uivEXT</a> program target
--   index count params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The length of <tt>params</tt> should be <tt>count*4</tt>.
glNamedProgramLocalParametersI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glNamedProgramStringEXT</a> program target format len
--   string</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ProgramTarget</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>ProgramFormat</tt>.
--   
--   The length of <tt>string</tt> should be <tt>len</tt>.
glNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glNamedRenderbufferStorageEXT</a> renderbuffer
--   internalformat width height</tt>
--   
--   The parameter <tt>renderbuffer</tt> is a <tt>Renderbuffer</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
glNamedRenderbufferStorageEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glNamedRenderbufferStorageMultisampleCoverageEXT</a>
--   renderbuffer coverageSamples colorSamples internalformat width
--   height</tt>
--   
--   The parameter <tt>renderbuffer</tt> is a <tt>Renderbuffer</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
glNamedRenderbufferStorageMultisampleCoverageEXT :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glNamedRenderbufferStorageMultisampleEXT</a>
--   renderbuffer samples internalformat width height</tt>
--   
--   The parameter <tt>renderbuffer</tt> is a <tt>Renderbuffer</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
glNamedRenderbufferStorageMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glProgramUniform1dEXT</a> program location x</tt>
glProgramUniform1dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform1dvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform1fEXT</a> program location v0</tt>
--   
--   This command is an alias for <a>glProgramUniform1f</a>.
glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniform1fv</a>.
glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform1iEXT</a> program location v0</tt>
--   
--   This command is an alias for <a>glProgramUniform1i</a>.
glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniform1iv</a>.
glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform1uiEXT</a> program location v0</tt>
--   
--   This command is an alias for <a>glProgramUniform1ui</a>.
glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform1uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glProgramUniform1uiv</a>.
glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2dEXT</a> program location x y</tt>
glProgramUniform2dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform2dvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform2fEXT</a> program location v0 v1</tt>
--   
--   This command is an alias for <a>glProgramUniform2f</a>.
glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glProgramUniform2fv</a>.
glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform2iEXT</a> program location v0 v1</tt>
--   
--   This command is an alias for <a>glProgramUniform2i</a>.
glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glProgramUniform2iv</a>.
glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform2uiEXT</a> program location v0 v1</tt>
--   
--   This command is an alias for <a>glProgramUniform2ui</a>.
glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform2uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glProgramUniform2uiv</a>.
glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3dEXT</a> program location x y z</tt>
glProgramUniform3dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform3dvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform3fEXT</a> program location v0 v1 v2</tt>
--   
--   This command is an alias for <a>glProgramUniform3f</a>.
glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glProgramUniform3fv</a>.
glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform3iEXT</a> program location v0 v1 v2</tt>
--   
--   This command is an alias for <a>glProgramUniform3i</a>.
glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glProgramUniform3iv</a>.
glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform3uiEXT</a> program location v0 v1
--   v2</tt>
--   
--   This command is an alias for <a>glProgramUniform3ui</a>.
glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform3uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glProgramUniform3uiv</a>.
glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4dEXT</a> program location x y z w</tt>
glProgramUniform4dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform4dvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniform4fEXT</a> program location v0 v1 v2
--   v3</tt>
--   
--   This command is an alias for <a>glProgramUniform4f</a>.
glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4fvEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniform4fv</a>.
glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniform4iEXT</a> program location v0 v1 v2
--   v3</tt>
--   
--   This command is an alias for <a>glProgramUniform4i</a>.
glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4ivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniform4iv</a>.
glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glProgramUniform4uiEXT</a> program location v0 v1 v2
--   v3</tt>
--   
--   This command is an alias for <a>glProgramUniform4ui</a>.
glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glProgramUniform4uivEXT</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniform4uiv</a>.
glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2dvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniformMatrix2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2fvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix2fv</a>.
glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x3dvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix2x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x3fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix2x3fv</a>.
glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x4dvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix2x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix2x4fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix2x4fv</a>.
glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3dvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
glProgramUniformMatrix3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3fvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix3fv</a>.
glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x2dvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
glProgramUniformMatrix3x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x2fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*6</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix3x2fv</a>.
glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x4dvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix3x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix3x4fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix3x4fv</a>.
glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4dvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
glProgramUniformMatrix4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4fvEXT</a> program location count
--   transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix4fv</a>.
glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x2dvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
glProgramUniformMatrix4x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x2fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*8</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix4x2fv</a>.
glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x3dvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
glProgramUniformMatrix4x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glProgramUniformMatrix4x3fvEXT</a> program location
--   count transpose value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*12</tt>.
--   
--   This command is an alias for <a>glProgramUniformMatrix4x3fv</a>.
glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPushClientAttribDefaultEXT</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClientAttribMask</tt>, one of:
--   <a>GL_CLIENT_ALL_ATTRIB_BITS</a>, <a>GL_CLIENT_PIXEL_STORE_BIT</a>,
--   <a>GL_CLIENT_VERTEX_ARRAY_BIT</a>.
glPushClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glTextureBufferEXT</a> texture target internalformat
--   buffer</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
glTextureBufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTextureBufferRangeEXT</a> texture target
--   internalformat buffer offset size</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glTextureBufferRangeEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glTextureImage1DEXT</a> texture target level
--   internalformat width border format type pixels</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
glTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTextureImage2DEXT</a> texture target level
--   internalformat width height border format type pixels</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
glTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTextureImage3DEXT</a> texture target level
--   internalformat width height depth border format type pixels</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
glTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexturePageCommitmentEXT</a> texture level xoffset
--   yoffset zoffset width height depth commit</tt>
glTexturePageCommitmentEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureParameterIivEXT</a> texture target pname
--   params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTextureParameterIuivEXT</a> texture target pname
--   params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTextureParameterfEXT</a> texture target pname
--   param</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The vector equivalent of this command is
--   <a>glTextureParameterfvEXT</a>.
glTextureParameterfEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTextureParameterfvEXT</a> texture target pname
--   params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTextureParameteriEXT</a> texture target pname
--   param</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
--   
--   The vector equivalent of this command is
--   <a>glTextureParameterivEXT</a>.
glTextureParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTextureParameterivEXT</a> texture target pname
--   params</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTextureRenderbufferEXT</a> texture target
--   renderbuffer</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
glTextureRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTextureStorage1DEXT</a> texture target levels
--   internalformat width</tt>
glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage2DEXT</a> texture target levels
--   internalformat width height</tt>
glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage2DMultisampleEXT</a> texture target
--   samples internalformat width height fixedsamplelocations</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureInternalFormat</tt>.
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glTextureStorage2DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureStorage3DEXT</a> texture target levels
--   internalformat width height depth</tt>
glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage3DMultisampleEXT</a> texture target
--   samples internalformat width height depth fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glTextureStorage3DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureSubImage1DEXT</a> texture target level xoffset
--   width format type pixels</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
glTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTextureSubImage2DEXT</a> texture target level xoffset
--   yoffset width height format type pixels</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
glTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTextureSubImage3DEXT</a> texture target level xoffset
--   yoffset zoffset width height depth format type pixels</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height,depth)</tt>.
glTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glUnmapNamedBufferEXT</a> buffer</tt>
glUnmapNamedBufferEXT :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glVertexArrayBindVertexBufferEXT</a> vaobj bindingindex
--   buffer offset stride</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
glVertexArrayBindVertexBufferEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Usage: <tt><a>glVertexArrayColorOffsetEXT</a> vaobj buffer size type
--   stride offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
glVertexArrayColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayEdgeFlagOffsetEXT</a> vaobj buffer stride
--   offset</tt>
glVertexArrayEdgeFlagOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayFogCoordOffsetEXT</a> vaobj buffer type
--   stride offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>FogCoordinatePointerType</tt>,
--   one of: <a>GL_FLOAT</a>, <a>GL_DOUBLE</a>.
glVertexArrayFogCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayIndexOffsetEXT</a> vaobj buffer type stride
--   offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>IndexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
glVertexArrayIndexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayMultiTexCoordOffsetEXT</a> vaobj buffer
--   texunit size type stride offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>TexCoordPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
glVertexArrayMultiTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayNormalOffsetEXT</a> vaobj buffer type
--   stride offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>NormalPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>.
glVertexArrayNormalOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArraySecondaryColorOffsetEXT</a> vaobj buffer
--   size type stride offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
glVertexArraySecondaryColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayTexCoordOffsetEXT</a> vaobj buffer size
--   type stride offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>TexCoordPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
glVertexArrayTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayVertexAttribBindingEXT</a> vaobj
--   attribindex bindingindex</tt>
glVertexArrayVertexAttribBindingEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayVertexAttribDivisorEXT</a> vaobj index
--   divisor</tt>
glVertexArrayVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayVertexAttribFormatEXT</a> vaobj attribindex
--   size type normalized relativeoffset</tt>
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexArrayVertexAttribFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayVertexAttribIFormatEXT</a> vaobj
--   attribindex size type relativeoffset</tt>
glVertexArrayVertexAttribIFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayVertexAttribIOffsetEXT</a> vaobj buffer
--   index size type stride offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribEnum</tt>.
glVertexArrayVertexAttribIOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayVertexAttribLFormatEXT</a> vaobj
--   attribindex size type relativeoffset</tt>
glVertexArrayVertexAttribLFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayVertexAttribLOffsetEXT</a> vaobj buffer
--   index size type stride offset</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
glVertexArrayVertexAttribLOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayVertexAttribOffsetEXT</a> vaobj buffer
--   index size type normalized stride offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
glVertexArrayVertexAttribOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()

-- | Usage: <tt><a>glVertexArrayVertexBindingDivisorEXT</a> vaobj
--   bindingindex divisor</tt>
glVertexArrayVertexBindingDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayVertexOffsetEXT</a> vaobj buffer size type
--   stride offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
glVertexArrayVertexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()

module Graphics.GL.Ext.EXT.DepthBoundsTest

-- | Checks that the <a>GL_EXT_depth_bounds_test</a> extension is
--   available.
gl_EXT_depth_bounds_test :: Bool

-- | Usage: <tt><a>glDepthBoundsEXT</a> zmin zmax</tt>
--   
--   The parameter <tt>zmin</tt> is a <tt>ClampedFloat64</tt>.
--   
--   The parameter <tt>zmax</tt> is a <tt>ClampedFloat64</tt>.
glDepthBoundsEXT :: MonadIO m => GLclampd -> GLclampd -> m ()

module Graphics.GL.Ext.EXT.DebugMarker

-- | Checks that the <a>GL_EXT_debug_marker</a> extension is available.
gl_EXT_debug_marker :: Bool

-- | Usage: <tt><a>glInsertEventMarkerEXT</a> length marker</tt>
glInsertEventMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glPopGroupMarkerEXT</a></tt>
glPopGroupMarkerEXT :: MonadIO m => m ()

-- | Usage: <tt><a>glPushGroupMarkerEXT</a> length marker</tt>
glPushGroupMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()

module Graphics.GL.Ext.EXT.DebugLabel

-- | Checks that the <a>GL_EXT_debug_label</a> extension is available.
gl_EXT_debug_label :: Bool

-- | Usage: <tt><a>glGetObjectLabelEXT</a> type object bufSize length
--   label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
glGetObjectLabelEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glLabelObjectEXT</a> type object length label</tt>
glLabelObjectEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

module Graphics.GL.Ext.EXT.CullVertex

-- | Checks that the <a>GL_EXT_cull_vertex</a> extension is available.
gl_EXT_cull_vertex :: Bool

-- | Usage: <tt><a>glCullParameterdvEXT</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>CullParameterEXT</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glCullParameterdvEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glCullParameterfvEXT</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>CullParameterEXT</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
glCullParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.EXT.CopyTexture

-- | Checks that the <a>GL_EXT_copy_texture</a> extension is available.
gl_EXT_copy_texture :: Bool

-- | Usage: <tt><a>glCopyTexImage1DEXT</a> target level internalformat x y
--   width border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glCopyTexImage1D</a>.
glCopyTexImage1DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTexImage2DEXT</a> target level internalformat x y
--   width height border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glCopyTexImage2D</a>.
glCopyTexImage2DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTexSubImage1DEXT</a> target level xoffset x y
--   width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   This command is an alias for <a>glCopyTexSubImage1D</a>.
glCopyTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTexSubImage2DEXT</a> target level xoffset yoffset
--   x y width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   This command is an alias for <a>glCopyTexSubImage2D</a>.
glCopyTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTexSubImage3DEXT</a> target level xoffset yoffset
--   zoffset x y width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   This command is an alias for <a>glCopyTexSubImage3D</a>.
glCopyTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.CopyImage

-- | Checks that the <a>GL_EXT_copy_image</a> extension is available.
gl_EXT_copy_image :: Bool

-- | Usage: <tt><a>glCopyImageSubDataEXT</a> srcName srcTarget srcLevel
--   srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth
--   srcHeight srcDepth</tt>
--   
--   This command is an alias for <a>glCopyImageSubData</a>.
glCopyImageSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.ANDROID.ExtensionPackEs31a

-- | Checks that the <a>GL_ANDROID_extension_pack_es31a</a> extension is
--   available.
gl_ANDROID_extension_pack_es31a :: Bool

module Graphics.GL.Ext.ANDROID

module Graphics.GL.Ext.EXT.CoordinateFrame

-- | Checks that the <a>GL_EXT_coordinate_frame</a> extension is available.
gl_EXT_coordinate_frame :: Bool

-- | Usage: <tt><a>glBinormal3bEXT</a> bx by bz</tt>
--   
--   The vector equivalent of this command is <a>glBinormal3bvEXT</a>.
glBinormal3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glBinormal3bvEXT</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glBinormal3bvEXT :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glBinormal3dEXT</a> bx by bz</tt>
--   
--   The parameter <tt>bx</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>by</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>bz</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glBinormal3dvEXT</a>.
glBinormal3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glBinormal3dvEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glBinormal3dvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glBinormal3fEXT</a> bx by bz</tt>
--   
--   The parameter <tt>bx</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>by</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>bz</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glBinormal3fvEXT</a>.
glBinormal3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glBinormal3fvEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glBinormal3fvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glBinormal3iEXT</a> bx by bz</tt>
--   
--   The vector equivalent of this command is <a>glBinormal3ivEXT</a>.
glBinormal3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glBinormal3ivEXT</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glBinormal3ivEXT :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glBinormal3sEXT</a> bx by bz</tt>
--   
--   The vector equivalent of this command is <a>glBinormal3svEXT</a>.
glBinormal3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glBinormal3svEXT</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glBinormal3svEXT :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glBinormalPointerEXT</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>BinormalPointerTypeEXT</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glBinormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glTangent3bEXT</a> tx ty tz</tt>
--   
--   The vector equivalent of this command is <a>glTangent3bvEXT</a>.
glTangent3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glTangent3bvEXT</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTangent3bvEXT :: MonadIO m => Ptr GLbyte -> m ()

-- | Usage: <tt><a>glTangent3dEXT</a> tx ty tz</tt>
--   
--   The parameter <tt>tx</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>ty</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>tz</tt> is a <tt>CoordD</tt>.
--   
--   The vector equivalent of this command is <a>glTangent3dvEXT</a>.
glTangent3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glTangent3dvEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTangent3dvEXT :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glTangent3fEXT</a> tx ty tz</tt>
--   
--   The parameter <tt>tx</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>ty</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>tz</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glTangent3fvEXT</a>.
glTangent3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTangent3fvEXT</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTangent3fvEXT :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTangent3iEXT</a> tx ty tz</tt>
--   
--   The vector equivalent of this command is <a>glTangent3ivEXT</a>.
glTangent3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glTangent3ivEXT</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTangent3ivEXT :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glTangent3sEXT</a> tx ty tz</tt>
--   
--   The vector equivalent of this command is <a>glTangent3svEXT</a>.
glTangent3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glTangent3svEXT</a> v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
glTangent3svEXT :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glTangentPointerEXT</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>TangentPointerTypeEXT</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glTangentPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.Convolution

-- | Checks that the <a>GL_EXT_convolution</a> extension is available.
gl_EXT_convolution :: Bool

-- | Usage: <tt><a>glConvolutionFilter1DEXT</a> target internalformat width
--   format type image</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>image</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
--   
--   This command is an alias for <a>glConvolutionFilter1D</a>.
glConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glConvolutionFilter2DEXT</a> target internalformat width
--   height format type image</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>image</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   This command is an alias for <a>glConvolutionFilter2D</a>.
glConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glConvolutionParameterfEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameterEXT</tt>,
--   one of: <a>GL_CONVOLUTION_BORDER_MODE</a>,
--   <a>GL_CONVOLUTION_BORDER_MODE_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE_EXT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   This command is an alias for <a>glConvolutionParameterf</a>.
glConvolutionParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glConvolutionParameterfvEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameterEXT</tt>,
--   one of: <a>GL_CONVOLUTION_BORDER_MODE</a>,
--   <a>GL_CONVOLUTION_BORDER_MODE_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE_EXT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glConvolutionParameterfv</a>.
glConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glConvolutionParameteriEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameterEXT</tt>,
--   one of: <a>GL_CONVOLUTION_BORDER_MODE</a>,
--   <a>GL_CONVOLUTION_BORDER_MODE_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE_EXT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glConvolutionParameteri</a>.
glConvolutionParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glConvolutionParameterivEXT</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameterEXT</tt>,
--   one of: <a>GL_CONVOLUTION_BORDER_MODE</a>,
--   <a>GL_CONVOLUTION_BORDER_MODE_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE_EXT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glConvolutionParameteriv</a>.
glConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glCopyConvolutionFilter1DEXT</a> target internalformat x
--   y width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   This command is an alias for <a>glCopyConvolutionFilter1D</a>.
glCopyConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyConvolutionFilter2DEXT</a> target internalformat x
--   y width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   This command is an alias for <a>glCopyConvolutionFilter2D</a>.
glCopyConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glGetConvolutionFilterEXT</a> target format type
--   image</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>image</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetConvolutionFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetConvolutionParameterfvEXT</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameterEXT</tt>,
--   one of: <a>GL_CONVOLUTION_BORDER_MODE</a>,
--   <a>GL_CONVOLUTION_BORDER_MODE_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetConvolutionParameterivEXT</a> target pname
--   params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTargetEXT</tt>, one
--   of: <a>GL_CONVOLUTION_1D</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D</a>, <a>GL_CONVOLUTION_2D_EXT</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameterEXT</tt>,
--   one of: <a>GL_CONVOLUTION_BORDER_MODE</a>,
--   <a>GL_CONVOLUTION_BORDER_MODE_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS</a>,
--   <a>GL_CONVOLUTION_FILTER_BIAS_EXT</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE</a>,
--   <a>GL_CONVOLUTION_FILTER_SCALE_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSeparableFilterEXT</a> target format type row
--   column span</tt>
--   
--   The parameter <tt>target</tt> is a <tt>SeparableTargetEXT</tt>, one
--   of: <a>GL_SEPARABLE_2D</a>, <a>GL_SEPARABLE_2D_EXT</a>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>row</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
--   
--   The length of <tt>column</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
--   
--   The length of <tt>span</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetSeparableFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()

-- | Usage: <tt><a>glSeparableFilter2DEXT</a> target internalformat width
--   height format type row column</tt>
--   
--   The parameter <tt>target</tt> is a <tt>SeparableTargetEXT</tt>, one
--   of: <a>GL_SEPARABLE_2D</a>, <a>GL_SEPARABLE_2D_EXT</a>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>row</tt> should be
--   <tt>COMPSIZE(target,format,type,width)</tt>.
--   
--   The length of <tt>column</tt> should be
--   <tt>COMPSIZE(target,format,type,height)</tt>.
--   
--   This command is an alias for <a>glSeparableFilter2D</a>.
glSeparableFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.CompiledVertexArray

-- | Checks that the <a>GL_EXT_compiled_vertex_array</a> extension is
--   available.
gl_EXT_compiled_vertex_array :: Bool

-- | Usage: <tt><a>glLockArraysEXT</a> first count</tt>
glLockArraysEXT :: MonadIO m => GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glUnlockArraysEXT</a></tt>
glUnlockArraysEXT :: MonadIO m => m ()

module Graphics.GL.Ext.EXT.ColorSubtable

-- | Checks that the <a>GL_EXT_color_subtable</a> extension is available.
gl_EXT_color_subtable :: Bool

-- | Usage: <tt><a>glColorSubTableEXT</a> target start count format type
--   data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>data</tt> should be
--   <tt>COMPSIZE(format,type,count)</tt>.
--   
--   This command is an alias for <a>glColorSubTable</a>.
glColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyColorSubTableEXT</a> target start x y width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   This command is an alias for <a>glCopyColorSubTable</a>.
glCopyColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()

module Graphics.GL.Ext.EXT.ClearTexture

-- | Checks that the <a>GL_EXT_clear_texture</a> extension is available.
gl_EXT_clear_texture :: Bool

-- | Usage: <tt><a>glClearTexImageEXT</a> texture level format type
--   data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   This command is an alias for <a>glClearTexImage</a>.
glClearTexImageEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearTexSubImageEXT</a> texture level xoffset yoffset
--   zoffset width height depth format type data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(format,type)</tt>.
--   
--   This command is an alias for <a>glClearTexSubImage</a>.
glClearTexSubImageEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.EXT.BufferStorage

-- | Checks that the <a>GL_EXT_buffer_storage</a> extension is available.
gl_EXT_buffer_storage :: Bool

-- | Usage: <tt><a>glBufferStorageEXT</a> target size data flags</tt>
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   This command is an alias for <a>glBufferStorage</a>.
glBufferStorageEXT :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()

module Graphics.GL.Ext.EXT.BlendMinmax

-- | Checks that the <a>GL_EXT_blend_minmax</a> extension is available.
gl_EXT_blend_minmax :: Bool

-- | Usage: <tt><a>glBlendEquationEXT</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>BlendEquationModeEXT</tt>, one
--   of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   This command is an alias for <a>glBlendEquation</a>.
glBlendEquationEXT :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.EXT.BlendFuncSeparate

-- | Checks that the <a>GL_EXT_blend_func_separate</a> extension is
--   available.
gl_EXT_blend_func_separate :: Bool

-- | Usage: <tt><a>glBlendFuncSeparateEXT</a> sfactorRGB dfactorRGB
--   sfactorAlpha dfactorAlpha</tt>
--   
--   The parameter <tt>sfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorRGB</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>sfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   The parameter <tt>dfactorAlpha</tt> is a
--   <tt>BlendFuncSeparateParameterEXT</tt>.
--   
--   This command is an alias for <a>glBlendFuncSeparate</a>.
glBlendFuncSeparateEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

module Graphics.GL.Ext.EXT.BlendFuncExtended

-- | Checks that the GL_EXT_blend_func_extended extension is available.
gl_EXT_blend_func_extended :: Bool

-- | Usage: <tt><a>glBindFragDataLocationEXT</a> program color name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
--   
--   This command is an alias for <a>glBindFragDataLocation</a>.
glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glBindFragDataLocationIndexedEXT</a> program colorNumber
--   index name</tt>
--   
--   This command is an alias for <a>glBindFragDataLocationIndexed</a>.
glBindFragDataLocationIndexedEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetFragDataIndexEXT</a> program name</tt>
--   
--   This command is an alias for <a>glGetFragDataIndex</a>.
glGetFragDataIndexEXT :: MonadIO m => GLuint -> Ptr GLchar -> m GLint

-- | Usage: <tt><a>glGetProgramResourceLocationIndexEXT</a> program
--   programInterface name</tt>
--   
--   The length of <tt>name</tt> should be <tt>COMPSIZE(name)</tt>.
glGetProgramResourceLocationIndexEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint

module Graphics.GL.Ext.EXT.BlendEquationSeparate

-- | Checks that the <a>GL_EXT_blend_equation_separate</a> extension is
--   available.
gl_EXT_blend_equation_separate :: Bool

-- | Usage: <tt><a>glBlendEquationSeparateEXT</a> modeRGB modeAlpha</tt>
--   
--   The parameter <tt>modeRGB</tt> is a <tt>BlendEquationModeEXT</tt>, one
--   of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   The parameter <tt>modeAlpha</tt> is a <tt>BlendEquationModeEXT</tt>,
--   one of: <a>GL_ALPHA_MAX_SGIX</a>, <a>GL_ALPHA_MIN_SGIX</a>,
--   <a>GL_FUNC_ADD_EXT</a>, <a>GL_FUNC_REVERSE_SUBTRACT_EXT</a>,
--   <a>GL_FUNC_SUBTRACT_EXT</a>, <a>GL_LOGIC_OP</a>, <a>GL_MAX_EXT</a>,
--   <a>GL_MIN_EXT</a>.
--   
--   This command is an alias for <a>glBlendEquationSeparate</a>.
glBlendEquationSeparateEXT :: MonadIO m => GLenum -> GLenum -> m ()

module Graphics.GL.Ext.EXT.BlendColor

-- | Checks that the <a>GL_EXT_blend_color</a> extension is available.
gl_EXT_blend_color :: Bool

-- | Usage: <tt><a>glBlendColorEXT</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   This command is an alias for <a>glBlendColor</a>.
glBlendColorEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

module Graphics.GL.Ext.EXT.BindableUniform

-- | Checks that the <a>GL_EXT_bindable_uniform</a> extension is available.
gl_EXT_bindable_uniform :: Bool

-- | Usage: <tt><a>glGetUniformBufferSizeEXT</a> program location</tt>
glGetUniformBufferSizeEXT :: MonadIO m => GLuint -> GLint -> m GLint

-- | Usage: <tt><a>glGetUniformOffsetEXT</a> program location</tt>
glGetUniformOffsetEXT :: MonadIO m => GLuint -> GLint -> m GLintptr

-- | Usage: <tt><a>glUniformBufferEXT</a> program location buffer</tt>
glUniformBufferEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()

module Graphics.GL.Ext.EXT.BaseInstance

-- | Checks that the GL_EXT_base_instance extension is available.
gl_EXT_base_instance :: Bool

-- | Usage: <tt><a>glDrawArraysInstancedBaseInstanceEXT</a> mode first
--   count instancecount baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawArraysInstancedBaseInstance</a>.
glDrawArraysInstancedBaseInstanceEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseInstanceEXT</a> mode count
--   type indices instancecount baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
--   
--   This command is an alias for
--   <a>glDrawElementsInstancedBaseInstance</a>.
glDrawElementsInstancedBaseInstanceEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertexBaseInstanceEXT</a>
--   mode count type indices instancecount basevertex baseinstance</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be <tt>count</tt>.
--   
--   This command is an alias for
--   <a>glDrawElementsInstancedBaseVertexBaseInstance</a>.
glDrawElementsInstancedBaseVertexBaseInstanceEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()

module Graphics.GL.Ext.EXT

module Graphics.GL.Ext.ATI.VertexStreams

-- | Checks that the <a>GL_ATI_vertex_streams</a> extension is available.
gl_ATI_vertex_streams :: Bool

-- | Usage: <tt><a>glClientActiveVertexStreamATI</a> stream</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glClientActiveVertexStreamATI :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glNormalStream3bATI</a> stream nx ny nz</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glNormalStream3bATI :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()

-- | Usage: <tt><a>glNormalStream3bvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glNormalStream3bvATI :: MonadIO m => GLenum -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glNormalStream3dATI</a> stream nx ny nz</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glNormalStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glNormalStream3dvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glNormalStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glNormalStream3fATI</a> stream nx ny nz</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glNormalStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glNormalStream3fvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glNormalStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNormalStream3iATI</a> stream nx ny nz</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glNormalStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glNormalStream3ivATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glNormalStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glNormalStream3sATI</a> stream nx ny nz</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glNormalStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glNormalStream3svATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glNormalStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexBlendEnvfATI</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexStreamATI</tt>.
glVertexBlendEnvfATI :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexBlendEnviATI</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexStreamATI</tt>.
glVertexBlendEnviATI :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glVertexStream1dATI</a> stream x</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream1dATI :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexStream1dvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glVertexStream1dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexStream1fATI</a> stream x</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream1fATI :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexStream1fvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glVertexStream1fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexStream1iATI</a> stream x</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream1iATI :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glVertexStream1ivATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glVertexStream1ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexStream1sATI</a> stream x</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream1sATI :: MonadIO m => GLenum -> GLshort -> m ()

-- | Usage: <tt><a>glVertexStream1svATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>1</tt>.
glVertexStream1svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexStream2dATI</a> stream x y</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream2dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexStream2dvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glVertexStream2dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexStream2fATI</a> stream x y</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream2fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexStream2fvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glVertexStream2fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexStream2iATI</a> stream x y</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream2iATI :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexStream2ivATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glVertexStream2ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexStream2sATI</a> stream x y</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream2sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexStream2svATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>2</tt>.
glVertexStream2svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexStream3dATI</a> stream x y z</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexStream3dvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glVertexStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexStream3fATI</a> stream x y z</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexStream3fvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glVertexStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexStream3iATI</a> stream x y z</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexStream3ivATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glVertexStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexStream3sATI</a> stream x y z</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexStream3svATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>3</tt>.
glVertexStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexStream4dATI</a> stream x y z w</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream4dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexStream4dvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glVertexStream4dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexStream4fATI</a> stream x y z w</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream4fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexStream4fvATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glVertexStream4fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexStream4iATI</a> stream x y z w</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream4iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glVertexStream4ivATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glVertexStream4ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexStream4sATI</a> stream x y z w</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
glVertexStream4sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexStream4svATI</a> stream coords</tt>
--   
--   The parameter <tt>stream</tt> is a <tt>VertexStreamATI</tt>.
--   
--   The length of <tt>coords</tt> should be <tt>4</tt>.
glVertexStream4svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()

module Graphics.GL.Ext.ATI.VertexAttribArrayObject

-- | Checks that the <a>GL_ATI_vertex_attrib_array_object</a> extension is
--   available.
gl_ATI_vertex_attrib_array_object :: Bool

-- | Usage: <tt><a>glGetVertexAttribArrayObjectfvATI</a> index pname
--   params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ArrayObjectPNameATI</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVertexAttribArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVertexAttribArrayObjectivATI</a> index pname
--   params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ArrayObjectPNameATI</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetVertexAttribArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttribArrayObjectATI</a> index size type
--   normalized stride buffer offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glVertexAttribArrayObjectATI :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()

module Graphics.GL.Ext.ATI.VertexArrayObject

-- | Checks that the <a>GL_ATI_vertex_array_object</a> extension is
--   available.
gl_ATI_vertex_array_object :: Bool

-- | Usage: <tt><a>glArrayObjectATI</a> array size type stride buffer
--   offset</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   The parameter <tt>type</tt> is a <tt>ScalarType</tt>.
glArrayObjectATI :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glFreeObjectBufferATI</a> buffer</tt>
glFreeObjectBufferATI :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGetArrayObjectfvATI</a> array pname params</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>ArrayObjectPNameATI</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetArrayObjectfvATI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetArrayObjectivATI</a> array pname params</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>ArrayObjectPNameATI</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetArrayObjectivATI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetObjectBufferfvATI</a> buffer pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ArrayObjectPNameATI</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetObjectBufferfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetObjectBufferivATI</a> buffer pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ArrayObjectPNameATI</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetObjectBufferivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVariantArrayObjectfvATI</a> id pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ArrayObjectPNameATI</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVariantArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVariantArrayObjectivATI</a> id pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ArrayObjectPNameATI</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetVariantArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsObjectBufferATI</a> buffer</tt>
glIsObjectBufferATI :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glNewObjectBufferATI</a> size pointer usage</tt>
--   
--   The parameter <tt>usage</tt> is a <tt>ArrayObjectUsageATI</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>size</tt>.
glNewObjectBufferATI :: MonadIO m => GLsizei -> Ptr () -> GLenum -> m GLuint

-- | Usage: <tt><a>glUpdateObjectBufferATI</a> buffer offset size pointer
--   preserve</tt>
--   
--   The parameter <tt>preserve</tt> is a <tt>PreserveModeATI</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>size</tt>.
glUpdateObjectBufferATI :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glVariantArrayObjectATI</a> id type stride buffer
--   offset</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ScalarType</tt>.
glVariantArrayObjectATI :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()

module Graphics.GL.Ext.ATI.SeparateStencil

-- | Checks that the <a>GL_ATI_separate_stencil</a> extension is available.
gl_ATI_separate_stencil :: Bool

-- | Usage: <tt><a>glStencilFuncSeparateATI</a> frontfunc backfunc ref
--   mask</tt>
--   
--   The parameter <tt>frontfunc</tt> is a <tt>StencilFunction</tt>, one
--   of: <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>backfunc</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>ClampedStencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
glStencilFuncSeparateATI :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilOpSeparateATI</a> face sfail dpfail dppass</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
--   
--   The parameter <tt>sfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dpfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dppass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   This command is an alias for <a>glStencilOpSeparate</a>.
glStencilOpSeparateATI :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()

module Graphics.GL.Ext.ATI.PnTriangles

-- | Checks that the <a>GL_ATI_pn_triangles</a> extension is available.
gl_ATI_pn_triangles :: Bool

-- | Usage: <tt><a>glPNTrianglesfATI</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PNTrianglesPNameATI</tt>.
glPNTrianglesfATI :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPNTrianglesiATI</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PNTrianglesPNameATI</tt>.
glPNTrianglesiATI :: MonadIO m => GLenum -> GLint -> m ()

module Graphics.GL.Ext.ATI.MapObjectBuffer

-- | Checks that the <a>GL_ATI_map_object_buffer</a> extension is
--   available.
gl_ATI_map_object_buffer :: Bool

-- | Usage: <tt><a>glMapObjectBufferATI</a> buffer</tt>
glMapObjectBufferATI :: MonadIO m => GLuint -> m (Ptr ())

-- | Usage: <tt><a>glUnmapObjectBufferATI</a> buffer</tt>
glUnmapObjectBufferATI :: MonadIO m => GLuint -> m ()

module Graphics.GL.Ext.ATI.FragmentShader

-- | Checks that the <a>GL_ATI_fragment_shader</a> extension is available.
gl_ATI_fragment_shader :: Bool

-- | Usage: <tt><a>glAlphaFragmentOp1ATI</a> op dst dstMod arg1 arg1Rep
--   arg1Mod</tt>
--   
--   The parameter <tt>op</tt> is a <tt>FragmentOpATI</tt>.
glAlphaFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glAlphaFragmentOp2ATI</a> op dst dstMod arg1 arg1Rep
--   arg1Mod arg2 arg2Rep arg2Mod</tt>
--   
--   The parameter <tt>op</tt> is a <tt>FragmentOpATI</tt>.
glAlphaFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glAlphaFragmentOp3ATI</a> op dst dstMod arg1 arg1Rep
--   arg1Mod arg2 arg2Rep arg2Mod arg3 arg3Rep arg3Mod</tt>
--   
--   The parameter <tt>op</tt> is a <tt>FragmentOpATI</tt>.
glAlphaFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBeginFragmentShaderATI</a></tt>
glBeginFragmentShaderATI :: MonadIO m => m ()

-- | Usage: <tt><a>glBindFragmentShaderATI</a> id</tt>
glBindFragmentShaderATI :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glColorFragmentOp1ATI</a> op dst dstMask dstMod arg1
--   arg1Rep arg1Mod</tt>
--   
--   The parameter <tt>op</tt> is a <tt>FragmentOpATI</tt>.
glColorFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glColorFragmentOp2ATI</a> op dst dstMask dstMod arg1
--   arg1Rep arg1Mod arg2 arg2Rep arg2Mod</tt>
--   
--   The parameter <tt>op</tt> is a <tt>FragmentOpATI</tt>.
glColorFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glColorFragmentOp3ATI</a> op dst dstMask dstMod arg1
--   arg1Rep arg1Mod arg2 arg2Rep arg2Mod arg3 arg3Rep arg3Mod</tt>
--   
--   The parameter <tt>op</tt> is a <tt>FragmentOpATI</tt>.
glColorFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteFragmentShaderATI</a> id</tt>
glDeleteFragmentShaderATI :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glEndFragmentShaderATI</a></tt>
glEndFragmentShaderATI :: MonadIO m => m ()

-- | Usage: <tt><a>glGenFragmentShadersATI</a> range</tt>
glGenFragmentShadersATI :: MonadIO m => GLuint -> m GLuint

-- | Usage: <tt><a>glPassTexCoordATI</a> dst coord swizzle</tt>
--   
--   The parameter <tt>swizzle</tt> is a <tt>SwizzleOpATI</tt>.
glPassTexCoordATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glSampleMapATI</a> dst interp swizzle</tt>
--   
--   The parameter <tt>swizzle</tt> is a <tt>SwizzleOpATI</tt>.
glSampleMapATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glSetFragmentShaderConstantATI</a> dst value</tt>
--   
--   The length of <tt>value</tt> should be <tt>4</tt>.
glSetFragmentShaderConstantATI :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.ATI.EnvmapBumpmap

-- | Checks that the <a>GL_ATI_envmap_bumpmap</a> extension is available.
gl_ATI_envmap_bumpmap :: Bool

-- | Usage: <tt><a>glGetTexBumpParameterfvATI</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetTexBumpParameterATI</tt>.
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexBumpParameterivATI</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetTexBumpParameterATI</tt>.
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexBumpParameterfvATI</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>TexBumpParameterATI</tt>.
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexBumpParameterivATI</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>TexBumpParameterATI</tt>.
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()

module Graphics.GL.Ext.ATI.ElementArray

-- | Checks that the <a>GL_ATI_element_array</a> extension is available.
gl_ATI_element_array :: Bool

-- | Usage: <tt><a>glDrawElementArrayATI</a> mode count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
glDrawElementArrayATI :: MonadIO m => GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawRangeElementArrayATI</a> mode start end count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
glDrawRangeElementArrayATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()

-- | Usage: <tt><a>glElementPointerATI</a> type pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ElementPointerTypeATI</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>COMPSIZE(type)</tt>.
glElementPointerATI :: MonadIO m => GLenum -> Ptr () -> m ()

module Graphics.GL.Ext.ATI.DrawBuffers

-- | Checks that the <a>GL_ATI_draw_buffers</a> extension is available.
gl_ATI_draw_buffers :: Bool

-- | Usage: <tt><a>glDrawBuffersATI</a> n bufs</tt>
--   
--   The parameter <tt>bufs</tt> is a <tt>DrawBufferModeATI</tt>.
--   
--   The length of <tt>bufs</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDrawBuffers</a>.
glDrawBuffersATI :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

module Graphics.GL.Ext.ATI

module Graphics.GL.Ext.ARB.WindowPos

-- | Checks that the <a>GL_ARB_window_pos</a> extension is available.
gl_ARB_window_pos :: Bool

-- | Usage: <tt><a>glWindowPos2dARB</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   This command is an alias for <a>glWindowPos2d</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos2dvARB</a>.
glWindowPos2dARB :: MonadIO m => GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos2dvARB</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glWindowPos2dv</a>.
glWindowPos2dvARB :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos2fARB</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   This command is an alias for <a>glWindowPos2f</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos2fvARB</a>.
glWindowPos2fARB :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos2fvARB</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glWindowPos2fv</a>.
glWindowPos2fvARB :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos2iARB</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   This command is an alias for <a>glWindowPos2i</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos2ivARB</a>.
glWindowPos2iARB :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glWindowPos2ivARB</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glWindowPos2iv</a>.
glWindowPos2ivARB :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glWindowPos2sARB</a> x y</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   This command is an alias for <a>glWindowPos2s</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos2svARB</a>.
glWindowPos2sARB :: MonadIO m => GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glWindowPos2svARB</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glWindowPos2sv</a>.
glWindowPos2svARB :: MonadIO m => Ptr GLshort -> m ()

-- | Usage: <tt><a>glWindowPos3dARB</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordD</tt>.
--   
--   This command is an alias for <a>glWindowPos3d</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos3dvARB</a>.
glWindowPos3dARB :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos3dvARB</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glWindowPos3dv</a>.
glWindowPos3dvARB :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWindowPos3fARB</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordF</tt>.
--   
--   This command is an alias for <a>glWindowPos3f</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos3fvARB</a>.
glWindowPos3fARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos3fvARB</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glWindowPos3fv</a>.
glWindowPos3fvARB :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWindowPos3iARB</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordI</tt>.
--   
--   This command is an alias for <a>glWindowPos3i</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos3ivARB</a>.
glWindowPos3iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glWindowPos3ivARB</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glWindowPos3iv</a>.
glWindowPos3ivARB :: MonadIO m => Ptr GLint -> m ()

-- | Usage: <tt><a>glWindowPos3sARB</a> x y z</tt>
--   
--   The parameter <tt>x</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>z</tt> is a <tt>CoordS</tt>.
--   
--   This command is an alias for <a>glWindowPos3s</a>.
--   
--   The vector equivalent of this command is <a>glWindowPos3svARB</a>.
glWindowPos3sARB :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glWindowPos3svARB</a> v</tt>
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glWindowPos3sv</a>.
glWindowPos3svARB :: MonadIO m => Ptr GLshort -> m ()

module Graphics.GL.Ext.ARB.VertexShader

-- | Checks that the <a>GL_ARB_vertex_shader</a> extension is available.
gl_ARB_vertex_shader :: Bool

-- | Usage: <tt><a>glBindAttribLocationARB</a> programObj index name</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   This command is an alias for <a>glBindAttribLocation</a>.
glBindAttribLocationARB :: MonadIO m => GLhandleARB -> GLuint -> Ptr GLcharARB -> m ()

-- | Usage: <tt><a>glDisableVertexAttribArrayARB</a> index</tt>
--   
--   This command is an alias for <a>glDisableVertexAttribArray</a>.
glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glEnableVertexAttribArrayARB</a> index</tt>
--   
--   This command is an alias for <a>glEnableVertexAttribArray</a>.
glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGetActiveAttribARB</a> programObj index maxLength
--   length size type name</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>maxLength</tt>.
--   
--   This command is an alias for <a>glGetActiveAttrib</a>.
glGetActiveAttribARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()

-- | Usage: <tt><a>glGetAttribLocationARB</a> programObj name</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   This command is an alias for <a>glGetAttribLocation</a>.
glGetAttribLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint

-- | Usage: <tt><a>glGetVertexAttribPointervARB</a> index pname
--   pointer</tt>
--   
--   The parameter <tt>pname</tt> is a
--   <tt>VertexAttribPointerPropertyARB</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribPointerv</a>.
glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetVertexAttribdvARB</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribdv</a>.
glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetVertexAttribfvARB</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribfv</a>.
glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetVertexAttribivARB</a> index pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexAttribPropertyARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glGetVertexAttribiv</a>.
glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttrib1dARB</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1dvARB</a>.
glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1dv</a>.
glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib1fARB</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1fvARB</a>.
glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1fv</a>.
glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib1sARB</a> index x</tt>
--   
--   This command is an alias for <a>glVertexAttrib1s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib1svARB</a>.
glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib1svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glVertexAttrib1sv</a>.
glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2dARB</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2dvARB</a>.
glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2dv</a>.
glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib2fARB</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2fvARB</a>.
glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2fv</a>.
glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib2sARB</a> index x y</tt>
--   
--   This command is an alias for <a>glVertexAttrib2s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib2svARB</a>.
glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib2svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glVertexAttrib2sv</a>.
glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3dARB</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3dvARB</a>.
glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3dv</a>.
glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib3fARB</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3fvARB</a>.
glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3fv</a>.
glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib3sARB</a> index x y z</tt>
--   
--   This command is an alias for <a>glVertexAttrib3s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib3svARB</a>.
glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib3svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glVertexAttrib3sv</a>.
glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4NbvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nbv</a>.
glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4NivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Niv</a>.
glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttrib4NsvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nsv</a>.
glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4NubARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4Nub</a>.
glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4NubvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nubv</a>.
glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4NuivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nuiv</a>.
glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib4NusvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4Nusv</a>.
glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttrib4bvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4bv</a>.
glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4dARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4d</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4dvARB</a>.
glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4dvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4dv</a>.
glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glVertexAttrib4fARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4f</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4fvARB</a>.
glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4fvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4fv</a>.
glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glVertexAttrib4ivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4iv</a>.
glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glVertexAttrib4sARB</a> index x y z w</tt>
--   
--   This command is an alias for <a>glVertexAttrib4s</a>.
--   
--   The vector equivalent of this command is <a>glVertexAttrib4svARB</a>.
glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4svARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4sv</a>.
glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glVertexAttrib4ubvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4ubv</a>.
glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glVertexAttrib4uivARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4uiv</a>.
glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glVertexAttrib4usvARB</a> index v</tt>
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glVertexAttrib4usv</a>.
glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glVertexAttribPointerARB</a> index size type normalized
--   stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexAttribPointerType</tt>.
--   
--   The parameter <tt>normalized</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
--   
--   This command is an alias for <a>glVertexAttribPointer</a>.
glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.VertexBufferObject

-- | Checks that the <a>GL_ARB_vertex_buffer_object</a> extension is
--   available.
gl_ARB_vertex_buffer_object :: Bool

-- | Usage: <tt><a>glBindBufferARB</a> target buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   This command is an alias for <a>glBindBuffer</a>.
glBindBufferARB :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBufferDataARB</a> target size data usage</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSizeARB</tt>.
--   
--   The parameter <tt>usage</tt> is a <tt>BufferUsageARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   This command is an alias for <a>glBufferData</a>.
glBufferDataARB :: MonadIO m => GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glBufferSubDataARB</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffsetARB</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSizeARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   This command is an alias for <a>glBufferSubData</a>.
glBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()

-- | Usage: <tt><a>glDeleteBuffersARB</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDeleteBuffers</a>.
glDeleteBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenBuffersARB</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glGenBuffers</a>.
glGenBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetBufferParameterivARB</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetBufferParameteriv</a>.
glGetBufferParameterivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetBufferPointervARB</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPointerNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glGetBufferPointerv</a>.
glGetBufferPointervARB :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetBufferSubDataARB</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffsetARB</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSizeARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   This command is an alias for <a>glGetBufferSubData</a>.
glGetBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()

-- | Usage: <tt><a>glIsBufferARB</a> buffer</tt>
--   
--   This command is an alias for <a>glIsBuffer</a>.
glIsBufferARB :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glMapBufferARB</a> target access</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>access</tt> is a <tt>BufferAccessARB</tt>.
--   
--   This command is an alias for <a>glMapBuffer</a>.
glMapBufferARB :: MonadIO m => GLenum -> GLenum -> m (Ptr ())

-- | Usage: <tt><a>glUnmapBufferARB</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   This command is an alias for <a>glUnmapBuffer</a>.
glUnmapBufferARB :: MonadIO m => GLenum -> m GLboolean

module Graphics.GL.Ext.ARB.VertexBlend

-- | Checks that the <a>GL_ARB_vertex_blend</a> extension is available.
gl_ARB_vertex_blend :: Bool

-- | Usage: <tt><a>glVertexBlendARB</a> count</tt>
glVertexBlendARB :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glWeightPointerARB</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>WeightPointerTypeARB</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glWeightPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glWeightbvARB</a> size weights</tt>
--   
--   The length of <tt>weights</tt> should be <tt>size</tt>.
glWeightbvARB :: MonadIO m => GLint -> Ptr GLbyte -> m ()

-- | Usage: <tt><a>glWeightdvARB</a> size weights</tt>
--   
--   The length of <tt>weights</tt> should be <tt>size</tt>.
glWeightdvARB :: MonadIO m => GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glWeightfvARB</a> size weights</tt>
--   
--   The length of <tt>weights</tt> should be <tt>size</tt>.
glWeightfvARB :: MonadIO m => GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glWeightivARB</a> size weights</tt>
--   
--   The length of <tt>weights</tt> should be <tt>size</tt>.
glWeightivARB :: MonadIO m => GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glWeightsvARB</a> size weights</tt>
--   
--   The length of <tt>weights</tt> should be <tt>size</tt>.
glWeightsvARB :: MonadIO m => GLint -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glWeightubvARB</a> size weights</tt>
--   
--   The length of <tt>weights</tt> should be <tt>size</tt>.
glWeightubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glWeightuivARB</a> size weights</tt>
--   
--   The length of <tt>weights</tt> should be <tt>size</tt>.
glWeightuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glWeightusvARB</a> size weights</tt>
--   
--   The length of <tt>weights</tt> should be <tt>size</tt>.
glWeightusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()

module Graphics.GL.Ext.ARB.TransposeMatrix

-- | Checks that the <a>GL_ARB_transpose_matrix</a> extension is available.
gl_ARB_transpose_matrix :: Bool

-- | Usage: <tt><a>glLoadTransposeMatrixdARB</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
--   
--   This command is an alias for <a>glLoadTransposeMatrixd</a>.
glLoadTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glLoadTransposeMatrixfARB</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
--   
--   This command is an alias for <a>glLoadTransposeMatrixf</a>.
glLoadTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultTransposeMatrixdARB</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
--   
--   This command is an alias for <a>glMultTransposeMatrixd</a>.
glMultTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultTransposeMatrixfARB</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
--   
--   This command is an alias for <a>glMultTransposeMatrixf</a>.
glMultTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()

module Graphics.GL.Ext.ARB.TextureCompression

-- | Checks that the <a>GL_ARB_texture_compression</a> extension is
--   available.
gl_ARB_texture_compression :: Bool

-- | Usage: <tt><a>glCompressedTexImage1DARB</a> target level
--   internalformat width border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   This command is an alias for <a>glCompressedTexImage1D</a>.
glCompressedTexImage1DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexImage2DARB</a> target level
--   internalformat width height border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   This command is an alias for <a>glCompressedTexImage2D</a>.
glCompressedTexImage2DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexImage3DARB</a> target level
--   internalformat width height depth border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   This command is an alias for <a>glCompressedTexImage3D</a>.
glCompressedTexImage3DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage1DARB</a> target level xoffset
--   width format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   This command is an alias for <a>glCompressedTexSubImage1D</a>.
glCompressedTexSubImage1DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage2DARB</a> target level xoffset
--   yoffset width height format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   This command is an alias for <a>glCompressedTexSubImage2D</a>.
glCompressedTexSubImage2DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage3DARB</a> target level xoffset
--   yoffset zoffset width height depth format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>zoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   This command is an alias for <a>glCompressedTexSubImage3D</a>.
glCompressedTexSubImage3DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetCompressedTexImageARB</a> target level img</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>img</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>img</tt> should be <tt>COMPSIZE(target,level)</tt>.
--   
--   This command is an alias for <a>glGetCompressedTexImage</a>.
glGetCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.TextureBufferObject

-- | Checks that the <a>GL_ARB_texture_buffer_object</a> extension is
--   available.
gl_ARB_texture_buffer_object :: Bool

-- | Usage: <tt><a>glTexBufferARB</a> target internalformat buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   This command is an alias for <a>glTexBuffer</a>.
glTexBufferARB :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

module Graphics.GL.Ext.ARB.SparseTexture

-- | Checks that the <a>GL_ARB_sparse_texture</a> extension is available.
gl_ARB_sparse_texture :: Bool

-- | Usage: <tt><a>glTexPageCommitmentARB</a> target level xoffset yoffset
--   zoffset width height depth commit</tt>
glTexPageCommitmentARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

module Graphics.GL.Ext.ARB.SparseBuffer

-- | Checks that the <a>GL_ARB_sparse_buffer</a> extension is available.
gl_ARB_sparse_buffer :: Bool

-- | Usage: <tt><a>glBufferPageCommitmentARB</a> target offset size
--   commit</tt>
glBufferPageCommitmentARB :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> m ()

-- | Usage: <tt><a>glNamedBufferPageCommitmentARB</a> buffer offset size
--   commit</tt>
glNamedBufferPageCommitmentARB :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()

-- | Usage: <tt><a>glNamedBufferPageCommitmentEXT</a> buffer offset size
--   commit</tt>
glNamedBufferPageCommitmentEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()

module Graphics.GL.Ext.ARB.ShadingLanguageInclude

-- | Checks that the <a>GL_ARB_shading_language_include</a> extension is
--   available.
gl_ARB_shading_language_include :: Bool

-- | Usage: <tt><a>glCompileShaderIncludeARB</a> shader count path
--   length</tt>
--   
--   The length of <tt>path</tt> should be <tt>count</tt>.
--   
--   The length of <tt>length</tt> should be <tt>count</tt>.
glCompileShaderIncludeARB :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()

-- | Usage: <tt><a>glDeleteNamedStringARB</a> namelen name</tt>
--   
--   The length of <tt>name</tt> should be <tt>namelen</tt>.
glDeleteNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetNamedStringARB</a> namelen name bufSize stringlen
--   string</tt>
--   
--   The length of <tt>name</tt> should be <tt>namelen</tt>.
--   
--   The length of <tt>stringlen</tt> should be <tt>1</tt>.
--   
--   The length of <tt>string</tt> should be <tt>bufSize</tt>.
glGetNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetNamedStringivARB</a> namelen name pname params</tt>
--   
--   The length of <tt>name</tt> should be <tt>namelen</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetNamedStringivARB :: MonadIO m => GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsNamedStringARB</a> namelen name</tt>
--   
--   The length of <tt>name</tt> should be <tt>namelen</tt>.
glIsNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m GLboolean

-- | Usage: <tt><a>glNamedStringARB</a> type namelen name stringlen
--   string</tt>
--   
--   The length of <tt>name</tt> should be <tt>namelen</tt>.
--   
--   The length of <tt>string</tt> should be <tt>stringlen</tt>.
glNamedStringARB :: MonadIO m => GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()

module Graphics.GL.Ext.ARB.ShaderObjects

-- | Checks that the <a>GL_ARB_shader_objects</a> extension is available.
gl_ARB_shader_objects :: Bool

-- | Usage: <tt><a>glAttachObjectARB</a> containerObj obj</tt>
--   
--   The parameter <tt>containerObj</tt> is a <tt>handleARB</tt>.
--   
--   The parameter <tt>obj</tt> is a <tt>handleARB</tt>.
--   
--   This command is an alias for <a>glAttachShader</a>.
glAttachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()

-- | Usage: <tt><a>glCompileShaderARB</a> shaderObj</tt>
--   
--   The parameter <tt>shaderObj</tt> is a <tt>handleARB</tt>.
--   
--   This command is an alias for <a>glCompileShader</a>.
glCompileShaderARB :: MonadIO m => GLhandleARB -> m ()

-- | Usage: <tt><a>glCreateProgramObjectARB</a></tt>
--   
--   This command is an alias for <a>glCreateProgram</a>.
glCreateProgramObjectARB :: MonadIO m => m GLhandleARB

-- | Usage: <tt><a>glCreateShaderObjectARB</a> shaderType</tt>
--   
--   This command is an alias for <a>glCreateShader</a>.
glCreateShaderObjectARB :: MonadIO m => GLenum -> m GLhandleARB

-- | Usage: <tt><a>glDeleteObjectARB</a> obj</tt>
--   
--   The parameter <tt>obj</tt> is a <tt>handleARB</tt>.
glDeleteObjectARB :: MonadIO m => GLhandleARB -> m ()

-- | Usage: <tt><a>glDetachObjectARB</a> containerObj attachedObj</tt>
--   
--   The parameter <tt>containerObj</tt> is a <tt>handleARB</tt>.
--   
--   The parameter <tt>attachedObj</tt> is a <tt>handleARB</tt>.
--   
--   This command is an alias for <a>glDetachShader</a>.
glDetachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()

-- | Usage: <tt><a>glGetActiveUniformARB</a> programObj index maxLength
--   length size type name</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>size</tt> should be <tt>1</tt>.
--   
--   The length of <tt>type</tt> should be <tt>1</tt>.
--   
--   The length of <tt>name</tt> should be <tt>maxLength</tt>.
--   
--   This command is an alias for <a>glGetActiveUniform</a>.
glGetActiveUniformARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()

-- | Usage: <tt><a>glGetAttachedObjectsARB</a> containerObj maxCount count
--   obj</tt>
--   
--   The parameter <tt>containerObj</tt> is a <tt>handleARB</tt>.
--   
--   The parameter <tt>obj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>count</tt> should be <tt>1</tt>.
--   
--   The length of <tt>obj</tt> should be <tt>maxCount</tt>.
glGetAttachedObjectsARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()

-- | Usage: <tt><a>glGetHandleARB</a> pname</tt>
glGetHandleARB :: MonadIO m => GLenum -> m GLhandleARB

-- | Usage: <tt><a>glGetInfoLogARB</a> obj maxLength length infoLog</tt>
--   
--   The parameter <tt>obj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>infoLog</tt> should be <tt>maxLength</tt>.
glGetInfoLogARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()

-- | Usage: <tt><a>glGetObjectParameterfvARB</a> obj pname params</tt>
--   
--   The parameter <tt>obj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetObjectParameterfvARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetObjectParameterivARB</a> obj pname params</tt>
--   
--   The parameter <tt>obj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetObjectParameterivARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetShaderSourceARB</a> obj maxLength length
--   source</tt>
--   
--   The parameter <tt>obj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>source</tt> should be <tt>maxLength</tt>.
--   
--   This command is an alias for <a>glGetShaderSource</a>.
glGetShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()

-- | Usage: <tt><a>glGetUniformLocationARB</a> programObj name</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   This command is an alias for <a>glGetUniformLocation</a>.
glGetUniformLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint

-- | Usage: <tt><a>glGetUniformfvARB</a> programObj location params</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(programObj,location)</tt>.
--   
--   This command is an alias for <a>glGetUniformfv</a>.
glGetUniformfvARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetUniformivARB</a> programObj location params</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(programObj,location)</tt>.
--   
--   This command is an alias for <a>glGetUniformiv</a>.
glGetUniformivARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glLinkProgramARB</a> programObj</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   This command is an alias for <a>glLinkProgram</a>.
glLinkProgramARB :: MonadIO m => GLhandleARB -> m ()

-- | Usage: <tt><a>glShaderSourceARB</a> shaderObj count string length</tt>
--   
--   The parameter <tt>shaderObj</tt> is a <tt>handleARB</tt>.
--   
--   The length of <tt>string</tt> should be <tt>count</tt>.
--   
--   The length of <tt>length</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glShaderSource</a>.
glShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform1fARB</a> location v0</tt>
--   
--   This command is an alias for <a>glUniform1f</a>.
glUniform1fARB :: MonadIO m => GLint -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform1fvARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
--   
--   This command is an alias for <a>glUniform1fv</a>.
glUniform1fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform1iARB</a> location v0</tt>
--   
--   This command is an alias for <a>glUniform1i</a>.
glUniform1iARB :: MonadIO m => GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform1ivARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
--   
--   This command is an alias for <a>glUniform1iv</a>.
glUniform1ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform2fARB</a> location v0 v1</tt>
--   
--   This command is an alias for <a>glUniform2f</a>.
glUniform2fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform2fvARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glUniform2fv</a>.
glUniform2fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform2iARB</a> location v0 v1</tt>
--   
--   This command is an alias for <a>glUniform2i</a>.
glUniform2iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform2ivARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
--   
--   This command is an alias for <a>glUniform2iv</a>.
glUniform2ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform3fARB</a> location v0 v1 v2</tt>
--   
--   This command is an alias for <a>glUniform3f</a>.
glUniform3fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform3fvARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glUniform3fv</a>.
glUniform3fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform3iARB</a> location v0 v1 v2</tt>
--   
--   This command is an alias for <a>glUniform3i</a>.
glUniform3iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform3ivARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
--   
--   This command is an alias for <a>glUniform3iv</a>.
glUniform3ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniform4fARB</a> location v0 v1 v2 v3</tt>
--   
--   This command is an alias for <a>glUniform4f</a>.
glUniform4fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glUniform4fvARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glUniform4fv</a>.
glUniform4fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniform4iARB</a> location v0 v1 v2 v3</tt>
--   
--   This command is an alias for <a>glUniform4i</a>.
glUniform4iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glUniform4ivARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glUniform4iv</a>.
glUniform4ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glUniformMatrix2fvARB</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
--   
--   This command is an alias for <a>glUniformMatrix2fv</a>.
glUniformMatrix2fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix3fvARB</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*9</tt>.
--   
--   This command is an alias for <a>glUniformMatrix3fv</a>.
glUniformMatrix3fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUniformMatrix4fvARB</a> location count transpose
--   value</tt>
--   
--   The parameter <tt>transpose</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>value</tt> should be <tt>count*16</tt>.
--   
--   This command is an alias for <a>glUniformMatrix4fv</a>.
glUniformMatrix4fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glUseProgramObjectARB</a> programObj</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   This command is an alias for <a>glUseProgram</a>.
glUseProgramObjectARB :: MonadIO m => GLhandleARB -> m ()

-- | Usage: <tt><a>glValidateProgramARB</a> programObj</tt>
--   
--   The parameter <tt>programObj</tt> is a <tt>handleARB</tt>.
--   
--   This command is an alias for <a>glValidateProgram</a>.
glValidateProgramARB :: MonadIO m => GLhandleARB -> m ()

module Graphics.GL.Ext.ARB.SampleShading

-- | Checks that the <a>GL_ARB_sample_shading</a> extension is available.
gl_ARB_sample_shading :: Bool

-- | Usage: <tt><a>glMinSampleShadingARB</a> value</tt>
--   
--   The parameter <tt>value</tt> is a <tt>ColorF</tt>.
--   
--   This command is an alias for <a>glMinSampleShading</a>.
glMinSampleShadingARB :: MonadIO m => GLfloat -> m ()

module Graphics.GL.Ext.ARB.SampleLocations

-- | Checks that the <a>GL_ARB_sample_locations</a> extension is available.
gl_ARB_sample_locations :: Bool

-- | Usage: <tt><a>glEvaluateDepthValuesARB</a></tt>
glEvaluateDepthValuesARB :: MonadIO m => m ()

-- | Usage: <tt><a>glFramebufferSampleLocationsfvARB</a> target start count
--   v</tt>
glFramebufferSampleLocationsfvARB :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNamedFramebufferSampleLocationsfvARB</a> framebuffer
--   start count v</tt>
glNamedFramebufferSampleLocationsfvARB :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.ARB.Robustness

-- | Checks that the <a>GL_ARB_robustness</a> extension is available.
gl_ARB_robustness :: Bool

-- | Usage: <tt><a>glGetGraphicsResetStatusARB</a></tt>
glGetGraphicsResetStatusARB :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetnColorTableARB</a> target format type bufSize
--   table</tt>
--   
--   The length of <tt>table</tt> should be <tt>bufSize</tt>.
glGetnColorTableARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnCompressedTexImageARB</a> target lod bufSize
--   img</tt>
--   
--   The length of <tt>img</tt> should be <tt>bufSize</tt>.
glGetnCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnConvolutionFilterARB</a> target format type
--   bufSize image</tt>
--   
--   The length of <tt>image</tt> should be <tt>bufSize</tt>.
glGetnConvolutionFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnHistogramARB</a> target reset format type bufSize
--   values</tt>
--   
--   The parameter <tt>reset</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glGetnHistogramARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnMapdvARB</a> target query bufSize v</tt>
--   
--   The length of <tt>v</tt> should be <tt>bufSize</tt>.
glGetnMapdvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetnMapfvARB</a> target query bufSize v</tt>
--   
--   The length of <tt>v</tt> should be <tt>bufSize</tt>.
glGetnMapfvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnMapivARB</a> target query bufSize v</tt>
--   
--   The length of <tt>v</tt> should be <tt>bufSize</tt>.
glGetnMapivARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetnMinmaxARB</a> target reset format type bufSize
--   values</tt>
--   
--   The parameter <tt>reset</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glGetnMinmaxARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnPixelMapfvARB</a> map bufSize values</tt>
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glGetnPixelMapfvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnPixelMapuivARB</a> map bufSize values</tt>
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glGetnPixelMapuivARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetnPixelMapusvARB</a> map bufSize values</tt>
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
glGetnPixelMapusvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glGetnPolygonStippleARB</a> bufSize pattern</tt>
--   
--   The length of <tt>pattern</tt> should be <tt>bufSize</tt>.
glGetnPolygonStippleARB :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glGetnSeparableFilterARB</a> target format type
--   rowBufSize row columnBufSize column span</tt>
--   
--   The length of <tt>row</tt> should be <tt>rowBufSize</tt>.
--   
--   The length of <tt>column</tt> should be <tt>columnBufSize</tt>.
--   
--   The length of <tt>span</tt> should be <tt>0</tt>.
glGetnSeparableFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnTexImageARB</a> target level format type bufSize
--   img</tt>
--   
--   The length of <tt>img</tt> should be <tt>bufSize</tt>.
glGetnTexImageARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnUniformdvARB</a> program location bufSize
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetnUniformdvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetnUniformfvARB</a> program location bufSize
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetnUniformfvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnUniformivARB</a> program location bufSize
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetnUniformivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetnUniformuivARB</a> program location bufSize
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>bufSize</tt>.
glGetnUniformuivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glReadnPixelsARB</a> x y width height format type
--   bufSize data</tt>
--   
--   The length of <tt>data</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glReadnPixels</a>.
glReadnPixelsARB :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.PointParameters

-- | Checks that the <a>GL_ARB_point_parameters</a> extension is available.
gl_ARB_point_parameters :: Bool

-- | Usage: <tt><a>glPointParameterfARB</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
--   
--   This command is an alias for <a>glPointParameterf</a>.
glPointParameterfARB :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPointParameterfvARB</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glPointParameterfv</a>.
glPointParameterfvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.ARB.ParallelShaderCompile

-- | Checks that the <a>GL_ARB_parallel_shader_compile</a> extension is
--   available.
gl_ARB_parallel_shader_compile :: Bool

-- | Usage: <tt><a>glMaxShaderCompilerThreadsARB</a> count</tt>
glMaxShaderCompilerThreadsARB :: MonadIO m => GLuint -> m ()

module Graphics.GL.Ext.ARB.OcclusionQuery

-- | Checks that the <a>GL_ARB_occlusion_query</a> extension is available.
gl_ARB_occlusion_query :: Bool

-- | Usage: <tt><a>glBeginQueryARB</a> target id</tt>
--   
--   This command is an alias for <a>glBeginQuery</a>.
glBeginQueryARB :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDeleteQueriesARB</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDeleteQueries</a>.
glDeleteQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glEndQueryARB</a> target</tt>
--   
--   This command is an alias for <a>glEndQuery</a>.
glEndQueryARB :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glGenQueriesARB</a> n ids</tt>
--   
--   The length of <tt>ids</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glGenQueries</a>.
glGenQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetQueryObjectivARB</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetQueryObjectiv</a>.
glGetQueryObjectivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetQueryObjectuivARB</a> id pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetQueryObjectuiv</a>.
glGetQueryObjectuivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetQueryivARB</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
--   
--   This command is an alias for <a>glGetQueryiv</a>.
glGetQueryivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsQueryARB</a> id</tt>
--   
--   This command is an alias for <a>glIsQuery</a>.
glIsQueryARB :: MonadIO m => GLuint -> m GLboolean

module Graphics.GL.Ext.ARB.Multitexture

-- | Checks that the <a>GL_ARB_multitexture</a> extension is available.
gl_ARB_multitexture :: Bool

-- | Usage: <tt><a>glActiveTextureARB</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
--   
--   This command is an alias for <a>glActiveTexture</a>.
glActiveTextureARB :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glClientActiveTextureARB</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
--   
--   This command is an alias for <a>glClientActiveTexture</a>.
glClientActiveTextureARB :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMultiTexCoord1dARB</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord1d</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1dARB :: MonadIO m => GLenum -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord1dvARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord1dv</a>.
glMultiTexCoord1dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord1fARB</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord1f</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1fARB :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord1fvARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord1fv</a>.
glMultiTexCoord1fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord1iARB</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord1i</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1iARB :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord1ivARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord1iv</a>.
glMultiTexCoord1ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord1sARB</a> target s</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord1s</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1sARB :: MonadIO m => GLenum -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord1svARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>1</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord1sv</a>.
glMultiTexCoord1svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord2dARB</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord2d</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord2dvARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord2dv</a>.
glMultiTexCoord2dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord2fARB</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord2f</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord2fvARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord2fv</a>.
glMultiTexCoord2fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord2iARB</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord2i</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2iARB :: MonadIO m => GLenum -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord2ivARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord2iv</a>.
glMultiTexCoord2ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord2sARB</a> target s t</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord2s</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord2svARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>2</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord2sv</a>.
glMultiTexCoord2svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord3dARB</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord3d</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord3dvARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord3dv</a>.
glMultiTexCoord3dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord3fARB</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord3f</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord3fvARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord3fv</a>.
glMultiTexCoord3fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord3iARB</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord3i</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord3ivARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord3iv</a>.
glMultiTexCoord3ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord3sARB</a> target s t r</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord3s</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord3svARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>3</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord3sv</a>.
glMultiTexCoord3svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord4dARB</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordD</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord4d</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord4dvARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord4dv</a>.
glMultiTexCoord4dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMultiTexCoord4fARB</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordF</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord4f</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord4fvARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord4iARB</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordI</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordI</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord4i</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord4ivARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordI</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord4iv</a>.
glMultiTexCoord4ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glMultiTexCoord4sARB</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordS</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordS</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord4s</a>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4sv</a>.
glMultiTexCoord4sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()

-- | Usage: <tt><a>glMultiTexCoord4svARB</a> target v</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>v</tt> is a <tt>CoordS</tt>.
--   
--   The length of <tt>v</tt> should be <tt>4</tt>.
--   
--   This command is an alias for <a>glMultiTexCoord4sv</a>.
glMultiTexCoord4svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()

module Graphics.GL.Ext.ARB.Multisample

-- | Checks that the <a>GL_ARB_multisample</a> extension is available.
gl_ARB_multisample :: Bool

-- | Usage: <tt><a>glSampleCoverageARB</a> value invert</tt>
--   
--   The parameter <tt>invert</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   This command is an alias for <a>glSampleCoverage</a>.
glSampleCoverageARB :: MonadIO m => GLfloat -> GLboolean -> m ()

module Graphics.GL.Ext.ARB.MatrixPalette

-- | Checks that the <a>GL_ARB_matrix_palette</a> extension is available.
gl_ARB_matrix_palette :: Bool

-- | Usage: <tt><a>glCurrentPaletteMatrixARB</a> index</tt>
glCurrentPaletteMatrixARB :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glMatrixIndexPointerARB</a> size type stride
--   pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>MatrixIndexPointerTypeARB</tt>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glMatrixIndexPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glMatrixIndexubvARB</a> size indices</tt>
--   
--   The length of <tt>indices</tt> should be <tt>size</tt>.
glMatrixIndexubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glMatrixIndexuivARB</a> size indices</tt>
--   
--   The length of <tt>indices</tt> should be <tt>size</tt>.
glMatrixIndexuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glMatrixIndexusvARB</a> size indices</tt>
--   
--   The length of <tt>indices</tt> should be <tt>size</tt>.
glMatrixIndexusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()

module Graphics.GL.Ext.ARB.InstancedArrays

-- | Checks that the <a>GL_ARB_instanced_arrays</a> extension is available.
gl_ARB_instanced_arrays :: Bool

-- | Usage: <tt><a>glVertexAttribDivisorARB</a> index divisor</tt>
--   
--   This command is an alias for <a>glVertexAttribDivisor</a>.
glVertexAttribDivisorARB :: MonadIO m => GLuint -> GLuint -> m ()

module Graphics.GL.Ext.ARB.IndirectParameters

-- | Checks that the <a>GL_ARB_indirect_parameters</a> extension is
--   available.
gl_ARB_indirect_parameters :: Bool

-- | Usage: <tt><a>glMultiDrawArraysIndirectCountARB</a> mode indirect
--   drawcount maxdrawcount stride</tt>
glMultiDrawArraysIndirectCountARB :: MonadIO m => GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawElementsIndirectCountARB</a> mode type
--   indirect drawcount maxdrawcount stride</tt>
glMultiDrawElementsIndirectCountARB :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.ARB.Imaging

-- | Checks that the GL_ARB_imaging extension is available.
gl_ARB_imaging :: Bool

-- | Usage: <tt><a>glBlendColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml</a>
glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glBlendEquation</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>BlendEquationMode</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml</a>
glBlendEquation :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glColorSubTable</a> target start count format type
--   data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>data</tt> should be
--   <tt>COMPSIZE(format,type,count)</tt>.
glColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glColorTable</a> target internalformat width format type
--   table</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>table</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
glColorTable :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glColorTableParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ColorTableParameterPName</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColorTableParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ColorTableParameterPName</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glConvolutionFilter1D</a> target internalformat width
--   format type image</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>image</tt> should be
--   <tt>COMPSIZE(format,type,width)</tt>.
glConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glConvolutionFilter2D</a> target internalformat width
--   height format type image</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>image</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
glConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glConvolutionParameterf</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameter</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
glConvolutionParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glConvolutionParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameter</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glConvolutionParameteri</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameter</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
glConvolutionParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glConvolutionParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>ConvolutionParameter</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glCopyColorSubTable</a> target start x y width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyColorTable</a> target internalformat x y
--   width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyColorTable :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyConvolutionFilter1D</a> target internalformat x y
--   width</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyConvolutionFilter2D</a> target internalformat x y
--   width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
glCopyConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glGetColorTable</a> target format type table</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>table</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetColorTableParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetColorTableParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetColorTableParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ColorTableTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetColorTableParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetConvolutionFilter</a> target format type image</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>image</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetConvolutionParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetConvolutionParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetConvolutionParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ConvolutionTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a
--   <tt>GetConvolutionParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetHistogram</a> target reset format type values</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTarget</tt>.
--   
--   The parameter <tt>reset</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>values</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetHistogramParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetHistogramParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetHistogramParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetHistogramParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetHistogramParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetHistogramParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetMinmax</a> target reset format type values</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTarget</tt>.
--   
--   The parameter <tt>reset</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>values</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetMinmaxParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetMinmaxParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMinmaxParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMinmaxParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTarget</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetMinmaxParameterPName</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMinmaxParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSeparableFilter</a> target format type row column
--   span</tt>
--   
--   The parameter <tt>target</tt> is a <tt>SeparableTarget</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>row</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
--   
--   The length of <tt>column</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
--   
--   The length of <tt>span</tt> should be
--   <tt>COMPSIZE(target,format,type)</tt>.
glGetSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()

-- | Usage: <tt><a>glHistogram</a> target width internalformat sink</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>sink</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glHistogram :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()

-- | Usage: <tt><a>glMinmax</a> target internalformat sink</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>sink</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glMinmax :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()

-- | Usage: <tt><a>glResetHistogram</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HistogramTarget</tt>.
glResetHistogram :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glResetMinmax</a> target</tt>
--   
--   The parameter <tt>target</tt> is a <tt>MinmaxTarget</tt>.
glResetMinmax :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glSeparableFilter2D</a> target internalformat width
--   height format type row column</tt>
--   
--   The parameter <tt>target</tt> is a <tt>SeparableTarget</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>row</tt> should be
--   <tt>COMPSIZE(target,format,type,width)</tt>.
--   
--   The length of <tt>column</tt> should be
--   <tt>COMPSIZE(target,format,type,height)</tt>.
glSeparableFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()

module Graphics.GL.Ext.ARB.GpuShaderInt64

-- | Checks that the <a>GL_ARB_gpu_shader_int64</a> extension is available.
gl_ARB_gpu_shader_int64 :: Bool

-- | Usage: <tt><a>glGetUniformi64vARB</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformi64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetUniformui64vARB</a> program location params</tt>
--   
--   The length of <tt>params</tt> should be
--   <tt>COMPSIZE(program,location)</tt>.
glGetUniformui64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glGetnUniformi64vARB</a> program location bufSize
--   params</tt>
glGetnUniformi64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetnUniformui64vARB</a> program location bufSize
--   params</tt>
glGetnUniformui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniform1i64ARB</a> program location x</tt>
glProgramUniform1i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> m ()

-- | Usage: <tt><a>glProgramUniform1i64vARB</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glProgramUniform1ui64ARB</a> program location x</tt>
glProgramUniform1ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniform1ui64vARB</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glProgramUniform1ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniform2i64ARB</a> program location x y</tt>
glProgramUniform2i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> m ()

-- | Usage: <tt><a>glProgramUniform2i64vARB</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glProgramUniform2ui64ARB</a> program location x y</tt>
glProgramUniform2ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniform2ui64vARB</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glProgramUniform2ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniform3i64ARB</a> program location x y z</tt>
glProgramUniform3i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()

-- | Usage: <tt><a>glProgramUniform3i64vARB</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glProgramUniform3ui64ARB</a> program location x y z</tt>
glProgramUniform3ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniform3ui64vARB</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glProgramUniform3ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniform4i64ARB</a> program location x y z
--   w</tt>
glProgramUniform4i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()

-- | Usage: <tt><a>glProgramUniform4i64vARB</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glProgramUniform4ui64ARB</a> program location x y z
--   w</tt>
glProgramUniform4ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniform4ui64vARB</a> program location count
--   value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glProgramUniform4ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glUniform1i64ARB</a> location x</tt>
glUniform1i64ARB :: MonadIO m => GLint -> GLint64 -> m ()

-- | Usage: <tt><a>glUniform1i64vARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glUniform1ui64ARB</a> location x</tt>
glUniform1ui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()

-- | Usage: <tt><a>glUniform1ui64vARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*1</tt>.
glUniform1ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glUniform2i64ARB</a> location x y</tt>
glUniform2i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> m ()

-- | Usage: <tt><a>glUniform2i64vARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glUniform2ui64ARB</a> location x y</tt>
glUniform2ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> m ()

-- | Usage: <tt><a>glUniform2ui64vARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*2</tt>.
glUniform2ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glUniform3i64ARB</a> location x y z</tt>
glUniform3i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> m ()

-- | Usage: <tt><a>glUniform3i64vARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glUniform3ui64ARB</a> location x y z</tt>
glUniform3ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()

-- | Usage: <tt><a>glUniform3ui64vARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*3</tt>.
glUniform3ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glUniform4i64ARB</a> location x y z w</tt>
glUniform4i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()

-- | Usage: <tt><a>glUniform4i64vARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glUniform4ui64ARB</a> location x y z w</tt>
glUniform4ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()

-- | Usage: <tt><a>glUniform4ui64vARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count*4</tt>.
glUniform4ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()

module Graphics.GL.Ext.ARB.GeometryShader4

-- | Checks that the <a>GL_ARB_geometry_shader4</a> extension is available.
gl_ARB_geometry_shader4 :: Bool

-- | Usage: <tt><a>glFramebufferTextureARB</a> target attachment texture
--   level</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glFramebufferTexture</a>.
glFramebufferTextureARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glFramebufferTextureFaceARB</a> target attachment
--   texture level face</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>face</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
glFramebufferTextureFaceARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()

-- | Usage: <tt><a>glFramebufferTextureLayerARB</a> target attachment
--   texture level layer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>FramebufferTarget</tt>.
--   
--   The parameter <tt>attachment</tt> is a <tt>FramebufferAttachment</tt>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>layer</tt> is a <tt>CheckedInt32</tt>.
--   
--   This command is an alias for <a>glFramebufferTextureLayer</a>.
glFramebufferTextureLayerARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glProgramParameteriARB</a> program pname value</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>ProgramParameterPName</tt>.
--   
--   This command is an alias for <a>glProgramParameteri</a>.
glProgramParameteriARB :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

module Graphics.GL.Ext.ARB.ES32Compatibility

-- | Checks that the <a>GL_ARB_ES3_2_compatibility</a> extension is
--   available.
gl_ARB_ES3_2_compatibility :: Bool

-- | Usage: <tt><a>glPrimitiveBoundingBoxARB</a> minX minY minZ minW maxX
--   maxY maxZ maxW</tt>
--   
--   This command is an alias for <a>glPrimitiveBoundingBox</a>.
glPrimitiveBoundingBoxARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

module Graphics.GL.Ext.ARB.DrawInstanced

-- | Checks that the <a>GL_ARB_draw_instanced</a> extension is available.
gl_ARB_draw_instanced :: Bool

-- | Usage: <tt><a>glDrawArraysInstancedARB</a> mode first count
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedARB :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedARB</a> mode count type indices
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedARB :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()

module Graphics.GL.Ext.ARB.DrawBuffersBlend

-- | Checks that the <a>GL_ARB_draw_buffers_blend</a> extension is
--   available.
gl_ARB_draw_buffers_blend :: Bool

-- | Usage: <tt><a>glBlendEquationSeparateiARB</a> buf modeRGB
--   modeAlpha</tt>
--   
--   This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendEquationiARB</a> buf mode</tt>
--   
--   This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationiARB :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparateiARB</a> buf srcRGB dstRGB srcAlpha
--   dstAlpha</tt>
--   
--   This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFunciARB</a> buf src dst</tt>
--   
--   This command is an alias for <a>glBlendFunci</a>.
glBlendFunciARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

module Graphics.GL.Ext.ARB.DrawBuffers

-- | Checks that the <a>GL_ARB_draw_buffers</a> extension is available.
gl_ARB_draw_buffers :: Bool

-- | Usage: <tt><a>glDrawBuffersARB</a> n bufs</tt>
--   
--   The parameter <tt>bufs</tt> is a <tt>DrawBufferModeATI</tt>.
--   
--   The length of <tt>bufs</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDrawBuffers</a>.
glDrawBuffersARB :: MonadIO m => GLsizei -> Ptr GLenum -> m ()

module Graphics.GL.Ext.ARB.DebugOutput

-- | Checks that the <a>GL_ARB_debug_output</a> extension is available.
gl_ARB_debug_output :: Bool

-- | Usage: <tt><a>glDebugMessageCallbackARB</a> callback userParam</tt>
--   
--   The length of <tt>userParam</tt> should be
--   <tt>COMPSIZE(callback)</tt>.
--   
--   This command is an alias for <a>glDebugMessageCallback</a>.
glDebugMessageCallbackARB :: MonadIO m => GLDEBUGPROCARB -> Ptr () -> m ()

-- | Usage: <tt><a>glDebugMessageControlARB</a> source type severity count
--   ids enabled</tt>
--   
--   The parameter <tt>enabled</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   This command is an alias for <a>glDebugMessageControl</a>.
glDebugMessageControlARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Usage: <tt><a>glDebugMessageInsertARB</a> source type id severity
--   length buf</tt>
--   
--   The length of <tt>buf</tt> should be <tt>length</tt>.
--   
--   This command is an alias for <a>glDebugMessageInsert</a>.
glDebugMessageInsertARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetDebugMessageLogARB</a> count bufSize sources types
--   ids severities lengths messageLog</tt>
--   
--   The length of <tt>sources</tt> should be <tt>count</tt>.
--   
--   The length of <tt>types</tt> should be <tt>count</tt>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   The length of <tt>severities</tt> should be <tt>count</tt>.
--   
--   The length of <tt>lengths</tt> should be <tt>count</tt>.
--   
--   The length of <tt>messageLog</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glGetDebugMessageLog</a>.
glGetDebugMessageLogARB :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

module Graphics.GL.Ext.ARB.ComputeVariableGroupSize

-- | Checks that the <a>GL_ARB_compute_variable_group_size</a> extension is
--   available.
gl_ARB_compute_variable_group_size :: Bool

-- | Usage: <tt><a>glDispatchComputeGroupSizeARB</a> num_groups_x
--   num_groups_y num_groups_z group_size_x group_size_y group_size_z</tt>
glDispatchComputeGroupSizeARB :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()

module Graphics.GL.Ext.ARB.ColorBufferFloat

-- | Checks that the <a>GL_ARB_color_buffer_float</a> extension is
--   available.
gl_ARB_color_buffer_float :: Bool

-- | Usage: <tt><a>glClampColorARB</a> target clamp</tt>
--   
--   The parameter <tt>target</tt> is a <tt>ClampColorTargetARB</tt>.
--   
--   The parameter <tt>clamp</tt> is a <tt>ClampColorModeARB</tt>.
--   
--   This command is an alias for <a>glClampColor</a>.
glClampColorARB :: MonadIO m => GLenum -> GLenum -> m ()

module Graphics.GL.Ext.ARB.ClEvent

-- | Checks that the <a>GL_ARB_cl_event</a> extension is available.
gl_ARB_cl_event :: Bool

-- | Usage: <tt><a>glCreateSyncFromCLeventARB</a> context event flags</tt>
--   
--   The parameter <tt>context</tt> is a <tt>cl_context</tt>.
--   
--   The parameter <tt>event</tt> is a <tt>cl_event</tt>.
glCreateSyncFromCLeventARB :: MonadIO m => Ptr () -> Ptr () -> GLbitfield -> m GLsync

module Graphics.GL.Ext.ARB.BindlessTexture

-- | Checks that the <a>GL_ARB_bindless_texture</a> extension is available.
gl_ARB_bindless_texture :: Bool

-- | Usage: <tt><a>glGetImageHandleARB</a> texture level layered layer
--   format</tt>
glGetImageHandleARB :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64

-- | Usage: <tt><a>glGetTextureHandleARB</a> texture</tt>
glGetTextureHandleARB :: MonadIO m => GLuint -> m GLuint64

-- | Usage: <tt><a>glGetTextureSamplerHandleARB</a> texture sampler</tt>
glGetTextureSamplerHandleARB :: MonadIO m => GLuint -> GLuint -> m GLuint64

-- | Usage: <tt><a>glGetVertexAttribLui64vARB</a> index pname params</tt>
glGetVertexAttribLui64vARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()

-- | Usage: <tt><a>glIsImageHandleResidentARB</a> handle</tt>
glIsImageHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean

-- | Usage: <tt><a>glIsTextureHandleResidentARB</a> handle</tt>
glIsTextureHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean

-- | Usage: <tt><a>glMakeImageHandleNonResidentARB</a> handle</tt>
glMakeImageHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()

-- | Usage: <tt><a>glMakeImageHandleResidentARB</a> handle access</tt>
glMakeImageHandleResidentARB :: MonadIO m => GLuint64 -> GLenum -> m ()

-- | Usage: <tt><a>glMakeTextureHandleNonResidentARB</a> handle</tt>
glMakeTextureHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()

-- | Usage: <tt><a>glMakeTextureHandleResidentARB</a> handle</tt>
glMakeTextureHandleResidentARB :: MonadIO m => GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniformHandleui64ARB</a> program location
--   value</tt>
glProgramUniformHandleui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()

-- | Usage: <tt><a>glProgramUniformHandleui64vARB</a> program location
--   count values</tt>
--   
--   The length of <tt>values</tt> should be <tt>count</tt>.
glProgramUniformHandleui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glUniformHandleui64ARB</a> location value</tt>
glUniformHandleui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()

-- | Usage: <tt><a>glUniformHandleui64vARB</a> location count value</tt>
--   
--   The length of <tt>value</tt> should be <tt>count</tt>.
glUniformHandleui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()

-- | Usage: <tt><a>glVertexAttribL1ui64ARB</a> index x</tt>
glVertexAttribL1ui64ARB :: MonadIO m => GLuint -> GLuint64EXT -> m ()

-- | Usage: <tt><a>glVertexAttribL1ui64vARB</a> index v</tt>
glVertexAttribL1ui64vARB :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()

module Graphics.GL.Ext.ARB

module Graphics.GL.Ext.APPLE.VertexProgramEvaluators

-- | Checks that the <a>GL_APPLE_vertex_program_evaluators</a> extension is
--   available.
gl_APPLE_vertex_program_evaluators :: Bool

-- | Usage: <tt><a>glDisableVertexAttribAPPLE</a> index pname</tt>
glDisableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glEnableVertexAttribAPPLE</a> index pname</tt>
glEnableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glIsVertexAttribEnabledAPPLE</a> index pname</tt>
glIsVertexAttribEnabledAPPLE :: MonadIO m => GLuint -> GLenum -> m GLboolean

-- | Usage: <tt><a>glMapVertexAttrib1dAPPLE</a> index size u1 u2 stride
--   order points</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>order</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(size,stride,order)</tt>.
glMapVertexAttrib1dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMapVertexAttrib1fAPPLE</a> index size u1 u2 stride
--   order points</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>order</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(size,stride,order)</tt>.
glMapVertexAttrib1fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMapVertexAttrib2dAPPLE</a> index size u1 u2 ustride
--   uorder v1 v2 vstride vorder points</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordD</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordD</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(size,ustride,uorder,vstride,vorder)</tt>.
glMapVertexAttrib2dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glMapVertexAttrib2fAPPLE</a> index size u1 u2 ustride
--   uorder v1 v2 vstride vorder points</tt>
--   
--   The parameter <tt>u1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>u2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>uorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>v1</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>v2</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>vorder</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>points</tt> is a <tt>CoordF</tt>.
--   
--   The length of <tt>points</tt> should be
--   <tt>COMPSIZE(size,ustride,uorder,vstride,vorder)</tt>.
glMapVertexAttrib2fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.APPLE.VertexArrayRange

-- | Checks that the <a>GL_APPLE_vertex_array_range</a> extension is
--   available.
gl_APPLE_vertex_array_range :: Bool

-- | Usage: <tt><a>glFlushVertexArrayRangeAPPLE</a> length pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>length</tt>.
glFlushVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glVertexArrayParameteriAPPLE</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>VertexArrayPNameAPPLE</tt>.
glVertexArrayParameteriAPPLE :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glVertexArrayRangeAPPLE</a> length pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>length</tt>.
glVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.APPLE.VertexArrayObject

-- | Checks that the <a>GL_APPLE_vertex_array_object</a> extension is
--   available.
gl_APPLE_vertex_array_object :: Bool

-- | Usage: <tt><a>glBindVertexArrayAPPLE</a> array</tt>
glBindVertexArrayAPPLE :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeleteVertexArraysAPPLE</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glDeleteVertexArrays</a>.
glDeleteVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenVertexArraysAPPLE</a> n arrays</tt>
--   
--   The length of <tt>arrays</tt> should be <tt>n</tt>.
--   
--   This command is an alias for <a>glGenVertexArrays</a>.
glGenVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsVertexArrayAPPLE</a> array</tt>
--   
--   This command is an alias for <a>glIsVertexArray</a>.
glIsVertexArrayAPPLE :: MonadIO m => GLuint -> m GLboolean

module Graphics.GL.Ext.APPLE.TextureRange

-- | Checks that the <a>GL_APPLE_texture_range</a> extension is available.
gl_APPLE_texture_range :: Bool

-- | Usage: <tt><a>glGetTexParameterPointervAPPLE</a> target pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
glGetTexParameterPointervAPPLE :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glTextureRangeAPPLE</a> target length pointer</tt>
--   
--   The length of <tt>pointer</tt> should be <tt>length</tt>.
glTextureRangeAPPLE :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

module Graphics.GL.Ext.APPLE.Sync

-- | Checks that the <a>GL_APPLE_sync</a> extension is available.
gl_APPLE_sync :: Bool

-- | Usage: <tt><a>glClientWaitSyncAPPLE</a> sync flags timeout</tt>
--   
--   This command is an alias for <a>glClientWaitSync</a>.
glClientWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum

-- | Usage: <tt><a>glDeleteSyncAPPLE</a> sync</tt>
--   
--   This command is an alias for <a>glDeleteSync</a>.
glDeleteSyncAPPLE :: MonadIO m => GLsync -> m ()

-- | Usage: <tt><a>glFenceSyncAPPLE</a> condition flags</tt>
--   
--   This command is an alias for <a>glFenceSync</a>.
glFenceSyncAPPLE :: MonadIO m => GLenum -> GLbitfield -> m GLsync

-- | Usage: <tt><a>glGetInteger64vAPPLE</a> pname params</tt>
--   
--   This command is an alias for <a>glGetInteger64v</a>.
glGetInteger64vAPPLE :: MonadIO m => GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetSyncivAPPLE</a> sync pname bufSize length
--   values</tt>
--   
--   The length of <tt>values</tt> should be <tt>bufSize</tt>.
--   
--   This command is an alias for <a>glGetSynciv</a>.
glGetSyncivAPPLE :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glIsSyncAPPLE</a> sync</tt>
--   
--   This command is an alias for <a>glIsSync</a>.
glIsSyncAPPLE :: MonadIO m => GLsync -> m GLboolean

-- | Usage: <tt><a>glWaitSyncAPPLE</a> sync flags timeout</tt>
--   
--   This command is an alias for <a>glWaitSync</a>.
glWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()

module Graphics.GL.Ext.APPLE.ObjectPurgeable

-- | Checks that the <a>GL_APPLE_object_purgeable</a> extension is
--   available.
gl_APPLE_object_purgeable :: Bool

-- | Usage: <tt><a>glGetObjectParameterivAPPLE</a> objectType name pname
--   params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetObjectParameterivAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glObjectPurgeableAPPLE</a> objectType name option</tt>
glObjectPurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum

-- | Usage: <tt><a>glObjectUnpurgeableAPPLE</a> objectType name option</tt>
glObjectUnpurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum

module Graphics.GL.Ext.APPLE.FramebufferMultisample

-- | Checks that the <a>GL_APPLE_framebuffer_multisample</a> extension is
--   available.
gl_APPLE_framebuffer_multisample :: Bool

-- | Usage: <tt><a>glRenderbufferStorageMultisampleAPPLE</a> target samples
--   internalformat width height</tt>
glRenderbufferStorageMultisampleAPPLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glResolveMultisampleFramebufferAPPLE</a></tt>
glResolveMultisampleFramebufferAPPLE :: MonadIO m => m ()

module Graphics.GL.Ext.APPLE.FlushBufferRange

-- | Checks that the <a>GL_APPLE_flush_buffer_range</a> extension is
--   available.
gl_APPLE_flush_buffer_range :: Bool

-- | Usage: <tt><a>glBufferParameteriAPPLE</a> target pname param</tt>
glBufferParameteriAPPLE :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glFlushMappedBufferRangeAPPLE</a> target offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   This command is an alias for <a>glFlushMappedBufferRange</a>.
glFlushMappedBufferRangeAPPLE :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()

module Graphics.GL.Ext.APPLE.Fence

-- | Checks that the <a>GL_APPLE_fence</a> extension is available.
gl_APPLE_fence :: Bool

-- | Usage: <tt><a>glDeleteFencesAPPLE</a> n fences</tt>
--   
--   The parameter <tt>fences</tt> is a <tt>FenceNV</tt>.
--   
--   The length of <tt>fences</tt> should be <tt>n</tt>.
glDeleteFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glFinishFenceAPPLE</a> fence</tt>
--   
--   The parameter <tt>fence</tt> is a <tt>FenceNV</tt>.
glFinishFenceAPPLE :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glFinishObjectAPPLE</a> object name</tt>
--   
--   The parameter <tt>object</tt> is a <tt>ObjectTypeAPPLE</tt>.
glFinishObjectAPPLE :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glGenFencesAPPLE</a> n fences</tt>
--   
--   The parameter <tt>fences</tt> is a <tt>FenceNV</tt>.
--   
--   The length of <tt>fences</tt> should be <tt>n</tt>.
glGenFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsFenceAPPLE</a> fence</tt>
--   
--   The parameter <tt>fence</tt> is a <tt>FenceNV</tt>.
glIsFenceAPPLE :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glSetFenceAPPLE</a> fence</tt>
--   
--   The parameter <tt>fence</tt> is a <tt>FenceNV</tt>.
glSetFenceAPPLE :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glTestFenceAPPLE</a> fence</tt>
--   
--   The parameter <tt>fence</tt> is a <tt>FenceNV</tt>.
glTestFenceAPPLE :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glTestObjectAPPLE</a> object name</tt>
--   
--   The parameter <tt>object</tt> is a <tt>ObjectTypeAPPLE</tt>.
glTestObjectAPPLE :: MonadIO m => GLenum -> GLuint -> m GLboolean

module Graphics.GL.Ext.APPLE.ElementArray

-- | Checks that the <a>GL_APPLE_element_array</a> extension is available.
gl_APPLE_element_array :: Bool

-- | Usage: <tt><a>glDrawElementArrayAPPLE</a> mode first count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
glDrawElementArrayAPPLE :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawRangeElementArrayAPPLE</a> mode start end first
--   count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
glDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glElementPointerAPPLE</a> type pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ElementPointerTypeATI</tt>.
--   
--   The length of <tt>pointer</tt> should be <tt>COMPSIZE(type)</tt>.
glElementPointerAPPLE :: MonadIO m => GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glMultiDrawElementArrayAPPLE</a> mode first count
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>first</tt> should be <tt>primcount</tt>.
--   
--   The length of <tt>count</tt> should be <tt>primcount</tt>.
glMultiDrawElementArrayAPPLE :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawRangeElementArrayAPPLE</a> mode start end
--   first count primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>first</tt> should be <tt>primcount</tt>.
--   
--   The length of <tt>count</tt> should be <tt>primcount</tt>.
glMultiDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.APPLE.CopyTextureLevels

-- | Checks that the <a>GL_APPLE_copy_texture_levels</a> extension is
--   available.
gl_APPLE_copy_texture_levels :: Bool

-- | Usage: <tt><a>glCopyTextureLevelsAPPLE</a> destinationTexture
--   sourceTexture sourceBaseLevel sourceLevelCount</tt>
glCopyTextureLevelsAPPLE :: MonadIO m => GLuint -> GLuint -> GLint -> GLsizei -> m ()

module Graphics.GL.Ext.APPLE

module Graphics.GL.Ext.ANGLE.TranslatedShaderSource

-- | Checks that the <a>GL_ANGLE_translated_shader_source</a> extension is
--   available.
gl_ANGLE_translated_shader_source :: Bool

-- | Usage: <tt><a>glGetTranslatedShaderSourceANGLE</a> shader bufsize
--   length source</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
glGetTranslatedShaderSourceANGLE :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

module Graphics.GL.Ext.ANGLE.InstancedArrays

-- | Checks that the <a>GL_ANGLE_instanced_arrays</a> extension is
--   available.
gl_ANGLE_instanced_arrays :: Bool

-- | Usage: <tt><a>glDrawArraysInstancedANGLE</a> mode first count
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   This command is an alias for <a>glDrawArraysInstanced</a>.
glDrawArraysInstancedANGLE :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedANGLE</a> mode count type indices
--   primcount</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   This command is an alias for <a>glDrawElementsInstanced</a>.
glDrawElementsInstancedANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()

-- | Usage: <tt><a>glVertexAttribDivisorANGLE</a> index divisor</tt>
--   
--   This command is an alias for <a>glVertexAttribDivisor</a>.
glVertexAttribDivisorANGLE :: MonadIO m => GLuint -> GLuint -> m ()

module Graphics.GL.Ext.ANGLE.FramebufferMultisample

-- | Checks that the <a>GL_ANGLE_framebuffer_multisample</a> extension is
--   available.
gl_ANGLE_framebuffer_multisample :: Bool

-- | Usage: <tt><a>glRenderbufferStorageMultisampleANGLE</a> target samples
--   internalformat width height</tt>
glRenderbufferStorageMultisampleANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.ANGLE.FramebufferBlit

-- | Checks that the <a>GL_ANGLE_framebuffer_blit</a> extension is
--   available.
gl_ANGLE_framebuffer_blit :: Bool

-- | Usage: <tt><a>glBlitFramebufferANGLE</a> srcX0 srcY0 srcX1 srcY1 dstX0
--   dstY0 dstX1 dstY1 mask filter</tt>
glBlitFramebufferANGLE :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

module Graphics.GL.Ext.ANGLE

module Graphics.GL.Ext.AMD.VertexShaderTessellator

-- | Checks that the <a>GL_AMD_vertex_shader_tessellator</a> extension is
--   available.
gl_AMD_vertex_shader_tessellator :: Bool

-- | Usage: <tt><a>glTessellationFactorAMD</a> factor</tt>
glTessellationFactorAMD :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glTessellationModeAMD</a> mode</tt>
glTessellationModeAMD :: MonadIO m => GLenum -> m ()

module Graphics.GL.Ext.AMD.StencilOperationExtended

-- | Checks that the <a>GL_AMD_stencil_operation_extended</a> extension is
--   available.
gl_AMD_stencil_operation_extended :: Bool

-- | Usage: <tt><a>glStencilOpValueAMD</a> face value</tt>
--   
--   The parameter <tt>face</tt> is a <tt>StencilFaceDirection</tt>.
glStencilOpValueAMD :: MonadIO m => GLenum -> GLuint -> m ()

module Graphics.GL.Ext.AMD.SparseTexture

-- | Checks that the <a>GL_AMD_sparse_texture</a> extension is available.
gl_AMD_sparse_texture :: Bool

-- | Usage: <tt><a>glTexStorageSparseAMD</a> target internalFormat width
--   height depth layers flags</tt>
glTexStorageSparseAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()

-- | Usage: <tt><a>glTextureStorageSparseAMD</a> texture target
--   internalFormat width height depth layers flags</tt>
glTextureStorageSparseAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()

module Graphics.GL.Ext.AMD.SamplePositions

-- | Checks that the <a>GL_AMD_sample_positions</a> extension is available.
gl_AMD_sample_positions :: Bool

-- | Usage: <tt><a>glSetMultisamplefvAMD</a> pname index val</tt>
--   
--   The length of <tt>val</tt> should be <tt>2</tt>.
glSetMultisamplefvAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.AMD.PerformanceMonitor

-- | Checks that the <a>GL_AMD_performance_monitor</a> extension is
--   available.
gl_AMD_performance_monitor :: Bool

-- | Usage: <tt><a>glBeginPerfMonitorAMD</a> monitor</tt>
glBeginPerfMonitorAMD :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glDeletePerfMonitorsAMD</a> n monitors</tt>
--   
--   The length of <tt>monitors</tt> should be <tt>n</tt>.
glDeletePerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glEndPerfMonitorAMD</a> monitor</tt>
glEndPerfMonitorAMD :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGenPerfMonitorsAMD</a> n monitors</tt>
--   
--   The length of <tt>monitors</tt> should be <tt>n</tt>.
glGenPerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetPerfMonitorCounterDataAMD</a> monitor pname
--   dataSize data bytesWritten</tt>
--   
--   The length of <tt>data</tt> should be <tt>dataSize</tt>.
--   
--   The length of <tt>bytesWritten</tt> should be <tt>1</tt>.
glGetPerfMonitorCounterDataAMD :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetPerfMonitorCounterInfoAMD</a> group counter pname
--   data</tt>
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetPerfMonitorCounterInfoAMD :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glGetPerfMonitorCounterStringAMD</a> group counter
--   bufSize length counterString</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>counterString</tt> should be <tt>bufSize</tt>.
glGetPerfMonitorCounterStringAMD :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetPerfMonitorCountersAMD</a> group numCounters
--   maxActiveCounters counterSize counters</tt>
--   
--   The length of <tt>numCounters</tt> should be <tt>1</tt>.
--   
--   The length of <tt>maxActiveCounters</tt> should be <tt>1</tt>.
--   
--   The length of <tt>counters</tt> should be <tt>counterSize</tt>.
glGetPerfMonitorCountersAMD :: MonadIO m => GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetPerfMonitorGroupStringAMD</a> group bufSize length
--   groupString</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>groupString</tt> should be <tt>bufSize</tt>.
glGetPerfMonitorGroupStringAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetPerfMonitorGroupsAMD</a> numGroups groupsSize
--   groups</tt>
--   
--   The length of <tt>numGroups</tt> should be <tt>1</tt>.
--   
--   The length of <tt>groups</tt> should be <tt>groupsSize</tt>.
glGetPerfMonitorGroupsAMD :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glSelectPerfMonitorCountersAMD</a> monitor enable group
--   numCounters counterList</tt>
--   
--   The parameter <tt>enable</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>counterList</tt> should be <tt>numCounters</tt>.
glSelectPerfMonitorCountersAMD :: MonadIO m => GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()

module Graphics.GL.Ext.AMD.OcclusionQueryEvent

-- | Checks that the <a>GL_AMD_occlusion_query_event</a> extension is
--   available.
gl_AMD_occlusion_query_event :: Bool

-- | Usage: <tt><a>glQueryObjectParameteruiAMD</a> target id pname
--   param</tt>
--   
--   The parameter <tt>param</tt> is a <tt>OcclusionQueryEventMaskAMD</tt>,
--   one of: <a>GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD</a>,
--   <a>GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD</a>,
--   <a>GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD</a>,
--   <a>GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD</a>,
--   <a>GL_QUERY_ALL_EVENT_BITS_AMD</a>.
glQueryObjectParameteruiAMD :: MonadIO m => GLenum -> GLuint -> GLenum -> GLuint -> m ()

module Graphics.GL.Ext.AMD.NameGenDelete

-- | Checks that the <a>GL_AMD_name_gen_delete</a> extension is available.
gl_AMD_name_gen_delete :: Bool

-- | Usage: <tt><a>glDeleteNamesAMD</a> identifier num names</tt>
--   
--   The length of <tt>names</tt> should be <tt>num</tt>.
glDeleteNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenNamesAMD</a> identifier num names</tt>
--   
--   The length of <tt>names</tt> should be <tt>num</tt>.
glGenNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsNameAMD</a> identifier name</tt>
glIsNameAMD :: MonadIO m => GLenum -> GLuint -> m GLboolean

module Graphics.GL.Ext.AMD.MultiDrawIndirect

-- | Checks that the <a>GL_AMD_multi_draw_indirect</a> extension is
--   available.
gl_AMD_multi_draw_indirect :: Bool

-- | Usage: <tt><a>glMultiDrawArraysIndirectAMD</a> mode indirect primcount
--   stride</tt>
--   
--   This command is an alias for <a>glMultiDrawArraysIndirect</a>.
glMultiDrawArraysIndirectAMD :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMultiDrawElementsIndirectAMD</a> mode type indirect
--   primcount stride</tt>
--   
--   This command is an alias for <a>glMultiDrawElementsIndirect</a>.
glMultiDrawElementsIndirectAMD :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()

module Graphics.GL.Ext.AMD.InterleavedElements

-- | Checks that the <a>GL_AMD_interleaved_elements</a> extension is
--   available.
gl_AMD_interleaved_elements :: Bool

-- | Usage: <tt><a>glVertexAttribParameteriAMD</a> index pname param</tt>
glVertexAttribParameteriAMD :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

module Graphics.GL.Ext.AMD.FramebufferSamplePositions

-- | Checks that the <a>GL_AMD_framebuffer_sample_positions</a> extension
--   is available.
gl_AMD_framebuffer_sample_positions :: Bool

-- | Usage: <tt><a>glFramebufferSamplePositionsfvAMD</a> target numsamples
--   pixelindex values</tt>
glFramebufferSamplePositionsfvAMD :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFramebufferParameterfvAMD</a> target pname
--   numsamples pixelindex size values</tt>
glGetFramebufferParameterfvAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetNamedFramebufferParameterfvAMD</a> framebuffer
--   pname numsamples pixelindex size values</tt>
glGetNamedFramebufferParameterfvAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glNamedFramebufferSamplePositionsfvAMD</a> framebuffer
--   numsamples pixelindex values</tt>
glNamedFramebufferSamplePositionsfvAMD :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()

module Graphics.GL.Ext.AMD.DrawBuffersBlend

-- | Checks that the <a>GL_AMD_draw_buffers_blend</a> extension is
--   available.
gl_AMD_draw_buffers_blend :: Bool

-- | Usage: <tt><a>glBlendEquationIndexedAMD</a> buf mode</tt>
--   
--   This command is an alias for <a>glBlendEquationi</a>.
glBlendEquationIndexedAMD :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glBlendEquationSeparateIndexedAMD</a> buf modeRGB
--   modeAlpha</tt>
--   
--   This command is an alias for <a>glBlendEquationSeparatei</a>.
glBlendEquationSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncIndexedAMD</a> buf src dst</tt>
--   
--   This command is an alias for <a>glBlendFunci</a>.
glBlendFuncIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparateIndexedAMD</a> buf srcRGB dstRGB
--   srcAlpha dstAlpha</tt>
--   
--   This command is an alias for <a>glBlendFuncSeparatei</a>.
glBlendFuncSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

module Graphics.GL.Ext.AMD.DebugOutput

-- | Checks that the <a>GL_AMD_debug_output</a> extension is available.
gl_AMD_debug_output :: Bool

-- | Usage: <tt><a>glDebugMessageCallbackAMD</a> callback userParam</tt>
glDebugMessageCallbackAMD :: MonadIO m => GLDEBUGPROCAMD -> Ptr () -> m ()

-- | Usage: <tt><a>glDebugMessageEnableAMD</a> category severity count ids
--   enabled</tt>
--   
--   The parameter <tt>enabled</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
glDebugMessageEnableAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Usage: <tt><a>glDebugMessageInsertAMD</a> category severity id length
--   buf</tt>
--   
--   The length of <tt>buf</tt> should be <tt>length</tt>.
glDebugMessageInsertAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetDebugMessageLogAMD</a> count bufsize categories
--   severities ids lengths message</tt>
--   
--   The length of <tt>categories</tt> should be <tt>count</tt>.
--   
--   The length of <tt>severities</tt> should be <tt>count</tt>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   The length of <tt>lengths</tt> should be <tt>count</tt>.
--   
--   The length of <tt>message</tt> should be <tt>bufsize</tt>.
glGetDebugMessageLogAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> m GLuint

module Graphics.GL.Ext.AMD

module Graphics.GL.Ext

module Graphics.GL.EmbeddedLite11

-- | Usage: <tt><a>glActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml</a>
glActiveTexture :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glAlphaFuncx</a> func ref</tt>
glAlphaFuncx :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glBindBuffer</a> target buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml</a>
glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBindTexture</a> target texture</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml</a>
glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glBlendFunc</a> sfactor dfactor</tt>
--   
--   The parameter <tt>sfactor</tt> is a <tt>BlendingFactorSrc</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_DST_COLOR</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_DST_COLOR</a>, <a>GL_ONE_MINUS_SRC_ALPHA</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_ALPHA_SATURATE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>dfactor</tt> is a <tt>BlendingFactorDest</tt>, one
--   of: <a>GL_CONSTANT_ALPHA_EXT</a>, <a>GL_CONSTANT_COLOR_EXT</a>,
--   <a>GL_DST_ALPHA</a>, <a>GL_ONE</a>,
--   <a>GL_ONE_MINUS_CONSTANT_ALPHA_EXT</a>,
--   <a>GL_ONE_MINUS_CONSTANT_COLOR_EXT</a>, <a>GL_ONE_MINUS_DST_ALPHA</a>,
--   <a>GL_ONE_MINUS_SRC_ALPHA</a>, <a>GL_ONE_MINUS_SRC_COLOR</a>,
--   <a>GL_SRC_ALPHA</a>, <a>GL_SRC_COLOR</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml</a>
glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBufferData</a> target size data usage</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The parameter <tt>usage</tt> is a <tt>BufferUsageARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml</a>
glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glBufferSubData</a> target offset size data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml</a>
glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glClear</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>ClearBufferMask</tt>, one of:
--   <a>GL_ACCUM_BUFFER_BIT</a>, <a>GL_COLOR_BUFFER_BIT</a>,
--   <a>GL_COVERAGE_BUFFER_BIT_NV</a>, <a>GL_DEPTH_BUFFER_BIT</a>,
--   <a>GL_STENCIL_BUFFER_BIT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClear.xhtml</a>
glClear :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glClearColorx</a> red green blue alpha</tt>
glClearColorx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glClearDepthx</a> depth</tt>
glClearDepthx :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glClearStencil</a> s</tt>
--   
--   The parameter <tt>s</tt> is a <tt>StencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml</a>
glClearStencil :: MonadIO m => GLint -> m ()

-- | Usage: <tt><a>glClientActiveTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>TextureUnit</tt>.
glClientActiveTexture :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glClipPlanex</a> plane equation</tt>
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glColor4ub</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorUB</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorUB</tt>.
--   
--   The vector equivalent of this command is <a>glColor4ubv</a>.
glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()

-- | Usage: <tt><a>glColor4x</a> red green blue alpha</tt>
glColor4x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glColorMask</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>green</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>blue</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>alpha</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml</a>
glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glColorPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>ColorPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>, <a>GL_UNSIGNED_INT</a>,
--   <a>GL_UNSIGNED_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexImage2D</a> target level internalformat
--   width height border imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml</a>
glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTexSubImage2D</a> target level xoffset
--   yoffset width height format imageSize data</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>data</tt> is a <tt>CompressedTextureARB</tt>.
--   
--   The length of <tt>data</tt> should be <tt>imageSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml</a>
glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyTexImage2D</a> target level internalformat x y
--   width height border</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a <tt>InternalFormat</tt>,
--   one of: <a>GL_ALPHA12</a>, <a>GL_ALPHA16</a>,
--   <tt>GL_ALPHA16_ICC_SGIX</tt>, <a>GL_ALPHA4</a>, <a>GL_ALPHA8</a>,
--   <tt>GL_ALPHA_ICC_SGIX</tt>, <a>GL_DEPTH_COMPONENT16_SGIX</a>,
--   <a>GL_DEPTH_COMPONENT24_SGIX</a>, <a>GL_DEPTH_COMPONENT32_SGIX</a>,
--   <a>GL_DUAL_ALPHA12_SGIS</a>, <a>GL_DUAL_ALPHA16_SGIS</a>,
--   <a>GL_DUAL_ALPHA4_SGIS</a>, <a>GL_DUAL_ALPHA8_SGIS</a>,
--   <a>GL_DUAL_INTENSITY12_SGIS</a>, <a>GL_DUAL_INTENSITY16_SGIS</a>,
--   <a>GL_DUAL_INTENSITY4_SGIS</a>, <a>GL_DUAL_INTENSITY8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE12_SGIS</a>, <a>GL_DUAL_LUMINANCE16_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE4_SGIS</a>, <a>GL_DUAL_LUMINANCE8_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA4_SGIS</a>,
--   <a>GL_DUAL_LUMINANCE_ALPHA8_SGIS</a>, <a>GL_INTENSITY</a>,
--   <a>GL_INTENSITY12</a>, <a>GL_INTENSITY16</a>,
--   <tt>GL_INTENSITY16_ICC_SGIX</tt>, <a>GL_INTENSITY4</a>,
--   <a>GL_INTENSITY8</a>, <tt>GL_INTENSITY_ICC_SGIX</tt>,
--   <a>GL_LUMINANCE12</a>, <a>GL_LUMINANCE12_ALPHA12</a>,
--   <a>GL_LUMINANCE12_ALPHA4</a>, <a>GL_LUMINANCE16</a>,
--   <a>GL_LUMINANCE16_ALPHA16</a>,
--   <tt>GL_LUMINANCE16_ALPHA8_ICC_SGIX</tt>,
--   <tt>GL_LUMINANCE16_ICC_SGIX</tt>, <a>GL_LUMINANCE4</a>,
--   <a>GL_LUMINANCE4_ALPHA4</a>, <a>GL_LUMINANCE6_ALPHA2</a>,
--   <a>GL_LUMINANCE8</a>, <a>GL_LUMINANCE8_ALPHA8</a>,
--   <tt>GL_LUMINANCE_ALPHA_ICC_SGIX</tt>, <tt>GL_LUMINANCE_ICC_SGIX</tt>,
--   <a>GL_QUAD_ALPHA4_SGIS</a>, <a>GL_QUAD_ALPHA8_SGIS</a>,
--   <a>GL_QUAD_INTENSITY4_SGIS</a>, <a>GL_QUAD_INTENSITY8_SGIS</a>,
--   <a>GL_QUAD_LUMINANCE4_SGIS</a>, <a>GL_QUAD_LUMINANCE8_SGIS</a>,
--   <a>GL_R3_G3_B2</a>, <tt>GL_R5_G6_B5_A8_ICC_SGIX</tt>,
--   <tt>GL_R5_G6_B5_ICC_SGIX</tt>, <a>GL_RGB10</a>, <a>GL_RGB10_A2</a>,
--   <a>GL_RGB12</a>, <a>GL_RGB16</a>, <a>GL_RGB2_EXT</a>, <a>GL_RGB4</a>,
--   <a>GL_RGB5</a>, <a>GL_RGB5_A1</a>, <a>GL_RGB8</a>, <a>GL_RGBA12</a>,
--   <a>GL_RGBA16</a>, <a>GL_RGBA2</a>, <a>GL_RGBA4</a>, <a>GL_RGBA8</a>,
--   <tt>GL_RGBA_ICC_SGIX</tt>, <tt>GL_RGB_ICC_SGIX</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml</a>
glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glCopyTexSubImage2D</a> target level xoffset yoffset x y
--   width height</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml</a>
glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCullFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>CullFaceMode</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml</a>
glCullFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDeleteBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml</a>
glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDeleteTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml</a>
glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDepthFunc</a> func</tt>
--   
--   The parameter <tt>func</tt> is a <tt>DepthFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml</a>
glDepthFunc :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDepthMask</a> flag</tt>
--   
--   The parameter <tt>flag</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml</a>
glDepthMask :: MonadIO m => GLboolean -> m ()

-- | Usage: <tt><a>glDepthRangex</a> n f</tt>
glDepthRangex :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glDisable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDisableClientState</a> array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glDisableClientState :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glDrawArrays</a> mode first count</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml</a>
glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glDrawElements</a> mode count type indices</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml</a>
glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glEnable</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml</a>
glEnable :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glEnableClientState</a> array</tt>
--   
--   The parameter <tt>array</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
glEnableClientState :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glFinish</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml</a>
glFinish :: MonadIO m => m ()

-- | Usage: <tt><a>glFlush</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml</a>
glFlush :: MonadIO m => m ()

-- | Usage: <tt><a>glFogx</a> pname param</tt>
glFogx :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glFogxv</a> pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glFogxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glFrontFace</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>FrontFaceDirection</tt>, one of:
--   <a>GL_CCW</a>, <a>GL_CW</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml</a>
glFrontFace :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glFrustumx</a> l r b t n f</tt>
glFrustumx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glGenBuffers</a> n buffers</tt>
--   
--   The length of <tt>buffers</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml</a>
glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGenTextures</a> n textures</tt>
--   
--   The parameter <tt>textures</tt> is a <tt>Texture</tt>.
--   
--   The length of <tt>textures</tt> should be <tt>n</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml</a>
glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetBooleanv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The parameter <tt>data</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()

-- | Usage: <tt><a>glGetBufferParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>BufferTargetARB</tt>.
--   
--   The parameter <tt>pname</tt> is a <tt>BufferPNameARB</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetClipPlanex</a> plane equation</tt>
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glGetClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetError</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml</a>
glGetError :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetFixedv</a> pname params</tt>
glGetFixedv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetIntegerv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetLightxv</a> light pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetMaterialxv</a> face pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetPointerv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPointervPName</tt>, one of:
--   <a>GL_COLOR_ARRAY_POINTER</a>, <a>GL_COLOR_ARRAY_POINTER_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER_EXT</a>,
--   <a>GL_FEEDBACK_BUFFER_POINTER</a>, <a>GL_INDEX_ARRAY_POINTER</a>,
--   <a>GL_INDEX_ARRAY_POINTER_EXT</a>,
--   <a>GL_INSTRUMENT_BUFFER_POINTER_SGIX</a>,
--   <a>GL_NORMAL_ARRAY_POINTER</a>, <a>GL_NORMAL_ARRAY_POINTER_EXT</a>,
--   <a>GL_SELECTION_BUFFER_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER_EXT</a>,
--   <a>GL_VERTEX_ARRAY_POINTER</a>, <a>GL_VERTEX_ARRAY_POINTER_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml</a>
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetString</a> name</tt>
--   
--   The parameter <tt>name</tt> is a <tt>StringName</tt>, one of:
--   <a>GL_EXTENSIONS</a>, <a>GL_RENDERER</a>, <a>GL_VENDOR</a>,
--   <a>GL_VERSION</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml</a>
glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)

-- | Usage: <tt><a>glGetTexEnviv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexEnvxv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glGetTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexParameterxv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glHint</a> target mode</tt>
--   
--   The parameter <tt>target</tt> is a <tt>HintTarget</tt>, one of:
--   <a>GL_ALLOW_DRAW_FRG_HINT_PGI</a>, <a>GL_ALLOW_DRAW_MEM_HINT_PGI</a>,
--   <a>GL_ALLOW_DRAW_OBJ_HINT_PGI</a>, <a>GL_ALLOW_DRAW_WIN_HINT_PGI</a>,
--   <a>GL_ALWAYS_FAST_HINT_PGI</a>, <a>GL_ALWAYS_SOFT_HINT_PGI</a>,
--   <a>GL_BACK_NORMALS_HINT_PGI</a>, <a>GL_BINNING_CONTROL_HINT_QCOM</a>,
--   <a>GL_CLIP_FAR_HINT_PGI</a>, <a>GL_CLIP_NEAR_HINT_PGI</a>,
--   <a>GL_CLIP_VOLUME_CLIPPING_HINT_EXT</a>,
--   <a>GL_CONSERVE_MEMORY_HINT_PGI</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_FOG_HINT</a>, <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB</a>,
--   <a>GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES</a>,
--   <a>GL_FULL_STIPPLE_HINT_PGI</a>, <a>GL_GENERATE_MIPMAP_HINT</a>,
--   <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <tt>GL_LINE_QUALITY_HINT_SGIX</tt>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_MATERIAL_SIDE_HINT_PGI</a>, <a>GL_MAX_VERTEX_HINT_PGI</a>,
--   <a>GL_MULTISAMPLE_FILTER_HINT_NV</a>,
--   <a>GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI</a>,
--   <a>GL_NATIVE_GRAPHICS_END_HINT_PGI</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PERSPECTIVE_CORRECTION_HINT</a>, <a>GL_PHONG_HINT_WIN</a>,
--   <a>GL_POINT_SMOOTH_HINT</a>, <a>GL_POLYGON_SMOOTH_HINT</a>,
--   <a>GL_PREFER_DOUBLEBUFFER_HINT_PGI</a>,
--   <a>GL_PROGRAM_BINARY_RETRIEVABLE_HINT</a>,
--   <a>GL_RECLAIM_MEMORY_HINT_PGI</a>, <a>GL_SCALEBIAS_HINT_SGIX</a>,
--   <a>GL_STRICT_DEPTHFUNC_HINT_PGI</a>,
--   <a>GL_STRICT_LIGHTING_HINT_PGI</a>, <a>GL_STRICT_SCISSOR_HINT_PGI</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT</a>,
--   <a>GL_TEXTURE_COMPRESSION_HINT_ARB</a>,
--   <a>GL_TEXTURE_MULTI_BUFFER_HINT_SGIX</a>,
--   <a>GL_TEXTURE_STORAGE_HINT_APPLE</a>, <a>GL_TRANSFORM_HINT_APPLE</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_STORAGE_HINT_APPLE</a>,
--   <a>GL_VERTEX_CONSISTENT_HINT_PGI</a>, <a>GL_VERTEX_DATA_HINT_PGI</a>,
--   <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>, <a>GL_VERTEX_PRECLIP_SGIX</a>,
--   <a>GL_WIDE_LINE_HINT_PGI</a>.
--   
--   The parameter <tt>mode</tt> is a <tt>HintMode</tt>, one of:
--   <a>GL_DONT_CARE</a>, <a>GL_FASTEST</a>, <a>GL_NICEST</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glHint.xhtml</a>
glHint :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glIsBuffer</a> buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml</a>
glIsBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glIsEnabled</a> cap</tt>
--   
--   The parameter <tt>cap</tt> is a <tt>EnableCap</tt>, one of:
--   <a>GL_ALPHA_TEST</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_BLEND</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIP_PLANE0</a>, <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>,
--   <a>GL_CLIP_PLANE3</a>, <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>,
--   <a>GL_COLOR_ARRAY</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_CONVOLUTION_1D_EXT</a>, <a>GL_CONVOLUTION_2D_EXT</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_DEPTH_TEST</a>, <a>GL_DITHER</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_FOG</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHTING_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_LOGIC_OP</a>, <a>GL_INTERLACE_SGIX</a>,
--   <a>GL_IR_INSTRUMENT1_SGIX</a>, <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>,
--   <a>GL_LIGHT2</a>, <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>,
--   <a>GL_LIGHT5</a>, <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>,
--   <a>GL_LIGHTING</a>, <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_STIPPLE</a>,
--   <a>GL_MAP1_COLOR_4</a>, <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_INDEX</a>, <a>GL_MAP2_NORMAL</a>,
--   <a>GL_MAP2_TEXTURE_COORD_1</a>, <a>GL_MAP2_TEXTURE_COORD_2</a>,
--   <a>GL_MAP2_TEXTURE_COORD_3</a>, <a>GL_MAP2_TEXTURE_COORD_4</a>,
--   <a>GL_MAP2_VERTEX_3</a>, <a>GL_MAP2_VERTEX_4</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MULTISAMPLE_SGIS</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_PIXEL_TEXTURE_SGIS</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>, <a>GL_POINT_SMOOTH</a>,
--   <a>GL_POLYGON_OFFSET_FILL</a>, <a>GL_POLYGON_OFFSET_LINE</a>,
--   <a>GL_POLYGON_OFFSET_POINT</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RESCALE_NORMAL_EXT</a>,
--   <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SCISSOR_TEST</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_COLOR_TABLE_SGI</a>, <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_GEN_Q</a>, <a>GL_TEXTURE_GEN_R</a>,
--   <a>GL_TEXTURE_GEN_S</a>, <a>GL_TEXTURE_GEN_T</a>,
--   <a>GL_VERTEX_ARRAY</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml</a>
glIsEnabled :: MonadIO m => GLenum -> m GLboolean

-- | Usage: <tt><a>glIsTexture</a> texture</tt>
--   
--   The parameter <tt>texture</tt> is a <tt>Texture</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml</a>
glIsTexture :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glLightModelx</a> pname param</tt>
glLightModelx :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glLightModelxv</a> pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightModelxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glLightx</a> light pname param</tt>
glLightx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glLightxv</a> light pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glLineWidthx</a> width</tt>
glLineWidthx :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glLoadIdentity</a></tt>
glLoadIdentity :: MonadIO m => m ()

-- | Usage: <tt><a>glLoadMatrixx</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadMatrixx :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glLogicOp</a> opcode</tt>
--   
--   The parameter <tt>opcode</tt> is a <tt>LogicOp</tt>, one of:
--   <a>GL_AND</a>, <a>GL_AND_INVERTED</a>, <a>GL_AND_REVERSE</a>,
--   <a>GL_CLEAR</a>, <a>GL_COPY</a>, <a>GL_COPY_INVERTED</a>,
--   <a>GL_EQUIV</a>, <a>GL_INVERT</a>, <a>GL_NAND</a>, <a>GL_NOOP</a>,
--   <a>GL_NOR</a>, <a>GL_OR</a>, <a>GL_OR_INVERTED</a>,
--   <a>GL_OR_REVERSE</a>, <a>GL_SET</a>, <a>GL_XOR</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLogicOp.xhtml</a>
glLogicOp :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMaterialx</a> face pname param</tt>
glMaterialx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glMaterialxv</a> face pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glMatrixMode</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>MatrixMode</tt>, one of:
--   <a>GL_MODELVIEW</a>, <a>GL_MODELVIEW0_EXT</a>, <a>GL_PROJECTION</a>,
--   <a>GL_TEXTURE</a>.
glMatrixMode :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glMultMatrixx</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultMatrixx :: MonadIO m => Ptr GLfixed -> m ()

-- | Usage: <tt><a>glMultiTexCoord4x</a> texture s t r q</tt>
glMultiTexCoord4x :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glNormal3x</a> nx ny nz</tt>
glNormal3x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glNormalPointer</a> type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>NormalPointerType</tt>, one of:
--   <a>GL_BYTE</a>, <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(type,stride)</tt>.
glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glOrthox</a> l r b t n f</tt>
glOrthox :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glPixelStorei</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PixelStoreParameter</tt>, one
--   of: <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_PACK_IMAGE_HEIGHT</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_OML</a>,
--   <a>GL_PACK_RESAMPLE_SGIX</a>, <a>GL_PACK_ROW_LENGTH</a>,
--   <a>GL_PACK_SKIP_IMAGES</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_UNPACK_ALIGNMENT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT</a>, <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_UNPACK_LSB_FIRST</a>, <a>GL_UNPACK_RESAMPLE_OML</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_ROW_LENGTH_EXT</a>, <a>GL_UNPACK_SKIP_IMAGES</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_PIXELS_EXT</a>, <a>GL_UNPACK_SKIP_ROWS</a>,
--   <a>GL_UNPACK_SKIP_ROWS_EXT</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPointParameterx</a> pname param</tt>
glPointParameterx :: MonadIO m => GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glPointParameterxv</a> pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPointParameterxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glPointSizex</a> size</tt>
glPointSizex :: MonadIO m => GLfixed -> m ()

-- | Usage: <tt><a>glPolygonOffsetx</a> factor units</tt>
glPolygonOffsetx :: MonadIO m => GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glPopMatrix</a></tt>
glPopMatrix :: MonadIO m => m ()

-- | Usage: <tt><a>glPushMatrix</a></tt>
glPushMatrix :: MonadIO m => m ()

-- | Usage: <tt><a>glReadPixels</a> x y width height format type
--   pixels</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml</a>
glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glRotatex</a> angle x y z</tt>
glRotatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glSampleCoverage</a> value invert</tt>
--   
--   The parameter <tt>invert</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml</a>
glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()

-- | Usage: <tt><a>glSampleCoveragex</a> value invert</tt>
glSampleCoveragex :: MonadIO m => GLclampx -> GLboolean -> m ()

-- | Usage: <tt><a>glScalex</a> x y z</tt>
glScalex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glScissor</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml</a>
glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glShadeModel</a> mode</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>ShadingModel</tt>, one of:
--   <a>GL_FLAT</a>, <a>GL_SMOOTH</a>.
glShadeModel :: MonadIO m => GLenum -> m ()

-- | Usage: <tt><a>glStencilFunc</a> func ref mask</tt>
--   
--   The parameter <tt>func</tt> is a <tt>StencilFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
--   
--   The parameter <tt>ref</tt> is a <tt>StencilValue</tt>.
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml</a>
glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()

-- | Usage: <tt><a>glStencilMask</a> mask</tt>
--   
--   The parameter <tt>mask</tt> is a <tt>MaskedStencilValue</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml</a>
glStencilMask :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glStencilOp</a> fail zfail zpass</tt>
--   
--   The parameter <tt>fail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zfail</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   The parameter <tt>zpass</tt> is a <tt>StencilOp</tt>, one of:
--   <a>GL_DECR</a>, <a>GL_INCR</a>, <a>GL_INVERT</a>, <a>GL_KEEP</a>,
--   <a>GL_REPLACE</a>, <a>GL_ZERO</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml</a>
glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glTexCoordPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>TexCoordPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glTexEnvi</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexEnviv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexEnvx</a> target pname param</tt>
glTexEnvx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glTexEnvxv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTexImage2D</a> target level internalformat width
--   height border format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>internalformat</tt> is a
--   <tt>TextureComponentCount</tt>.
--   
--   The parameter <tt>border</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml</a>
glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTexParameteri</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedInt32</tt>.
glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTexParameteriv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedInt32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexParameterx</a> target pname param</tt>
glTexParameterx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()

-- | Usage: <tt><a>glTexParameterxv</a> target pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()

-- | Usage: <tt><a>glTexSubImage2D</a> target level xoffset yoffset width
--   height format type pixels</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>level</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>xoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>yoffset</tt> is a <tt>CheckedInt32</tt>.
--   
--   The parameter <tt>format</tt> is a <tt>PixelFormat</tt>, one of:
--   <a>GL_ABGR_EXT</a>, <a>GL_ALPHA</a>, <a>GL_BLUE</a>,
--   <a>GL_CMYKA_EXT</a>, <a>GL_CMYK_EXT</a>, <a>GL_COLOR_INDEX</a>,
--   <a>GL_DEPTH_COMPONENT</a>, <a>GL_GREEN</a>, <a>GL_LUMINANCE</a>,
--   <a>GL_LUMINANCE_ALPHA</a>, <a>GL_RED</a>, <a>GL_RED_EXT</a>,
--   <a>GL_RGB</a>, <a>GL_RGBA</a>, <a>GL_STENCIL_INDEX</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_YCRCB_422_SGIX</a>, <a>GL_YCRCB_444_SGIX</a>.
--   
--   The parameter <tt>type</tt> is a <tt>PixelType</tt>, one of:
--   <a>GL_BITMAP</a>, <a>GL_BYTE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>,
--   <a>GL_SHORT</a>, <a>GL_UNSIGNED_BYTE</a>,
--   <a>GL_UNSIGNED_BYTE_3_3_2</a>, <a>GL_UNSIGNED_BYTE_3_3_2_EXT</a>,
--   <a>GL_UNSIGNED_INT</a>, <a>GL_UNSIGNED_INT_10_10_10_2</a>,
--   <a>GL_UNSIGNED_INT_10_10_10_2_EXT</a>, <a>GL_UNSIGNED_INT_8_8_8_8</a>,
--   <a>GL_UNSIGNED_INT_8_8_8_8_EXT</a>, <a>GL_UNSIGNED_SHORT</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4</a>,
--   <a>GL_UNSIGNED_SHORT_4_4_4_4_EXT</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1</a>,
--   <a>GL_UNSIGNED_SHORT_5_5_5_1_EXT</a>.
--   
--   The length of <tt>pixels</tt> should be
--   <tt>COMPSIZE(format,type,width,height)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml</a>
glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTranslatex</a> x y z</tt>
glTranslatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()

-- | Usage: <tt><a>glVertexPointer</a> size type stride pointer</tt>
--   
--   The parameter <tt>type</tt> is a <tt>VertexPointerType</tt>, one of:
--   <a>GL_DOUBLE</a>, <a>GL_FLOAT</a>, <a>GL_INT</a>, <a>GL_SHORT</a>.
--   
--   The length of <tt>pointer</tt> should be
--   <tt>COMPSIZE(size,type,stride)</tt>.
glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glViewport</a> x y width height</tt>
--   
--   The parameter <tt>x</tt> is a <tt>WinCoord</tt>.
--   
--   The parameter <tt>y</tt> is a <tt>WinCoord</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml</a>
glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()

module Graphics.GL.EmbeddedCommon11

-- | Usage: <tt><a>glAlphaFunc</a> func ref</tt>
--   
--   The parameter <tt>func</tt> is a <tt>AlphaFunction</tt>, one of:
--   <a>GL_ALWAYS</a>, <a>GL_EQUAL</a>, <a>GL_GEQUAL</a>,
--   <a>GL_GREATER</a>, <a>GL_LEQUAL</a>, <a>GL_LESS</a>, <a>GL_NEVER</a>,
--   <a>GL_NOTEQUAL</a>.
glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glClearColor</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml</a>
glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glClearDepthf</a> d</tt>
glClearDepthf :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glClipPlanef</a> p eqn</tt>
--   
--   The length of <tt>eqn</tt> should be <tt>4</tt>.
glClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glColor4f</a> red green blue alpha</tt>
--   
--   The parameter <tt>red</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>green</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>blue</tt> is a <tt>ColorF</tt>.
--   
--   The parameter <tt>alpha</tt> is a <tt>ColorF</tt>.
--   
--   The vector equivalent of this command is <a>glColor4fv</a>.
glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glDepthRangef</a> n f</tt>
glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glFogf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glFogf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glFogfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>FogParameter</tt>, one of:
--   <a>GL_FOG_COLOR</a>, <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glFrustumf</a> l r b t n f</tt>
glFrustumf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glGetClipPlanef</a> plane equation</tt>
--   
--   The length of <tt>equation</tt> should be <tt>4</tt>.
glGetClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetFloatv</a> pname data</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPName</tt>, one of:
--   <a>GL_ACCUM_ALPHA_BITS</a>, <a>GL_ACCUM_BLUE_BITS</a>,
--   <a>GL_ACCUM_CLEAR_VALUE</a>, <a>GL_ACCUM_GREEN_BITS</a>,
--   <a>GL_ACCUM_RED_BITS</a>, <a>GL_ALIASED_LINE_WIDTH_RANGE</a>,
--   <a>GL_ALIASED_POINT_SIZE_RANGE</a>, <a>GL_ALPHA_BIAS</a>,
--   <a>GL_ALPHA_BITS</a>, <a>GL_ALPHA_SCALE</a>, <a>GL_ALPHA_TEST</a>,
--   <a>GL_ALPHA_TEST_FUNC</a>, <a>GL_ALPHA_TEST_FUNC_QCOM</a>,
--   <a>GL_ALPHA_TEST_QCOM</a>, <a>GL_ALPHA_TEST_REF</a>,
--   <a>GL_ALPHA_TEST_REF_QCOM</a>, <a>GL_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_ASYNC_HISTOGRAM_SGIX</a>, <a>GL_ASYNC_MARKER_SGIX</a>,
--   <a>GL_ASYNC_READ_PIXELS_SGIX</a>, <a>GL_ASYNC_TEX_IMAGE_SGIX</a>,
--   <a>GL_ATTRIB_STACK_DEPTH</a>, <a>GL_AUTO_NORMAL</a>,
--   <a>GL_AUX_BUFFERS</a>, <a>GL_BLEND</a>, <a>GL_BLEND_COLOR_EXT</a>,
--   <a>GL_BLEND_DST</a>, <a>GL_BLEND_EQUATION_EXT</a>,
--   <a>GL_BLEND_SRC</a>, <a>GL_BLUE_BIAS</a>, <a>GL_BLUE_BITS</a>,
--   <a>GL_BLUE_SCALE</a>, <a>GL_CALLIGRAPHIC_FRAGMENT_SGIX</a>,
--   <a>GL_CLIENT_ATTRIB_STACK_DEPTH</a>, <a>GL_CLIP_PLANE0</a>,
--   <a>GL_CLIP_PLANE1</a>, <a>GL_CLIP_PLANE2</a>, <a>GL_CLIP_PLANE3</a>,
--   <a>GL_CLIP_PLANE4</a>, <a>GL_CLIP_PLANE5</a>, <a>GL_COLOR_ARRAY</a>,
--   <a>GL_COLOR_ARRAY_COUNT_EXT</a>, <a>GL_COLOR_ARRAY_SIZE</a>,
--   <a>GL_COLOR_ARRAY_STRIDE</a>, <a>GL_COLOR_ARRAY_TYPE</a>,
--   <a>GL_COLOR_CLEAR_VALUE</a>, <a>GL_COLOR_LOGIC_OP</a>,
--   <a>GL_COLOR_MATERIAL</a>, <a>GL_COLOR_MATERIAL_FACE</a>,
--   <a>GL_COLOR_MATERIAL_PARAMETER</a>, <a>GL_COLOR_MATRIX_SGI</a>,
--   <a>GL_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_COLOR_TABLE_SGI</a>,
--   <a>GL_COLOR_WRITEMASK</a>, <a>GL_CONVOLUTION_1D_EXT</a>,
--   <a>GL_CONVOLUTION_2D_EXT</a>, <a>GL_CONVOLUTION_HINT_SGIX</a>,
--   <a>GL_CULL_FACE</a>, <a>GL_CULL_FACE_MODE</a>,
--   <a>GL_CURRENT_COLOR</a>, <a>GL_CURRENT_INDEX</a>,
--   <a>GL_CURRENT_NORMAL</a>, <a>GL_CURRENT_RASTER_COLOR</a>,
--   <a>GL_CURRENT_RASTER_DISTANCE</a>, <a>GL_CURRENT_RASTER_INDEX</a>,
--   <a>GL_CURRENT_RASTER_POSITION</a>,
--   <a>GL_CURRENT_RASTER_POSITION_VALID</a>,
--   <a>GL_CURRENT_RASTER_TEXTURE_COORDS</a>,
--   <a>GL_CURRENT_TEXTURE_COORDS</a>, <a>GL_DEFORMATIONS_MASK_SGIX</a>,
--   <a>GL_DEPTH_BIAS</a>, <a>GL_DEPTH_BITS</a>,
--   <a>GL_DEPTH_CLEAR_VALUE</a>, <a>GL_DEPTH_FUNC</a>,
--   <a>GL_DEPTH_RANGE</a>, <a>GL_DEPTH_SCALE</a>, <a>GL_DEPTH_TEST</a>,
--   <a>GL_DEPTH_WRITEMASK</a>, <a>GL_DETAIL_TEXTURE_2D_BINDING_SGIS</a>,
--   <a>GL_DISTANCE_ATTENUATION_SGIS</a>, <a>GL_DITHER</a>,
--   <a>GL_DOUBLEBUFFER</a>, <a>GL_DRAW_BUFFER</a>,
--   <a>GL_DRAW_BUFFER_EXT</a>, <a>GL_EDGE_FLAG</a>,
--   <a>GL_EDGE_FLAG_ARRAY</a>, <a>GL_EDGE_FLAG_ARRAY_COUNT_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_STRIDE</a>, <a>GL_FEEDBACK_BUFFER_SIZE</a>,
--   <a>GL_FEEDBACK_BUFFER_TYPE</a>, <a>GL_FOG</a>, <a>GL_FOG_COLOR</a>,
--   <a>GL_FOG_DENSITY</a>, <a>GL_FOG_END</a>,
--   <a>GL_FOG_FUNC_POINTS_SGIS</a>, <a>GL_FOG_HINT</a>,
--   <a>GL_FOG_INDEX</a>, <a>GL_FOG_MODE</a>, <a>GL_FOG_OFFSET_SGIX</a>,
--   <a>GL_FOG_OFFSET_VALUE_SGIX</a>, <a>GL_FOG_START</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX</a>,
--   <a>GL_FRAGMENT_COLOR_MATERIAL_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHTING_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX</a>,
--   <a>GL_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_FRAMEZOOM_SGIX</a>,
--   <a>GL_FRONT_FACE</a>, <a>GL_GENERATE_MIPMAP_HINT_SGIS</a>,
--   <a>GL_GREEN_BIAS</a>, <a>GL_GREEN_BITS</a>, <a>GL_GREEN_SCALE</a>,
--   <a>GL_HISTOGRAM_EXT</a>, <a>GL_INDEX_ARRAY</a>,
--   <a>GL_INDEX_ARRAY_COUNT_EXT</a>, <a>GL_INDEX_ARRAY_STRIDE</a>,
--   <a>GL_INDEX_ARRAY_TYPE</a>, <a>GL_INDEX_BITS</a>,
--   <a>GL_INDEX_CLEAR_VALUE</a>, <a>GL_INDEX_LOGIC_OP</a>,
--   <a>GL_INDEX_MODE</a>, <a>GL_INDEX_OFFSET</a>, <a>GL_INDEX_SHIFT</a>,
--   <a>GL_INDEX_WRITEMASK</a>, <a>GL_INSTRUMENT_MEASUREMENTS_SGIX</a>,
--   <a>GL_INTERLACE_SGIX</a>, <a>GL_IR_INSTRUMENT1_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>, <a>GL_LIGHTING</a>,
--   <a>GL_LIGHT_ENV_MODE_SGIX</a>, <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>,
--   <a>GL_LINE_SMOOTH</a>, <a>GL_LINE_SMOOTH_HINT</a>,
--   <a>GL_LINE_STIPPLE</a>, <a>GL_LINE_STIPPLE_PATTERN</a>,
--   <a>GL_LINE_STIPPLE_REPEAT</a>, <a>GL_LINE_WIDTH</a>,
--   <a>GL_LINE_WIDTH_GRANULARITY</a>, <a>GL_LINE_WIDTH_RANGE</a>,
--   <a>GL_LIST_BASE</a>, <a>GL_LIST_INDEX</a>, <a>GL_LIST_MODE</a>,
--   <a>GL_LOGIC_OP</a>, <a>GL_LOGIC_OP_MODE</a>, <a>GL_MAP1_COLOR_4</a>,
--   <a>GL_MAP1_GRID_DOMAIN</a>, <a>GL_MAP1_GRID_SEGMENTS</a>,
--   <a>GL_MAP1_INDEX</a>, <a>GL_MAP1_NORMAL</a>,
--   <a>GL_MAP1_TEXTURE_COORD_1</a>, <a>GL_MAP1_TEXTURE_COORD_2</a>,
--   <a>GL_MAP1_TEXTURE_COORD_3</a>, <a>GL_MAP1_TEXTURE_COORD_4</a>,
--   <a>GL_MAP1_VERTEX_3</a>, <a>GL_MAP1_VERTEX_4</a>,
--   <a>GL_MAP2_COLOR_4</a>, <a>GL_MAP2_GRID_DOMAIN</a>,
--   <a>GL_MAP2_GRID_SEGMENTS</a>, <a>GL_MAP2_INDEX</a>,
--   <a>GL_MAP2_NORMAL</a>, <a>GL_MAP2_TEXTURE_COORD_1</a>,
--   <a>GL_MAP2_TEXTURE_COORD_2</a>, <a>GL_MAP2_TEXTURE_COORD_3</a>,
--   <a>GL_MAP2_TEXTURE_COORD_4</a>, <a>GL_MAP2_VERTEX_3</a>,
--   <a>GL_MAP2_VERTEX_4</a>, <a>GL_MAP_COLOR</a>, <a>GL_MAP_STENCIL</a>,
--   <a>GL_MATRIX_MODE</a>, <a>GL_MAX_3D_TEXTURE_SIZE_EXT</a>,
--   <a>GL_MAX_4D_TEXTURE_SIZE_SGIS</a>, <a>GL_MAX_ACTIVE_LIGHTS_SGIX</a>,
--   <a>GL_MAX_ASYNC_DRAW_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_HISTOGRAM_SGIX</a>,
--   <a>GL_MAX_ASYNC_READ_PIXELS_SGIX</a>,
--   <a>GL_MAX_ASYNC_TEX_IMAGE_SGIX</a>, <a>GL_MAX_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</a>,
--   <a>GL_MAX_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_MAX_CLIP_DISTANCES</a>, <a>GL_MAX_CLIP_PLANES</a>,
--   <a>GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI</a>, <a>GL_MAX_EVAL_ORDER</a>,
--   <a>GL_MAX_FOG_FUNC_POINTS_SGIS</a>,
--   <a>GL_MAX_FRAGMENT_LIGHTS_SGIX</a>,
--   <a>GL_MAX_FRAMEZOOM_FACTOR_SGIX</a>, <a>GL_MAX_LIGHTS</a>,
--   <a>GL_MAX_LIST_NESTING</a>, <a>GL_MAX_MODELVIEW_STACK_DEPTH</a>,
--   <a>GL_MAX_NAME_STACK_DEPTH</a>, <a>GL_MAX_PIXEL_MAP_TABLE</a>,
--   <a>GL_MAX_PROJECTION_STACK_DEPTH</a>, <a>GL_MAX_TEXTURE_SIZE</a>,
--   <a>GL_MAX_TEXTURE_STACK_DEPTH</a>, <a>GL_MAX_VIEWPORT_DIMS</a>,
--   <a>GL_MINMAX_EXT</a>, <a>GL_MODELVIEW0_MATRIX_EXT</a>,
--   <a>GL_MODELVIEW0_STACK_DEPTH_EXT</a>, <a>GL_MODELVIEW_MATRIX</a>,
--   <a>GL_MODELVIEW_STACK_DEPTH</a>, <a>GL_MULTISAMPLE_SGIS</a>,
--   <a>GL_NAME_STACK_DEPTH</a>, <a>GL_NORMALIZE</a>,
--   <a>GL_NORMAL_ARRAY</a>, <a>GL_NORMAL_ARRAY_COUNT_EXT</a>,
--   <a>GL_NORMAL_ARRAY_STRIDE</a>, <a>GL_NORMAL_ARRAY_TYPE</a>,
--   <a>GL_PACK_ALIGNMENT</a>, <a>GL_PACK_CMYK_HINT_EXT</a>,
--   <a>GL_PACK_IMAGE_DEPTH_SGIS</a>, <a>GL_PACK_IMAGE_HEIGHT_EXT</a>,
--   <a>GL_PACK_LSB_FIRST</a>, <a>GL_PACK_RESAMPLE_SGIX</a>,
--   <a>GL_PACK_ROW_LENGTH</a>, <a>GL_PACK_SKIP_IMAGES_EXT</a>,
--   <a>GL_PACK_SKIP_PIXELS</a>, <a>GL_PACK_SKIP_ROWS</a>,
--   <a>GL_PACK_SKIP_VOLUMES_SGIS</a>, <a>GL_PACK_SUBSAMPLE_RATE_SGIX</a>,
--   <a>GL_PACK_SWAP_BYTES</a>, <a>GL_PERSPECTIVE_CORRECTION_HINT</a>,
--   <a>GL_PIXEL_MAP_A_TO_A_SIZE</a>, <a>GL_PIXEL_MAP_B_TO_B_SIZE</a>,
--   <a>GL_PIXEL_MAP_G_TO_G_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_A_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_B_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_G_SIZE</a>,
--   <a>GL_PIXEL_MAP_I_TO_I_SIZE</a>, <a>GL_PIXEL_MAP_I_TO_R_SIZE</a>,
--   <a>GL_PIXEL_MAP_R_TO_R_SIZE</a>, <a>GL_PIXEL_MAP_S_TO_S_SIZE</a>,
--   <a>GL_PIXEL_TEXTURE_SGIS</a>, <a>GL_PIXEL_TEX_GEN_MODE_SGIX</a>,
--   <a>GL_PIXEL_TEX_GEN_SGIX</a>,
--   <a>GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_INCREMENT_SGIX</a>,
--   <a>GL_PIXEL_TILE_CACHE_SIZE_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_DEPTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_HEIGHT_SGIX</a>,
--   <a>GL_PIXEL_TILE_GRID_WIDTH_SGIX</a>,
--   <a>GL_PIXEL_TILE_HEIGHT_SGIX</a>, <a>GL_PIXEL_TILE_WIDTH_SGIX</a>,
--   <a>GL_POINT_FADE_THRESHOLD_SIZE_SGIS</a>, <a>GL_POINT_SIZE</a>,
--   <a>GL_POINT_SIZE_GRANULARITY</a>, <a>GL_POINT_SIZE_MAX_SGIS</a>,
--   <a>GL_POINT_SIZE_MIN_SGIS</a>, <a>GL_POINT_SIZE_RANGE</a>,
--   <a>GL_POINT_SMOOTH</a>, <a>GL_POINT_SMOOTH_HINT</a>,
--   <a>GL_POLYGON_MODE</a>, <a>GL_POLYGON_OFFSET_BIAS_EXT</a>,
--   <a>GL_POLYGON_OFFSET_FACTOR</a>, <a>GL_POLYGON_OFFSET_FILL</a>,
--   <a>GL_POLYGON_OFFSET_LINE</a>, <a>GL_POLYGON_OFFSET_POINT</a>,
--   <a>GL_POLYGON_OFFSET_UNITS</a>, <a>GL_POLYGON_SMOOTH</a>,
--   <a>GL_POLYGON_SMOOTH_HINT</a>, <a>GL_POLYGON_STIPPLE</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_BIAS_SGI</a>,
--   <a>GL_POST_COLOR_MATRIX_RED_SCALE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_ALPHA_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_BLUE_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_COLOR_TABLE_SGI</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_GREEN_SCALE_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_BIAS_EXT</a>,
--   <a>GL_POST_CONVOLUTION_RED_SCALE_EXT</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX</a>,
--   <a>GL_PROJECTION_MATRIX</a>, <a>GL_PROJECTION_STACK_DEPTH</a>,
--   <a>GL_READ_BUFFER</a>, <a>GL_READ_BUFFER_EXT</a>,
--   <a>GL_READ_BUFFER_NV</a>, <a>GL_RED_BIAS</a>, <a>GL_RED_BITS</a>,
--   <a>GL_RED_SCALE</a>, <a>GL_REFERENCE_PLANE_EQUATION_SGIX</a>,
--   <a>GL_REFERENCE_PLANE_SGIX</a>, <a>GL_RENDER_MODE</a>,
--   <a>GL_RESCALE_NORMAL_EXT</a>, <a>GL_RGBA_MODE</a>,
--   <a>GL_SAMPLES_SGIS</a>, <a>GL_SAMPLE_ALPHA_TO_MASK_SGIS</a>,
--   <a>GL_SAMPLE_ALPHA_TO_ONE_SGIS</a>, <a>GL_SAMPLE_BUFFERS_SGIS</a>,
--   <a>GL_SAMPLE_MASK_INVERT_SGIS</a>, <a>GL_SAMPLE_MASK_SGIS</a>,
--   <a>GL_SAMPLE_MASK_VALUE_SGIS</a>, <a>GL_SAMPLE_PATTERN_SGIS</a>,
--   <a>GL_SCISSOR_BOX</a>, <a>GL_SCISSOR_TEST</a>,
--   <a>GL_SELECTION_BUFFER_SIZE</a>, <a>GL_SEPARABLE_2D_EXT</a>,
--   <a>GL_SHADE_MODEL</a>, <a>GL_SHARED_TEXTURE_PALETTE_EXT</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_GRANULARITY</a>,
--   <a>GL_SMOOTH_LINE_WIDTH_RANGE</a>,
--   <a>GL_SMOOTH_POINT_SIZE_GRANULARITY</a>,
--   <a>GL_SMOOTH_POINT_SIZE_RANGE</a>, <a>GL_SPRITE_AXIS_SGIX</a>,
--   <a>GL_SPRITE_MODE_SGIX</a>, <a>GL_SPRITE_SGIX</a>,
--   <a>GL_SPRITE_TRANSLATION_SGIX</a>, <a>GL_STENCIL_BITS</a>,
--   <a>GL_STENCIL_CLEAR_VALUE</a>, <a>GL_STENCIL_FAIL</a>,
--   <a>GL_STENCIL_FUNC</a>, <a>GL_STENCIL_PASS_DEPTH_FAIL</a>,
--   <a>GL_STENCIL_PASS_DEPTH_PASS</a>, <a>GL_STENCIL_REF</a>,
--   <a>GL_STENCIL_TEST</a>, <a>GL_STENCIL_VALUE_MASK</a>,
--   <a>GL_STENCIL_WRITEMASK</a>, <a>GL_STEREO</a>,
--   <a>GL_SUBPIXEL_BITS</a>, <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>,
--   <a>GL_TEXTURE_3D_BINDING_EXT</a>, <a>GL_TEXTURE_3D_EXT</a>,
--   <a>GL_TEXTURE_4D_BINDING_SGIS</a>, <a>GL_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_BINDING_1D</a>, <a>GL_TEXTURE_BINDING_2D</a>,
--   <a>GL_TEXTURE_BINDING_3D</a>, <a>GL_TEXTURE_COLOR_TABLE_SGI</a>,
--   <a>GL_TEXTURE_COORD_ARRAY</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_COUNT_EXT</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_SIZE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_STRIDE</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_TYPE</a>, <a>GL_TEXTURE_GEN_Q</a>,
--   <a>GL_TEXTURE_GEN_R</a>, <a>GL_TEXTURE_GEN_S</a>,
--   <a>GL_TEXTURE_GEN_T</a>, <a>GL_TEXTURE_MATRIX</a>,
--   <a>GL_TEXTURE_STACK_DEPTH</a>, <a>GL_UNPACK_ALIGNMENT</a>,
--   <a>GL_UNPACK_CMYK_HINT_EXT</a>, <a>GL_UNPACK_IMAGE_DEPTH_SGIS</a>,
--   <a>GL_UNPACK_IMAGE_HEIGHT_EXT</a>, <a>GL_UNPACK_LSB_FIRST</a>,
--   <a>GL_UNPACK_RESAMPLE_SGIX</a>, <a>GL_UNPACK_ROW_LENGTH</a>,
--   <a>GL_UNPACK_SKIP_IMAGES_EXT</a>, <a>GL_UNPACK_SKIP_PIXELS</a>,
--   <a>GL_UNPACK_SKIP_ROWS</a>, <a>GL_UNPACK_SKIP_VOLUMES_SGIS</a>,
--   <a>GL_UNPACK_SUBSAMPLE_RATE_SGIX</a>, <a>GL_UNPACK_SWAP_BYTES</a>,
--   <a>GL_VERTEX_ARRAY</a>, <a>GL_VERTEX_ARRAY_COUNT_EXT</a>,
--   <a>GL_VERTEX_ARRAY_SIZE</a>, <a>GL_VERTEX_ARRAY_STRIDE</a>,
--   <a>GL_VERTEX_ARRAY_TYPE</a>, <a>GL_VERTEX_PRECLIP_HINT_SGIX</a>,
--   <a>GL_VERTEX_PRECLIP_SGIX</a>, <a>GL_VIEWPORT</a>, <a>GL_ZOOM_X</a>,
--   <a>GL_ZOOM_Y</a>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetLightfv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetMaterialfv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexEnvfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLightModelf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glLightModelfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>LightModelParameter</tt>, one
--   of: <a>GL_LIGHT_MODEL_AMBIENT</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL</a>,
--   <a>GL_LIGHT_MODEL_COLOR_CONTROL_EXT</a>,
--   <a>GL_LIGHT_MODEL_LOCAL_VIEWER</a>, <a>GL_LIGHT_MODEL_TWO_SIDE</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLightf</a> light pname param</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glLightfv</a> light pname params</tt>
--   
--   The parameter <tt>light</tt> is a <tt>LightName</tt>, one of:
--   <a>GL_FRAGMENT_LIGHT0_SGIX</a>, <a>GL_FRAGMENT_LIGHT1_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT2_SGIX</a>, <a>GL_FRAGMENT_LIGHT3_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT4_SGIX</a>, <a>GL_FRAGMENT_LIGHT5_SGIX</a>,
--   <a>GL_FRAGMENT_LIGHT6_SGIX</a>, <a>GL_FRAGMENT_LIGHT7_SGIX</a>,
--   <a>GL_LIGHT0</a>, <a>GL_LIGHT1</a>, <a>GL_LIGHT2</a>,
--   <a>GL_LIGHT3</a>, <a>GL_LIGHT4</a>, <a>GL_LIGHT5</a>,
--   <a>GL_LIGHT6</a>, <a>GL_LIGHT7</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>LightParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_CONSTANT_ATTENUATION</a>, <a>GL_DIFFUSE</a>,
--   <a>GL_LINEAR_ATTENUATION</a>, <a>GL_POSITION</a>,
--   <a>GL_QUADRATIC_ATTENUATION</a>, <a>GL_SPECULAR</a>,
--   <a>GL_SPOT_CUTOFF</a>, <a>GL_SPOT_DIRECTION</a>,
--   <a>GL_SPOT_EXPONENT</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glLineWidth</a> width</tt>
--   
--   The parameter <tt>width</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml</a>
glLineWidth :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glLoadMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMaterialf</a> face pname param</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glMaterialfv</a> face pname params</tt>
--   
--   The parameter <tt>face</tt> is a <tt>MaterialFace</tt>, one of:
--   <a>GL_BACK</a>, <a>GL_FRONT</a>, <a>GL_FRONT_AND_BACK</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>MaterialParameter</tt>, one of:
--   <a>GL_AMBIENT</a>, <a>GL_AMBIENT_AND_DIFFUSE</a>,
--   <a>GL_COLOR_INDEXES</a>, <a>GL_DIFFUSE</a>, <a>GL_EMISSION</a>,
--   <a>GL_SHININESS</a>, <a>GL_SPECULAR</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultMatrixf</a> m</tt>
--   
--   The length of <tt>m</tt> should be <tt>16</tt>.
glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()

-- | Usage: <tt><a>glMultiTexCoord4f</a> target s t r q</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureUnit</tt>.
--   
--   The parameter <tt>s</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>t</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>r</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>q</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glMultiTexCoord4fv</a>.
glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glNormal3f</a> nx ny nz</tt>
--   
--   The parameter <tt>nx</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>ny</tt> is a <tt>CoordF</tt>.
--   
--   The parameter <tt>nz</tt> is a <tt>CoordF</tt>.
--   
--   The vector equivalent of this command is <a>glNormal3fv</a>.
glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glOrthof</a> l r b t n f</tt>
glOrthof :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glPointParameterf</a> pname param</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glPointParameterfv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>PointParameterNameARB</tt>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glPointSize</a> size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>CheckedFloat32</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPointSize.xhtml</a>
glPointSize :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glPolygonOffset</a> factor units</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml</a>
glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glRotatef</a> angle x y z</tt>
glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glScalef</a> x y z</tt>
glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glTexEnvf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexEnvfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureEnvTarget</tt>, one of:
--   <a>GL_TEXTURE_ENV</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureEnvParameter</tt>, one
--   of: <a>GL_TEXTURE_ENV_COLOR</a>, <a>GL_TEXTURE_ENV_MODE</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTexParameterf</a> target pname param</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>param</tt> is a <tt>CheckedFloat32</tt>.
glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTexParameterfv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The parameter <tt>params</tt> is a <tt>CheckedFloat32</tt>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTranslatef</a> x y z</tt>
glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()

module Graphics.GL.Embedded32

-- | Usage: <tt><a>glBlendBarrier</a></tt>
glBlendBarrier :: MonadIO m => m ()

-- | Usage: <tt><a>glBlendEquationSeparatei</a> buf modeRGB modeAlpha</tt>
glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendEquationi</a> buf mode</tt>
glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFuncSeparatei</a> buf srcRGB dstRGB srcAlpha
--   dstAlpha</tt>
glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glBlendFunci</a> buf src dst</tt>
glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glColorMaski</a> index r g b a</tt>
--   
--   The parameter <tt>r</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>g</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>b</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The parameter <tt>a</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()

-- | Usage: <tt><a>glCopyImageSubData</a> srcName srcTarget srcLevel srcX
--   srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight
--   srcDepth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCopyImageSubData.xhtml</a>
glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glDebugMessageCallback</a> callback userParam</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageCallback.xhtml</a>
glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()

-- | Usage: <tt><a>glDebugMessageControl</a> source type severity count ids
--   enabled</tt>
--   
--   The parameter <tt>enabled</tt> is a <tt>Boolean</tt>, one of:
--   <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageControl.xhtml</a>
glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()

-- | Usage: <tt><a>glDebugMessageInsert</a> source type id severity length
--   buf</tt>
--   
--   The length of <tt>buf</tt> should be <tt>COMPSIZE(buf,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDebugMessageInsert.xhtml</a>
glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glDisablei</a> target index</tt>
glDisablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glDrawElementsBaseVertex</a> mode count type indices
--   basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsBaseVertex.xhtml</a>
glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glDrawElementsInstancedBaseVertex</a> mode count type
--   indices instancecount basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertex.xhtml</a>
glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()

-- | Usage: <tt><a>glDrawRangeElementsBaseVertex</a> mode start end count
--   type indices basevertex</tt>
--   
--   The parameter <tt>mode</tt> is a <tt>PrimitiveType</tt>, one of:
--   <a>GL_LINES</a>, <a>GL_LINES_ADJACENCY</a>,
--   <a>GL_LINES_ADJACENCY_ARB</a>, <a>GL_LINES_ADJACENCY_EXT</a>,
--   <a>GL_LINE_LOOP</a>, <a>GL_LINE_STRIP</a>,
--   <a>GL_LINE_STRIP_ADJACENCY</a>, <a>GL_LINE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_LINE_STRIP_ADJACENCY_EXT</a>, <a>GL_PATCHES</a>,
--   <a>GL_PATCHES_EXT</a>, <a>GL_POINTS</a>, <a>GL_POLYGON</a>,
--   <a>GL_QUADS</a>, <a>GL_QUADS_EXT</a>, <a>GL_QUAD_STRIP</a>,
--   <a>GL_TRIANGLES</a>, <a>GL_TRIANGLES_ADJACENCY</a>,
--   <a>GL_TRIANGLES_ADJACENCY_ARB</a>, <a>GL_TRIANGLES_ADJACENCY_EXT</a>,
--   <a>GL_TRIANGLE_FAN</a>, <a>GL_TRIANGLE_STRIP</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_ARB</a>,
--   <a>GL_TRIANGLE_STRIP_ADJACENCY_EXT</a>.
--   
--   The parameter <tt>type</tt> is a <tt>DrawElementsType</tt>.
--   
--   The length of <tt>indices</tt> should be
--   <tt>COMPSIZE(count,type)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glDrawRangeElementsBaseVertex.xhtml</a>
glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()

-- | Usage: <tt><a>glEnablei</a> target index</tt>
glEnablei :: MonadIO m => GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glFramebufferTexture</a> target attachment texture
--   level</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glFramebufferTexture.xhtml</a>
glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glGetDebugMessageLog</a> count bufSize sources types ids
--   severities lengths messageLog</tt>
--   
--   The length of <tt>sources</tt> should be <tt>count</tt>.
--   
--   The length of <tt>types</tt> should be <tt>count</tt>.
--   
--   The length of <tt>ids</tt> should be <tt>count</tt>.
--   
--   The length of <tt>severities</tt> should be <tt>count</tt>.
--   
--   The length of <tt>lengths</tt> should be <tt>count</tt>.
--   
--   The length of <tt>messageLog</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetDebugMessageLog.xhtml</a>
glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint

-- | Usage: <tt><a>glGetGraphicsResetStatus</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml</a>
glGetGraphicsResetStatus :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetObjectLabel</a> identifier name bufSize length
--   label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetObjectLabel.xhtml</a>
glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetObjectPtrLabel</a> ptr bufSize length label</tt>
--   
--   The length of <tt>length</tt> should be <tt>1</tt>.
--   
--   The length of <tt>label</tt> should be <tt>bufSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetObjectPtrLabel.xhtml</a>
glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glGetPointerv</a> pname params</tt>
--   
--   The parameter <tt>pname</tt> is a <tt>GetPointervPName</tt>, one of:
--   <a>GL_COLOR_ARRAY_POINTER</a>, <a>GL_COLOR_ARRAY_POINTER_EXT</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER</a>,
--   <a>GL_EDGE_FLAG_ARRAY_POINTER_EXT</a>,
--   <a>GL_FEEDBACK_BUFFER_POINTER</a>, <a>GL_INDEX_ARRAY_POINTER</a>,
--   <a>GL_INDEX_ARRAY_POINTER_EXT</a>,
--   <a>GL_INSTRUMENT_BUFFER_POINTER_SGIX</a>,
--   <a>GL_NORMAL_ARRAY_POINTER</a>, <a>GL_NORMAL_ARRAY_POINTER_EXT</a>,
--   <a>GL_SELECTION_BUFFER_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER</a>,
--   <a>GL_TEXTURE_COORD_ARRAY_POINTER_EXT</a>,
--   <a>GL_VERTEX_ARRAY_POINTER</a>, <a>GL_VERTEX_ARRAY_POINTER_EXT</a>.
--   
--   The length of <tt>params</tt> should be <tt>1</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml</a>
glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetSamplerParameterIiv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetSamplerParameterIuiv</a> sampler pname params</tt>
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetTexParameterIiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTexParameterIuiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>GetTextureParameter</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS</a>,
--   <a>GL_TEXTURE_4DSIZE_SGIS</a>, <a>GL_TEXTURE_ALPHA_SIZE</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_BLUE_SIZE</a>,
--   <a>GL_TEXTURE_BORDER</a>, <a>GL_TEXTURE_BORDER_COLOR</a>,
--   <a>GL_TEXTURE_BORDER_COLOR_NV</a>,
--   <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_OPERATOR_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_COMPONENTS</a>,
--   <a>GL_TEXTURE_DEPTH_EXT</a>, <a>GL_TEXTURE_FILTER4_SIZE_SGIS</a>,
--   <a>GL_TEXTURE_GEQUAL_R_SGIX</a>, <a>GL_TEXTURE_GREEN_SIZE</a>,
--   <a>GL_TEXTURE_HEIGHT</a>, <a>GL_TEXTURE_INTENSITY_SIZE</a>,
--   <a>GL_TEXTURE_INTERNAL_FORMAT</a>, <a>GL_TEXTURE_LEQUAL_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>, <a>GL_TEXTURE_LUMINANCE_SIZE</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>, <a>GL_TEXTURE_PRIORITY</a>,
--   <a>GL_TEXTURE_RED_SIZE</a>, <a>GL_TEXTURE_RESIDENT</a>,
--   <a>GL_TEXTURE_WIDTH</a>, <a>GL_TEXTURE_WRAP_Q_SGIS</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_S</a>,
--   <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetnUniformfv</a> program location bufSize params</tt>
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnUniformiv</a> program location bufSize params</tt>
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetnUniformuiv</a> program location bufSize
--   params</tt>
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glIsEnabledi</a> target index</tt>
glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean

-- | Usage: <tt><a>glMinSampleShading</a> value</tt>
--   
--   The parameter <tt>value</tt> is a <tt>ColorF</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glMinSampleShading.xhtml</a>
glMinSampleShading :: MonadIO m => GLfloat -> m ()

-- | Usage: <tt><a>glObjectLabel</a> identifier name length label</tt>
--   
--   The length of <tt>label</tt> should be
--   <tt>COMPSIZE(label,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glObjectLabel.xhtml</a>
glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glObjectPtrLabel</a> ptr length label</tt>
--   
--   The length of <tt>label</tt> should be
--   <tt>COMPSIZE(label,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glObjectPtrLabel.xhtml</a>
glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glPatchParameteri</a> pname value</tt>
glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()

-- | Usage: <tt><a>glPopDebugGroup</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPopDebugGroup.xhtml</a>
glPopDebugGroup :: MonadIO m => m ()

-- | Usage: <tt><a>glPrimitiveBoundingBox</a> minX minY minZ minW maxX maxY
--   maxZ maxW</tt>
glPrimitiveBoundingBox :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()

-- | Usage: <tt><a>glPushDebugGroup</a> source id length message</tt>
--   
--   The length of <tt>message</tt> should be
--   <tt>COMPSIZE(message,length)</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glPushDebugGroup.xhtml</a>
glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()

-- | Usage: <tt><a>glReadnPixels</a> x y width height format type bufSize
--   data</tt>
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glSamplerParameterIiv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glSamplerParameterIuiv</a> sampler pname param</tt>
--   
--   The length of <tt>param</tt> should be <tt>COMPSIZE(pname)</tt>.
glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexBuffer</a> target internalformat buffer</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexBuffer.xhtml</a>
glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTexBufferRange</a> target internalformat buffer offset
--   size</tt>
--   
--   The parameter <tt>offset</tt> is a <tt>BufferOffset</tt>.
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexBufferRange.xhtml</a>
glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glTexParameterIiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTexParameterIuiv</a> target pname params</tt>
--   
--   The parameter <tt>target</tt> is a <tt>TextureTarget</tt>, one of:
--   <a>GL_DETAIL_TEXTURE_2D_SGIS</a>, <a>GL_PROXY_TEXTURE_1D</a>,
--   <a>GL_PROXY_TEXTURE_1D_EXT</a>, <a>GL_PROXY_TEXTURE_2D</a>,
--   <a>GL_PROXY_TEXTURE_2D_EXT</a>, <a>GL_PROXY_TEXTURE_3D</a>,
--   <a>GL_PROXY_TEXTURE_3D_EXT</a>, <a>GL_PROXY_TEXTURE_4D_SGIS</a>,
--   <a>GL_TEXTURE_1D</a>, <a>GL_TEXTURE_2D</a>, <a>GL_TEXTURE_3D</a>,
--   <a>GL_TEXTURE_3D_EXT</a>, <a>GL_TEXTURE_3D_OES</a>,
--   <a>GL_TEXTURE_4D_SGIS</a>, <a>GL_TEXTURE_BASE_LEVEL</a>,
--   <a>GL_TEXTURE_BASE_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LEVEL</a>,
--   <a>GL_TEXTURE_MAX_LEVEL_SGIS</a>, <a>GL_TEXTURE_MAX_LOD</a>,
--   <a>GL_TEXTURE_MAX_LOD_SGIS</a>, <a>GL_TEXTURE_MIN_LOD</a>,
--   <a>GL_TEXTURE_MIN_LOD_SGIS</a>.
--   
--   The parameter <tt>pname</tt> is a <tt>TextureParameterName</tt>, one
--   of: <a>GL_DETAIL_TEXTURE_LEVEL_SGIS</a>,
--   <a>GL_DETAIL_TEXTURE_MODE_SGIS</a>,
--   <a>GL_DUAL_TEXTURE_SELECT_SGIS</a>, <a>GL_GENERATE_MIPMAP</a>,
--   <a>GL_GENERATE_MIPMAP_SGIS</a>,
--   <a>GL_POST_TEXTURE_FILTER_BIAS_SGIX</a>,
--   <a>GL_POST_TEXTURE_FILTER_SCALE_SGIX</a>,
--   <a>GL_QUAD_TEXTURE_SELECT_SGIS</a>, <a>GL_SHADOW_AMBIENT_SGIX</a>,
--   <a>GL_TEXTURE_BORDER_COLOR</a>, <a>GL_TEXTURE_CLIPMAP_CENTER_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_FRAME_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_OFFSET_SGIX</a>,
--   <a>GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX</a>,
--   <a>GL_TEXTURE_COMPARE_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_R_SGIX</a>,
--   <a>GL_TEXTURE_LOD_BIAS_S_SGIX</a>, <a>GL_TEXTURE_LOD_BIAS_T_SGIX</a>,
--   <a>GL_TEXTURE_MAG_FILTER</a>, <a>GL_TEXTURE_MAX_CLAMP_R_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_S_SGIX</a>,
--   <a>GL_TEXTURE_MAX_CLAMP_T_SGIX</a>, <a>GL_TEXTURE_MIN_FILTER</a>,
--   <a>GL_TEXTURE_PRIORITY</a>, <a>GL_TEXTURE_PRIORITY_EXT</a>,
--   <a>GL_TEXTURE_WRAP_Q_SGIS</a>, <a>GL_TEXTURE_WRAP_R</a>,
--   <a>GL_TEXTURE_WRAP_R_EXT</a>, <a>GL_TEXTURE_WRAP_R_OES</a>,
--   <a>GL_TEXTURE_WRAP_S</a>, <a>GL_TEXTURE_WRAP_T</a>.
--   
--   The length of <tt>params</tt> should be <tt>COMPSIZE(pname)</tt>.
glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTexStorage3DMultisample</a> target samples
--   internalformat width height depth fixedsamplelocations</tt>
--   
--   The parameter <tt>fixedsamplelocations</tt> is a <tt>Boolean</tt>, one
--   of: <a>GL_FALSE</a>, <a>GL_TRUE</a>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTexStorage3DMultisample.xhtml</a>
glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

module Graphics.GL.Core45

-- | Usage: <tt><a>glBindTextureUnit</a> unit texture</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glBindTextureUnit.xhtml</a>
glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glBlitNamedFramebuffer</a> readFramebuffer
--   drawFramebuffer srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask
--   filter</tt>
glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()

-- | Usage: <tt><a>glCheckNamedFramebufferStatus</a> framebuffer
--   target</tt>
glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum

-- | Usage: <tt><a>glClearNamedBufferData</a> buffer internalformat format
--   type data</tt>
glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearNamedBufferSubData</a> buffer internalformat
--   offset size format type data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glClearNamedFramebufferfi</a> framebuffer buffer
--   drawbuffer depth stencil</tt>
glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()

-- | Usage: <tt><a>glClearNamedFramebufferfv</a> framebuffer buffer
--   drawbuffer value</tt>
glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glClearNamedFramebufferiv</a> framebuffer buffer
--   drawbuffer value</tt>
glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glClearNamedFramebufferuiv</a> framebuffer buffer
--   drawbuffer value</tt>
glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glClipControl</a> origin depth</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glClipControl.xhtml</a>
glClipControl :: MonadIO m => GLenum -> GLenum -> m ()

-- | Usage: <tt><a>glCompressedTextureSubImage1D</a> texture level xoffset
--   width format imageSize data</tt>
glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureSubImage2D</a> texture level xoffset
--   yoffset width height format imageSize data</tt>
glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCompressedTextureSubImage3D</a> texture level xoffset
--   yoffset zoffset width height depth format imageSize data</tt>
glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glCopyNamedBufferSubData</a> readBuffer writeBuffer
--   readOffset writeOffset size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glCopyTextureSubImage1D</a> texture level xoffset x y
--   width</tt>
glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTextureSubImage2D</a> texture level xoffset
--   yoffset x y width height</tt>
glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCopyTextureSubImage3D</a> texture level xoffset
--   yoffset zoffset x y width height</tt>
glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glCreateBuffers</a> n buffers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateBuffers.xhtml</a>
glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateFramebuffers</a> n framebuffers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateFramebuffers.xhtml</a>
glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateProgramPipelines</a> n pipelines</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateProgramPipelines.xhtml</a>
glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateQueries</a> target n ids</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateQueries.xhtml</a>
glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateRenderbuffers</a> n renderbuffers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateRenderbuffers.xhtml</a>
glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateSamplers</a> n samplers</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateSamplers.xhtml</a>
glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateTextures</a> target n textures</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateTextures.xhtml</a>
glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateTransformFeedbacks</a> n ids</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateTransformFeedbacks.xhtml</a>
glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glCreateVertexArrays</a> n arrays</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glCreateVertexArrays.xhtml</a>
glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glDisableVertexArrayAttrib</a> vaobj index</tt>
glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glEnableVertexArrayAttrib</a> vaobj index</tt>
glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glFlushMappedNamedBufferRange</a> buffer offset
--   length</tt>
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glGenerateTextureMipmap</a> texture</tt>
glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()

-- | Usage: <tt><a>glGetCompressedTextureImage</a> texture level bufSize
--   pixels</tt>
glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetCompressedTextureSubImage</a> texture level xoffset
--   yoffset zoffset width height depth bufSize pixels</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetCompressedTextureSubImage.xhtml</a>
glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetGraphicsResetStatus</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml</a>
glGetGraphicsResetStatus :: MonadIO m => m GLenum

-- | Usage: <tt><a>glGetNamedBufferParameteri64v</a> buffer pname
--   params</tt>
glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetNamedBufferParameteriv</a> buffer pname params</tt>
glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedBufferPointerv</a> buffer pname params</tt>
glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()

-- | Usage: <tt><a>glGetNamedBufferSubData</a> buffer offset size data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glGetNamedFramebufferAttachmentParameteriv</a>
--   framebuffer attachment pname params</tt>
glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedFramebufferParameteriv</a> framebuffer pname
--   param</tt>
glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetNamedRenderbufferParameteriv</a> renderbuffer pname
--   params</tt>
glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetQueryBufferObjecti64v</a> id buffer pname
--   offset</tt>
glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Usage: <tt><a>glGetQueryBufferObjectiv</a> id buffer pname offset</tt>
glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Usage: <tt><a>glGetQueryBufferObjectui64v</a> id buffer pname
--   offset</tt>
glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Usage: <tt><a>glGetQueryBufferObjectuiv</a> id buffer pname
--   offset</tt>
glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()

-- | Usage: <tt><a>glGetTextureImage</a> texture level format type bufSize
--   pixels</tt>
glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetTextureLevelParameterfv</a> texture level pname
--   params</tt>
glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTextureLevelParameteriv</a> texture level pname
--   params</tt>
glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTextureParameterIiv</a> texture pname params</tt>
glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTextureParameterIuiv</a> texture pname params</tt>
glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetTextureParameterfv</a> texture pname params</tt>
glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetTextureParameteriv</a> texture pname params</tt>
glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTextureSubImage</a> texture level xoffset yoffset
--   zoffset width height depth format type bufSize pixels</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetTextureSubImage.xhtml</a>
glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetTransformFeedbacki64_v</a> xfb pname index
--   param</tt>
glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetTransformFeedbacki_v</a> xfb pname index param</tt>
glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetTransformFeedbackiv</a> xfb pname param</tt>
glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexArrayIndexed64iv</a> vaobj index pname
--   param</tt>
glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()

-- | Usage: <tt><a>glGetVertexArrayIndexediv</a> vaobj index pname
--   param</tt>
glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetVertexArrayiv</a> vaobj pname param</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glGetVertexArrayiv.xhtml</a>
glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetnCompressedTexImage</a> target lod bufSize
--   pixels</tt>
glGetnCompressedTexImage :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnTexImage</a> target level format type bufSize
--   pixels</tt>
glGetnTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnUniformdv</a> program location bufSize params</tt>
glGetnUniformdv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetnUniformfv</a> program location bufSize params</tt>
glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnUniformiv</a> program location bufSize params</tt>
glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetnUniformuiv</a> program location bufSize
--   params</tt>
glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glInvalidateNamedFramebufferData</a> framebuffer
--   numAttachments attachments</tt>
glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glInvalidateNamedFramebufferSubData</a> framebuffer
--   numAttachments attachments x y width height</tt>
glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glMapNamedBuffer</a> buffer access</tt>
glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())

-- | Usage: <tt><a>glMapNamedBufferRange</a> buffer offset length
--   access</tt>
--   
--   The parameter <tt>length</tt> is a <tt>BufferSize</tt>.
glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())

-- | Usage: <tt><a>glMemoryBarrierByRegion</a> barriers</tt>
glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()

-- | Usage: <tt><a>glNamedBufferData</a> buffer size data usage</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()

-- | Usage: <tt><a>glNamedBufferStorage</a> buffer size data flags</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>size</tt>.
glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()

-- | Usage: <tt><a>glNamedBufferSubData</a> buffer offset size data</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   The length of <tt>data</tt> should be <tt>COMPSIZE(size)</tt>.
glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()

-- | Usage: <tt><a>glNamedFramebufferDrawBuffer</a> framebuffer buf</tt>
glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glNamedFramebufferDrawBuffers</a> framebuffer n
--   bufs</tt>
glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()

-- | Usage: <tt><a>glNamedFramebufferParameteri</a> framebuffer pname
--   param</tt>
glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glNamedFramebufferReadBuffer</a> framebuffer src</tt>
glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()

-- | Usage: <tt><a>glNamedFramebufferRenderbuffer</a> framebuffer
--   attachment renderbuffertarget renderbuffer</tt>
glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glNamedFramebufferTexture</a> framebuffer attachment
--   texture level</tt>
glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()

-- | Usage: <tt><a>glNamedFramebufferTextureLayer</a> framebuffer
--   attachment texture level layer</tt>
glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()

-- | Usage: <tt><a>glNamedRenderbufferStorage</a> renderbuffer
--   internalformat width height</tt>
glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glNamedRenderbufferStorageMultisample</a> renderbuffer
--   samples internalformat width height</tt>
glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glReadnPixels</a> x y width height format type bufSize
--   data</tt>
glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glTextureBarrier</a></tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTextureBarrier.xhtml</a>
glTextureBarrier :: MonadIO m => m ()

-- | Usage: <tt><a>glTextureBuffer</a> texture internalformat buffer</tt>
glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glTextureBufferRange</a> texture internalformat buffer
--   offset size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glTextureParameterIiv</a> texture pname params</tt>
glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTextureParameterIuiv</a> texture pname params</tt>
glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glTextureParameterf</a> texture pname param</tt>
glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()

-- | Usage: <tt><a>glTextureParameterfv</a> texture pname param</tt>
glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glTextureParameteri</a> texture pname param</tt>
glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()

-- | Usage: <tt><a>glTextureParameteriv</a> texture pname param</tt>
glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()

-- | Usage: <tt><a>glTextureStorage1D</a> texture levels internalformat
--   width</tt>
glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage2D</a> texture levels internalformat
--   width height</tt>
glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage2DMultisample</a> texture samples
--   internalformat width height fixedsamplelocations</tt>
glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureStorage3D</a> texture levels internalformat
--   width height depth</tt>
glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()

-- | Usage: <tt><a>glTextureStorage3DMultisample</a> texture samples
--   internalformat width height depth fixedsamplelocations</tt>
glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()

-- | Usage: <tt><a>glTextureSubImage1D</a> texture level xoffset width
--   format type pixels</tt>
glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTextureSubImage2D</a> texture level xoffset yoffset
--   width height format type pixels</tt>
glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTextureSubImage3D</a> texture level xoffset yoffset
--   zoffset width height depth format type pixels</tt>
glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()

-- | Usage: <tt><a>glTransformFeedbackBufferBase</a> xfb index buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferBase.xhtml</a>
glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glTransformFeedbackBufferRange</a> xfb index buffer
--   offset size</tt>
--   
--   The parameter <tt>size</tt> is a <tt>BufferSize</tt>.
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferRange.xhtml</a>
glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()

-- | Usage: <tt><a>glUnmapNamedBuffer</a> buffer</tt>
glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean

-- | Usage: <tt><a>glVertexArrayAttribBinding</a> vaobj attribindex
--   bindingindex</tt>
glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayAttribFormat</a> vaobj attribindex size
--   type normalized relativeoffset</tt>
glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayAttribIFormat</a> vaobj attribindex size
--   type relativeoffset</tt>
glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayAttribLFormat</a> vaobj attribindex size
--   type relativeoffset</tt>
glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayBindingDivisor</a> vaobj bindingindex
--   divisor</tt>
glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayElementBuffer</a> vaobj buffer</tt>
--   
--   Manual page:
--   <a>https://www.opengl.org/sdk/docs/man/html/glVertexArrayElementBuffer.xhtml</a>
glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()

-- | Usage: <tt><a>glVertexArrayVertexBuffer</a> vaobj bindingindex buffer
--   offset stride</tt>
glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()

-- | Usage: <tt><a>glVertexArrayVertexBuffers</a> vaobj first count buffers
--   offsets strides</tt>
glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()

module Graphics.GL.Compatibility45

-- | Usage: <tt><a>glGetnColorTable</a> target format type bufSize
--   table</tt>
glGetnColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnConvolutionFilter</a> target format type bufSize
--   image</tt>
glGetnConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnHistogram</a> target reset format type bufSize
--   values</tt>
glGetnHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnMapdv</a> target query bufSize v</tt>
glGetnMapdv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()

-- | Usage: <tt><a>glGetnMapfv</a> target query bufSize v</tt>
glGetnMapfv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnMapiv</a> target query bufSize v</tt>
glGetnMapiv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()

-- | Usage: <tt><a>glGetnMinmax</a> target reset format type bufSize
--   values</tt>
glGetnMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()

-- | Usage: <tt><a>glGetnPixelMapfv</a> map bufSize values</tt>
glGetnPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()

-- | Usage: <tt><a>glGetnPixelMapuiv</a> map bufSize values</tt>
glGetnPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()

-- | Usage: <tt><a>glGetnPixelMapusv</a> map bufSize values</tt>
glGetnPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()

-- | Usage: <tt><a>glGetnPolygonStipple</a> bufSize pattern</tt>
glGetnPolygonStipple :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()

-- | Usage: <tt><a>glGetnSeparableFilter</a> target format type rowBufSize
--   row columnBufSize column span</tt>
glGetnSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()


module Graphics.GL
