-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Internal.Shared where

import Control.Monad.IO.Class
import Foreign.Ptr
import Graphics.GL.Types
import Graphics.GL.Internal.FFI
import Graphics.GL.Internal.Proc
import System.IO.Unsafe

-- | Usage: @'glAccum' op value@
--
-- The parameter @op@ is a @AccumOp@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM', 'Graphics.GL.Internal.Shared.GL_LOAD', 'Graphics.GL.Internal.Shared.GL_RETURN', 'Graphics.GL.Internal.Shared.GL_MULT', 'Graphics.GL.Internal.Shared.GL_ADD'.
--
-- The parameter @value@ is a @CoordF@.


glAccum :: MonadIO m => GLenum -> GLfloat -> m ()
glAccum :: GLenum -> GLfloat -> m ()
glAccum = FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
ffienumfloatIOV FunPtr (GLenum -> GLfloat -> IO ())
glAccumFunPtr

glAccumFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glAccumFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glAccumFunPtr = IO (FunPtr (GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glAccum")

{-# NOINLINE glAccumFunPtr #-}

-- | Usage: @'glAlphaFunc' func ref@
--
-- The parameter @func@ is a @AlphaFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.


glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()
glAlphaFunc :: GLenum -> GLfloat -> m ()
glAlphaFunc = FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
ffienumfloatIOV FunPtr (GLenum -> GLfloat -> IO ())
glAlphaFuncFunPtr

glAlphaFuncFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glAlphaFuncFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glAlphaFuncFunPtr = IO (FunPtr (GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glAlphaFunc")

{-# NOINLINE glAlphaFuncFunPtr #-}

-- | Usage: @'glAreTexturesResident' n textures residences@
--
-- The parameter @textures@ is a @Texture@.
--
-- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
--
-- The length of @textures@ should be @n@.
--
-- The length of @residences@ should be @n@.


glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
glAreTexturesResident :: GLsizei -> Ptr GLenum -> Ptr GLboolean -> m GLboolean
glAreTexturesResident = FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
-> GLsizei -> Ptr GLenum -> Ptr GLboolean -> m GLboolean
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
-> GLsizei -> Ptr GLenum -> Ptr GLboolean -> m GLboolean
ffisizeiPtruintPtrbooleanIOboolean FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
glAreTexturesResidentFunPtr

glAreTexturesResidentFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
glAreTexturesResidentFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
glAreTexturesResidentFunPtr = IO
  (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
-> FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean)
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLsizei -> Ptr GLenum -> Ptr GLboolean -> IO GLboolean))
forall a. String -> IO (FunPtr a)
getProcAddress "glAreTexturesResident")

{-# NOINLINE glAreTexturesResidentFunPtr #-}

-- | Usage: @'glArrayElement' i@


glArrayElement :: MonadIO m => GLint -> m ()
glArrayElement :: GLsizei -> m ()
glArrayElement = FunPtr (GLsizei -> IO ()) -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> IO ()) -> GLsizei -> m ()
ffiintIOV FunPtr (GLsizei -> IO ())
glArrayElementFunPtr

glArrayElementFunPtr :: FunPtr (GLint -> IO ())
glArrayElementFunPtr :: FunPtr (GLsizei -> IO ())
glArrayElementFunPtr = IO (FunPtr (GLsizei -> IO ())) -> FunPtr (GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glArrayElement")

{-# NOINLINE glArrayElementFunPtr #-}

-- | Usage: @'glBegin' mode@
--
-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.


glBegin :: MonadIO m => GLenum -> m ()
glBegin :: GLenum -> m ()
glBegin = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffienumIOV FunPtr (GLenum -> IO ())
glBeginFunPtr

glBeginFunPtr :: FunPtr (GLenum -> IO ())
glBeginFunPtr :: FunPtr (GLenum -> IO ())
glBeginFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glBegin")

{-# NOINLINE glBeginFunPtr #-}

-- | Usage: @'glBitmap' width height xorig yorig xmove ymove bitmap@
--
-- The parameter @xorig@ is a @CoordF@.
--
-- The parameter @yorig@ is a @CoordF@.
--
-- The parameter @xmove@ is a @CoordF@.
--
-- The parameter @ymove@ is a @CoordF@.
--
-- The length of @bitmap@ should be @COMPSIZE(width,height)@.


glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
glBitmap :: GLsizei
-> GLsizei
-> GLfloat
-> GLfloat
-> GLfloat
-> GLfloat
-> Ptr GLboolean
-> m ()
glBitmap = FunPtr
  (GLsizei
   -> GLsizei
   -> GLfloat
   -> GLfloat
   -> GLfloat
   -> GLfloat
   -> Ptr GLboolean
   -> IO ())
-> GLsizei
-> GLsizei
-> GLfloat
-> GLfloat
-> GLfloat
-> GLfloat
-> Ptr GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLsizei
   -> GLsizei
   -> GLfloat
   -> GLfloat
   -> GLfloat
   -> GLfloat
   -> Ptr GLboolean
   -> IO ())
-> GLsizei
-> GLsizei
-> GLfloat
-> GLfloat
-> GLfloat
-> GLfloat
-> Ptr GLboolean
-> m ()
ffisizeisizeifloatfloatfloatfloatPtrubyteIOV FunPtr
  (GLsizei
   -> GLsizei
   -> GLfloat
   -> GLfloat
   -> GLfloat
   -> GLfloat
   -> Ptr GLboolean
   -> IO ())
glBitmapFunPtr

glBitmapFunPtr :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())
glBitmapFunPtr :: FunPtr
  (GLsizei
   -> GLsizei
   -> GLfloat
   -> GLfloat
   -> GLfloat
   -> GLfloat
   -> Ptr GLboolean
   -> IO ())
glBitmapFunPtr = IO
  (FunPtr
     (GLsizei
      -> GLsizei
      -> GLfloat
      -> GLfloat
      -> GLfloat
      -> GLfloat
      -> Ptr GLboolean
      -> IO ()))
-> FunPtr
     (GLsizei
      -> GLsizei
      -> GLfloat
      -> GLfloat
      -> GLfloat
      -> GLfloat
      -> Ptr GLboolean
      -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLsizei
         -> GLsizei
         -> GLfloat
         -> GLfloat
         -> GLfloat
         -> GLfloat
         -> Ptr GLboolean
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glBitmap")

{-# NOINLINE glBitmapFunPtr #-}

-- | Usage: @'glCallList' list@
--
-- The parameter @list@ is a @List@.


glCallList :: MonadIO m => GLuint -> m ()
glCallList :: GLenum -> m ()
glCallList = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffiuintIOV FunPtr (GLenum -> IO ())
glCallListFunPtr

glCallListFunPtr :: FunPtr (GLuint -> IO ())
glCallListFunPtr :: FunPtr (GLenum -> IO ())
glCallListFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glCallList")

{-# NOINLINE glCallListFunPtr #-}

-- | Usage: @'glCallLists' n type lists@
--
-- The parameter @type@ is a @ListNameType@, one of: 'Graphics.GL.Internal.Shared.GL_2_BYTES', 'Graphics.GL.Internal.Shared.GL_3_BYTES', 'Graphics.GL.Internal.Shared.GL_4_BYTES', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
--
-- The length of @lists@ should be @COMPSIZE(n,type)@.


glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr () -> m ()
glCallLists :: GLsizei -> GLenum -> Ptr () -> m ()
glCallLists = FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
-> GLsizei -> GLenum -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
-> GLsizei -> GLenum -> Ptr () -> m ()
ffisizeienumPtrVIOV FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
glCallListsFunPtr

glCallListsFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
glCallListsFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
glCallListsFunPtr = IO (FunPtr (GLsizei -> GLenum -> Ptr () -> IO ()))
-> FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> GLenum -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glCallLists")

{-# NOINLINE glCallListsFunPtr #-}

-- | Usage: @'glClearAccum' red green blue alpha@


glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glClearAccum :: GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glClearAccum = FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffifloatfloatfloatfloatIOV FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glClearAccumFunPtr

glClearAccumFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glClearAccumFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glClearAccumFunPtr = IO (FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glClearAccum")

{-# NOINLINE glClearAccumFunPtr #-}

-- | Usage: @'glClearIndex' c@
--
-- The parameter @c@ is a @MaskedColorIndexValueF@.


glClearIndex :: MonadIO m => GLfloat -> m ()
glClearIndex :: GLfloat -> m ()
glClearIndex = FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
ffifloatIOV FunPtr (GLfloat -> IO ())
glClearIndexFunPtr

glClearIndexFunPtr :: FunPtr (GLfloat -> IO ())
glClearIndexFunPtr :: FunPtr (GLfloat -> IO ())
glClearIndexFunPtr = IO (FunPtr (GLfloat -> IO ())) -> FunPtr (GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glClearIndex")

{-# NOINLINE glClearIndexFunPtr #-}

-- | Usage: @'glClientActiveTexture' texture@
--
-- The parameter @texture@ is a @TextureUnit@.


glClientActiveTexture :: MonadIO m => GLenum -> m ()
glClientActiveTexture :: GLenum -> m ()
glClientActiveTexture = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffienumIOV FunPtr (GLenum -> IO ())
glClientActiveTextureFunPtr

glClientActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
glClientActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
glClientActiveTextureFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glClientActiveTexture")

{-# NOINLINE glClientActiveTextureFunPtr #-}

-- | Usage: @'glClipPlane' plane equation@
--
-- The parameter @plane@ is a @ClipPlaneName@, one of: 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE0', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE1', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE2', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE3', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE4', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE5', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE6', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE7', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5'.
--
-- The length of @equation@ should be @4@.


glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glClipPlane :: GLenum -> Ptr GLdouble -> m ()
glClipPlane = FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
ffienumPtrdoubleIOV FunPtr (GLenum -> Ptr GLdouble -> IO ())
glClipPlaneFunPtr

glClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glClipPlaneFunPtr = IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
-> FunPtr (GLenum -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glClipPlane")

{-# NOINLINE glClipPlaneFunPtr #-}

-- | Usage: @'glColor3b' red green blue@
--
-- The parameter @red@ is a @ColorB@.
--
-- The parameter @green@ is a @ColorB@.
--
-- The parameter @blue@ is a @ColorB@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3bv'.


glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glColor3b :: GLbyte -> GLbyte -> GLbyte -> m ()
glColor3b = FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
ffibytebytebyteIOV FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glColor3bFunPtr

glColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glColor3bFunPtr = IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3b")

{-# NOINLINE glColor3bFunPtr #-}

-- | Usage: @'glColor3bv' v@
--
-- The parameter @v@ is a @ColorB@.
--
-- The length of @v@ should be @3@.


glColor3bv :: MonadIO m => Ptr GLbyte -> m ()
glColor3bv :: Ptr GLbyte -> m ()
glColor3bv = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glColor3bvFunPtr

glColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glColor3bvFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3bv")

{-# NOINLINE glColor3bvFunPtr #-}

-- | Usage: @'glColor3d' red green blue@
--
-- The parameter @red@ is a @ColorD@.
--
-- The parameter @green@ is a @ColorD@.
--
-- The parameter @blue@ is a @ColorD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3dv'.


glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glColor3d :: GLdouble -> GLdouble -> GLdouble -> m ()
glColor3d = FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> GLdouble -> m ()
ffidoubledoubledoubleIOV FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
glColor3dFunPtr

glColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
glColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
glColor3dFunPtr = IO (FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3d")

{-# NOINLINE glColor3dFunPtr #-}

-- | Usage: @'glColor3dv' v@
--
-- The parameter @v@ is a @ColorD@.
--
-- The length of @v@ should be @3@.


glColor3dv :: MonadIO m => Ptr GLdouble -> m ()
glColor3dv :: Ptr GLdouble -> m ()
glColor3dv = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glColor3dvFunPtr

glColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glColor3dvFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3dv")

{-# NOINLINE glColor3dvFunPtr #-}

-- | Usage: @'glColor3f' red green blue@
--
-- The parameter @red@ is a @ColorF@.
--
-- The parameter @green@ is a @ColorF@.
--
-- The parameter @blue@ is a @ColorF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3fv'.


glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glColor3f :: GLfloat -> GLfloat -> GLfloat -> m ()
glColor3f = FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLfloat -> GLfloat -> GLfloat -> m ()
ffifloatfloatfloatIOV FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
glColor3fFunPtr

glColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
glColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
glColor3fFunPtr = IO (FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3f")

{-# NOINLINE glColor3fFunPtr #-}

-- | Usage: @'glColor3fv' v@
--
-- The parameter @v@ is a @ColorF@.
--
-- The length of @v@ should be @3@.


glColor3fv :: MonadIO m => Ptr GLfloat -> m ()
glColor3fv :: Ptr GLfloat -> m ()
glColor3fv = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glColor3fvFunPtr

glColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glColor3fvFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3fv")

{-# NOINLINE glColor3fvFunPtr #-}

-- | Usage: @'glColor3i' red green blue@
--
-- The parameter @red@ is a @ColorI@.
--
-- The parameter @green@ is a @ColorI@.
--
-- The parameter @blue@ is a @ColorI@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3iv'.


glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
glColor3i :: GLsizei -> GLsizei -> GLsizei -> m ()
glColor3i = FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> m ()
ffiintintintIOV FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
glColor3iFunPtr

glColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
glColor3iFunPtr :: FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
glColor3iFunPtr = IO (FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3i")

{-# NOINLINE glColor3iFunPtr #-}

-- | Usage: @'glColor3iv' v@
--
-- The parameter @v@ is a @ColorI@.
--
-- The length of @v@ should be @3@.


glColor3iv :: MonadIO m => Ptr GLint -> m ()
glColor3iv :: Ptr GLsizei -> m ()
glColor3iv = FunPtr (Ptr GLsizei -> IO ()) -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLsizei -> IO ()) -> Ptr GLsizei -> m ()
ffiPtrintIOV FunPtr (Ptr GLsizei -> IO ())
glColor3ivFunPtr

glColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
glColor3ivFunPtr :: FunPtr (Ptr GLsizei -> IO ())
glColor3ivFunPtr = IO (FunPtr (Ptr GLsizei -> IO ())) -> FunPtr (Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3iv")

{-# NOINLINE glColor3ivFunPtr #-}

-- | Usage: @'glColor3s' red green blue@
--
-- The parameter @red@ is a @ColorS@.
--
-- The parameter @green@ is a @ColorS@.
--
-- The parameter @blue@ is a @ColorS@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3sv'.


glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glColor3s :: GLshort -> GLshort -> GLshort -> m ()
glColor3s = FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-> GLshort -> GLshort -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-> GLshort -> GLshort -> GLshort -> m ()
ffishortshortshortIOV FunPtr (GLshort -> GLshort -> GLshort -> IO ())
glColor3sFunPtr

glColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
glColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
glColor3sFunPtr = IO (FunPtr (GLshort -> GLshort -> GLshort -> IO ()))
-> FunPtr (GLshort -> GLshort -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLshort -> GLshort -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3s")

{-# NOINLINE glColor3sFunPtr #-}

-- | Usage: @'glColor3sv' v@
--
-- The parameter @v@ is a @ColorS@.
--
-- The length of @v@ should be @3@.


glColor3sv :: MonadIO m => Ptr GLshort -> m ()
glColor3sv :: Ptr GLshort -> m ()
glColor3sv = FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
ffiPtrshortIOV FunPtr (Ptr GLshort -> IO ())
glColor3svFunPtr

glColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
glColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
glColor3svFunPtr = IO (FunPtr (Ptr GLshort -> IO ())) -> FunPtr (Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3sv")

{-# NOINLINE glColor3svFunPtr #-}

-- | Usage: @'glColor3ub' red green blue@
--
-- The parameter @red@ is a @ColorUB@.
--
-- The parameter @green@ is a @ColorUB@.
--
-- The parameter @blue@ is a @ColorUB@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3ubv'.


glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
glColor3ub :: GLboolean -> GLboolean -> GLboolean -> m ()
glColor3ub = FunPtr (GLboolean -> GLboolean -> GLboolean -> IO ())
-> GLboolean -> GLboolean -> GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLboolean -> GLboolean -> GLboolean -> IO ())
-> GLboolean -> GLboolean -> GLboolean -> m ()
ffiubyteubyteubyteIOV FunPtr (GLboolean -> GLboolean -> GLboolean -> IO ())
glColor3ubFunPtr

glColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
glColor3ubFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> IO ())
glColor3ubFunPtr = IO (FunPtr (GLboolean -> GLboolean -> GLboolean -> IO ()))
-> FunPtr (GLboolean -> GLboolean -> GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLboolean -> GLboolean -> GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3ub")

{-# NOINLINE glColor3ubFunPtr #-}

-- | Usage: @'glColor3ubv' v@
--
-- The parameter @v@ is a @ColorUB@.
--
-- The length of @v@ should be @3@.


glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
glColor3ubv :: Ptr GLboolean -> m ()
glColor3ubv = FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
ffiPtrubyteIOV FunPtr (Ptr GLboolean -> IO ())
glColor3ubvFunPtr

glColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glColor3ubvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
glColor3ubvFunPtr = IO (FunPtr (Ptr GLboolean -> IO ()))
-> FunPtr (Ptr GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3ubv")

{-# NOINLINE glColor3ubvFunPtr #-}

-- | Usage: @'glColor3ui' red green blue@
--
-- The parameter @red@ is a @ColorUI@.
--
-- The parameter @green@ is a @ColorUI@.
--
-- The parameter @blue@ is a @ColorUI@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3uiv'.


glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glColor3ui :: GLenum -> GLenum -> GLenum -> m ()
glColor3ui = FunPtr (GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> m ()
ffiuintuintuintIOV FunPtr (GLenum -> GLenum -> GLenum -> IO ())
glColor3uiFunPtr

glColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glColor3uiFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
glColor3uiFunPtr = IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3ui")

{-# NOINLINE glColor3uiFunPtr #-}

-- | Usage: @'glColor3uiv' v@
--
-- The parameter @v@ is a @ColorUI@.
--
-- The length of @v@ should be @3@.


glColor3uiv :: MonadIO m => Ptr GLuint -> m ()
glColor3uiv :: Ptr GLenum -> m ()
glColor3uiv = FunPtr (Ptr GLenum -> IO ()) -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLenum -> IO ()) -> Ptr GLenum -> m ()
ffiPtruintIOV FunPtr (Ptr GLenum -> IO ())
glColor3uivFunPtr

glColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
glColor3uivFunPtr :: FunPtr (Ptr GLenum -> IO ())
glColor3uivFunPtr = IO (FunPtr (Ptr GLenum -> IO ())) -> FunPtr (Ptr GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3uiv")

{-# NOINLINE glColor3uivFunPtr #-}

-- | Usage: @'glColor3us' red green blue@
--
-- The parameter @red@ is a @ColorUS@.
--
-- The parameter @green@ is a @ColorUS@.
--
-- The parameter @blue@ is a @ColorUS@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3usv'.


glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
glColor3us :: GLushort -> GLushort -> GLushort -> m ()
glColor3us = FunPtr (GLushort -> GLushort -> GLushort -> IO ())
-> GLushort -> GLushort -> GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLushort -> GLushort -> GLushort -> IO ())
-> GLushort -> GLushort -> GLushort -> m ()
ffiushortushortushortIOV FunPtr (GLushort -> GLushort -> GLushort -> IO ())
glColor3usFunPtr

glColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
glColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
glColor3usFunPtr = IO (FunPtr (GLushort -> GLushort -> GLushort -> IO ()))
-> FunPtr (GLushort -> GLushort -> GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLushort -> GLushort -> GLushort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3us")

{-# NOINLINE glColor3usFunPtr #-}

-- | Usage: @'glColor3usv' v@
--
-- The parameter @v@ is a @ColorUS@.
--
-- The length of @v@ should be @3@.


glColor3usv :: MonadIO m => Ptr GLushort -> m ()
glColor3usv :: Ptr GLushort -> m ()
glColor3usv = FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
ffiPtrushortIOV FunPtr (Ptr GLushort -> IO ())
glColor3usvFunPtr

glColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
glColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
glColor3usvFunPtr = IO (FunPtr (Ptr GLushort -> IO ()))
-> FunPtr (Ptr GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLushort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor3usv")

{-# NOINLINE glColor3usvFunPtr #-}

-- | Usage: @'glColor4b' red green blue alpha@
--
-- The parameter @red@ is a @ColorB@.
--
-- The parameter @green@ is a @ColorB@.
--
-- The parameter @blue@ is a @ColorB@.
--
-- The parameter @alpha@ is a @ColorB@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4bv'.


glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glColor4b :: GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
glColor4b = FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
ffibytebytebytebyteIOV FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glColor4bFunPtr

glColor4bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glColor4bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
glColor4bFunPtr = IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4b")

{-# NOINLINE glColor4bFunPtr #-}

-- | Usage: @'glColor4bv' v@
--
-- The parameter @v@ is a @ColorB@.
--
-- The length of @v@ should be @4@.


glColor4bv :: MonadIO m => Ptr GLbyte -> m ()
glColor4bv :: Ptr GLbyte -> m ()
glColor4bv = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glColor4bvFunPtr

glColor4bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glColor4bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glColor4bvFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4bv")

{-# NOINLINE glColor4bvFunPtr #-}

-- | Usage: @'glColor4d' red green blue alpha@
--
-- The parameter @red@ is a @ColorD@.
--
-- The parameter @green@ is a @ColorD@.
--
-- The parameter @blue@ is a @ColorD@.
--
-- The parameter @alpha@ is a @ColorD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4dv'.


glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glColor4d :: GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glColor4d = FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffidoubledoubledoubledoubleIOV FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glColor4dFunPtr

glColor4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glColor4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glColor4dFunPtr = IO (FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4d")

{-# NOINLINE glColor4dFunPtr #-}

-- | Usage: @'glColor4dv' v@
--
-- The parameter @v@ is a @ColorD@.
--
-- The length of @v@ should be @4@.


glColor4dv :: MonadIO m => Ptr GLdouble -> m ()
glColor4dv :: Ptr GLdouble -> m ()
glColor4dv = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glColor4dvFunPtr

glColor4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glColor4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glColor4dvFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4dv")

{-# NOINLINE glColor4dvFunPtr #-}

-- | Usage: @'glColor4f' red green blue alpha@
--
-- The parameter @red@ is a @ColorF@.
--
-- The parameter @green@ is a @ColorF@.
--
-- The parameter @blue@ is a @ColorF@.
--
-- The parameter @alpha@ is a @ColorF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4fv'.


glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor4f :: GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glColor4f = FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffifloatfloatfloatfloatIOV FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glColor4fFunPtr

glColor4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glColor4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glColor4fFunPtr = IO (FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4f")

{-# NOINLINE glColor4fFunPtr #-}

-- | Usage: @'glColor4fv' v@
--
-- The parameter @v@ is a @ColorF@.
--
-- The length of @v@ should be @4@.


glColor4fv :: MonadIO m => Ptr GLfloat -> m ()
glColor4fv :: Ptr GLfloat -> m ()
glColor4fv = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glColor4fvFunPtr

glColor4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glColor4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glColor4fvFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4fv")

{-# NOINLINE glColor4fvFunPtr #-}

-- | Usage: @'glColor4i' red green blue alpha@
--
-- The parameter @red@ is a @ColorI@.
--
-- The parameter @green@ is a @ColorI@.
--
-- The parameter @blue@ is a @ColorI@.
--
-- The parameter @alpha@ is a @ColorI@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4iv'.


glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glColor4i :: GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
glColor4i = FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
ffiintintintintIOV FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glColor4iFunPtr

glColor4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
glColor4iFunPtr :: FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glColor4iFunPtr = IO (FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4i")

{-# NOINLINE glColor4iFunPtr #-}

-- | Usage: @'glColor4iv' v@
--
-- The parameter @v@ is a @ColorI@.
--
-- The length of @v@ should be @4@.


glColor4iv :: MonadIO m => Ptr GLint -> m ()
glColor4iv :: Ptr GLsizei -> m ()
glColor4iv = FunPtr (Ptr GLsizei -> IO ()) -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLsizei -> IO ()) -> Ptr GLsizei -> m ()
ffiPtrintIOV FunPtr (Ptr GLsizei -> IO ())
glColor4ivFunPtr

glColor4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
glColor4ivFunPtr :: FunPtr (Ptr GLsizei -> IO ())
glColor4ivFunPtr = IO (FunPtr (Ptr GLsizei -> IO ())) -> FunPtr (Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4iv")

{-# NOINLINE glColor4ivFunPtr #-}

-- | Usage: @'glColor4s' red green blue alpha@
--
-- The parameter @red@ is a @ColorS@.
--
-- The parameter @green@ is a @ColorS@.
--
-- The parameter @blue@ is a @ColorS@.
--
-- The parameter @alpha@ is a @ColorS@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4sv'.


glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
glColor4s :: GLshort -> GLshort -> GLshort -> GLshort -> m ()
glColor4s = FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-> GLshort -> GLshort -> GLshort -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-> GLshort -> GLshort -> GLshort -> GLshort -> m ()
ffishortshortshortshortIOV FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
glColor4sFunPtr

glColor4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
glColor4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
glColor4sFunPtr = IO (FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ()))
-> FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4s")

{-# NOINLINE glColor4sFunPtr #-}

-- | Usage: @'glColor4sv' v@
--
-- The parameter @v@ is a @ColorS@.
--
-- The length of @v@ should be @4@.


glColor4sv :: MonadIO m => Ptr GLshort -> m ()
glColor4sv :: Ptr GLshort -> m ()
glColor4sv = FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
ffiPtrshortIOV FunPtr (Ptr GLshort -> IO ())
glColor4svFunPtr

glColor4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
glColor4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
glColor4svFunPtr = IO (FunPtr (Ptr GLshort -> IO ())) -> FunPtr (Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4sv")

{-# NOINLINE glColor4svFunPtr #-}

-- | Usage: @'glColor4ub' red green blue alpha@
--
-- The parameter @red@ is a @ColorUB@.
--
-- The parameter @green@ is a @ColorUB@.
--
-- The parameter @blue@ is a @ColorUB@.
--
-- The parameter @alpha@ is a @ColorUB@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4ubv'.


glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
glColor4ub :: GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
glColor4ub = FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
ffiubyteubyteubyteubyteIOV FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
glColor4ubFunPtr

glColor4ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
glColor4ubFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
glColor4ubFunPtr = IO
  (FunPtr
     (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()))
-> FunPtr
     (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4ub")

{-# NOINLINE glColor4ubFunPtr #-}

-- | Usage: @'glColor4ubv' v@
--
-- The parameter @v@ is a @ColorUB@.
--
-- The length of @v@ should be @4@.


glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()
glColor4ubv :: Ptr GLboolean -> m ()
glColor4ubv = FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
ffiPtrubyteIOV FunPtr (Ptr GLboolean -> IO ())
glColor4ubvFunPtr

glColor4ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glColor4ubvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
glColor4ubvFunPtr = IO (FunPtr (Ptr GLboolean -> IO ()))
-> FunPtr (Ptr GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4ubv")

{-# NOINLINE glColor4ubvFunPtr #-}

-- | Usage: @'glColor4ui' red green blue alpha@
--
-- The parameter @red@ is a @ColorUI@.
--
-- The parameter @green@ is a @ColorUI@.
--
-- The parameter @blue@ is a @ColorUI@.
--
-- The parameter @alpha@ is a @ColorUI@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4uiv'.


glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
glColor4ui :: GLenum -> GLenum -> GLenum -> GLenum -> m ()
glColor4ui = FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffiuintuintuintuintIOV FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glColor4uiFunPtr

glColor4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glColor4uiFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glColor4uiFunPtr = IO (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4ui")

{-# NOINLINE glColor4uiFunPtr #-}

-- | Usage: @'glColor4uiv' v@
--
-- The parameter @v@ is a @ColorUI@.
--
-- The length of @v@ should be @4@.


glColor4uiv :: MonadIO m => Ptr GLuint -> m ()
glColor4uiv :: Ptr GLenum -> m ()
glColor4uiv = FunPtr (Ptr GLenum -> IO ()) -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLenum -> IO ()) -> Ptr GLenum -> m ()
ffiPtruintIOV FunPtr (Ptr GLenum -> IO ())
glColor4uivFunPtr

glColor4uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
glColor4uivFunPtr :: FunPtr (Ptr GLenum -> IO ())
glColor4uivFunPtr = IO (FunPtr (Ptr GLenum -> IO ())) -> FunPtr (Ptr GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4uiv")

{-# NOINLINE glColor4uivFunPtr #-}

-- | Usage: @'glColor4us' red green blue alpha@
--
-- The parameter @red@ is a @ColorUS@.
--
-- The parameter @green@ is a @ColorUS@.
--
-- The parameter @blue@ is a @ColorUS@.
--
-- The parameter @alpha@ is a @ColorUS@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4usv'.


glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()
glColor4us :: GLushort -> GLushort -> GLushort -> GLushort -> m ()
glColor4us = FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
-> GLushort -> GLushort -> GLushort -> GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
-> GLushort -> GLushort -> GLushort -> GLushort -> m ()
ffiushortushortushortushortIOV FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
glColor4usFunPtr

glColor4usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
glColor4usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
glColor4usFunPtr = IO (FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ()))
-> FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4us")

{-# NOINLINE glColor4usFunPtr #-}

-- | Usage: @'glColor4usv' v@
--
-- The parameter @v@ is a @ColorUS@.
--
-- The length of @v@ should be @4@.


glColor4usv :: MonadIO m => Ptr GLushort -> m ()
glColor4usv :: Ptr GLushort -> m ()
glColor4usv = FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
ffiPtrushortIOV FunPtr (Ptr GLushort -> IO ())
glColor4usvFunPtr

glColor4usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
glColor4usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
glColor4usvFunPtr = IO (FunPtr (Ptr GLushort -> IO ()))
-> FunPtr (Ptr GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLushort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColor4usv")

{-# NOINLINE glColor4usvFunPtr #-}

-- | Usage: @'glColorMaterial' face mode@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @mode@ is a @ColorMaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.


glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
glColorMaterial :: GLenum -> GLenum -> m ()
glColorMaterial = FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
ffienumenumIOV FunPtr (GLenum -> GLenum -> IO ())
glColorMaterialFunPtr

glColorMaterialFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glColorMaterialFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glColorMaterialFunPtr = IO (FunPtr (GLenum -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColorMaterial")

{-# NOINLINE glColorMaterialFunPtr #-}

-- | Usage: @'glColorPointer' size type stride pointer@
--
-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
--
-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.


glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glColorPointer :: GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
glColorPointer = FunPtr (GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
ffiintenumsizeiPtrVIOV FunPtr (GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
glColorPointerFunPtr

glColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
glColorPointerFunPtr :: FunPtr (GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
glColorPointerFunPtr = IO (FunPtr (GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr (GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glColorPointer")

{-# NOINLINE glColorPointerFunPtr #-}

-- | Usage: @'glCopyPixels' x y width height type@
--
-- The parameter @x@ is a @WinCoord@.
--
-- The parameter @y@ is a @WinCoord@.
--
-- The parameter @type@ is a @PixelCopyType@, one of: 'Graphics.GL.Internal.Shared.GL_COLOR', 'Graphics.GL.Ext.EXT.DiscardFramebuffer.GL_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DEPTH', 'Graphics.GL.Ext.EXT.DiscardFramebuffer.GL_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_STENCIL', 'Graphics.GL.Ext.EXT.DiscardFramebuffer.GL_STENCIL_EXT'.


glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
glCopyPixels :: GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> m ()
glCopyPixels = FunPtr
  (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> m ()
ffiintintsizeisizeienumIOV FunPtr
  (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> IO ())
glCopyPixelsFunPtr

glCopyPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())
glCopyPixelsFunPtr :: FunPtr
  (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> IO ())
glCopyPixelsFunPtr = IO
  (FunPtr
     (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> IO ()))
-> FunPtr
     (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glCopyPixels")

{-# NOINLINE glCopyPixelsFunPtr #-}

-- | Usage: @'glDeleteLists' list range@
--
-- The parameter @list@ is a @List@.


glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()
glDeleteLists :: GLenum -> GLsizei -> m ()
glDeleteLists = FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
ffiuintsizeiIOV FunPtr (GLenum -> GLsizei -> IO ())
glDeleteListsFunPtr

glDeleteListsFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
glDeleteListsFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
glDeleteListsFunPtr = IO (FunPtr (GLenum -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glDeleteLists")

{-# NOINLINE glDeleteListsFunPtr #-}

-- | Usage: @'glDisableClientState' array@
--
-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.


glDisableClientState :: MonadIO m => GLenum -> m ()
glDisableClientState :: GLenum -> m ()
glDisableClientState = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffienumIOV FunPtr (GLenum -> IO ())
glDisableClientStateFunPtr

glDisableClientStateFunPtr :: FunPtr (GLenum -> IO ())
glDisableClientStateFunPtr :: FunPtr (GLenum -> IO ())
glDisableClientStateFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glDisableClientState")

{-# NOINLINE glDisableClientStateFunPtr #-}

-- | Usage: @'glDrawPixels' width height format type pixels@
--
-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
--
-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
--
-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.


glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glDrawPixels :: GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glDrawPixels = FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
ffisizeisizeienumenumPtrVIOV FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
glDrawPixelsFunPtr

glDrawPixelsFunPtr :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
glDrawPixelsFunPtr :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
glDrawPixelsFunPtr = IO
  (FunPtr
     (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()))
-> FunPtr
     (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glDrawPixels")

{-# NOINLINE glDrawPixelsFunPtr #-}

-- | Usage: @'glEdgeFlag' flag@
--
-- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEdgeFlagv'.


glEdgeFlag :: MonadIO m => GLboolean -> m ()
glEdgeFlag :: GLboolean -> m ()
glEdgeFlag = FunPtr (GLboolean -> IO ()) -> GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLboolean -> IO ()) -> GLboolean -> m ()
ffibooleanIOV FunPtr (GLboolean -> IO ())
glEdgeFlagFunPtr

glEdgeFlagFunPtr :: FunPtr (GLboolean -> IO ())
glEdgeFlagFunPtr :: FunPtr (GLboolean -> IO ())
glEdgeFlagFunPtr = IO (FunPtr (GLboolean -> IO ())) -> FunPtr (GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEdgeFlag")

{-# NOINLINE glEdgeFlagFunPtr #-}

-- | Usage: @'glEdgeFlagPointer' stride pointer@
--
-- The length of @pointer@ should be @COMPSIZE(stride)@.


glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr () -> m ()
glEdgeFlagPointer :: GLsizei -> Ptr () -> m ()
glEdgeFlagPointer = FunPtr (GLsizei -> Ptr () -> IO ()) -> GLsizei -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr () -> IO ()) -> GLsizei -> Ptr () -> m ()
ffisizeiPtrVIOV FunPtr (GLsizei -> Ptr () -> IO ())
glEdgeFlagPointerFunPtr

glEdgeFlagPointerFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
glEdgeFlagPointerFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
glEdgeFlagPointerFunPtr = IO (FunPtr (GLsizei -> Ptr () -> IO ()))
-> FunPtr (GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEdgeFlagPointer")

{-# NOINLINE glEdgeFlagPointerFunPtr #-}

-- | Usage: @'glEdgeFlagv' flag@
--
-- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
--
-- The length of @flag@ should be @1@.


glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()
glEdgeFlagv :: Ptr GLboolean -> m ()
glEdgeFlagv = FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
ffiPtrbooleanIOV FunPtr (Ptr GLboolean -> IO ())
glEdgeFlagvFunPtr

glEdgeFlagvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
glEdgeFlagvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
glEdgeFlagvFunPtr = IO (FunPtr (Ptr GLboolean -> IO ()))
-> FunPtr (Ptr GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEdgeFlagv")

{-# NOINLINE glEdgeFlagvFunPtr #-}

-- | Usage: @'glEnableClientState' array@
--
-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.


glEnableClientState :: MonadIO m => GLenum -> m ()
glEnableClientState :: GLenum -> m ()
glEnableClientState = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffienumIOV FunPtr (GLenum -> IO ())
glEnableClientStateFunPtr

glEnableClientStateFunPtr :: FunPtr (GLenum -> IO ())
glEnableClientStateFunPtr :: FunPtr (GLenum -> IO ())
glEnableClientStateFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEnableClientState")

{-# NOINLINE glEnableClientStateFunPtr #-}

-- | Usage: @'glEnd'@


glEnd :: MonadIO m => m ()
glEnd :: m ()
glEnd = FunPtr (IO ()) -> m ()
forall (m :: * -> *). MonadIO m => FunPtr (IO ()) -> m ()
ffiIOV FunPtr (IO ())
glEndFunPtr

glEndFunPtr :: FunPtr (IO ())
glEndFunPtr :: FunPtr (IO ())
glEndFunPtr = IO (FunPtr (IO ())) -> FunPtr (IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEnd")

{-# NOINLINE glEndFunPtr #-}

-- | Usage: @'glEndList'@


glEndList :: MonadIO m => m ()
glEndList :: m ()
glEndList = FunPtr (IO ()) -> m ()
forall (m :: * -> *). MonadIO m => FunPtr (IO ()) -> m ()
ffiIOV FunPtr (IO ())
glEndListFunPtr

glEndListFunPtr :: FunPtr (IO ())
glEndListFunPtr :: FunPtr (IO ())
glEndListFunPtr = IO (FunPtr (IO ())) -> FunPtr (IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEndList")

{-# NOINLINE glEndListFunPtr #-}

-- | Usage: @'glEvalCoord1d' u@
--
-- The parameter @u@ is a @CoordD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord1dv'.


glEvalCoord1d :: MonadIO m => GLdouble -> m ()
glEvalCoord1d :: GLdouble -> m ()
glEvalCoord1d = FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
ffidoubleIOV FunPtr (GLdouble -> IO ())
glEvalCoord1dFunPtr

glEvalCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
glEvalCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
glEvalCoord1dFunPtr = IO (FunPtr (GLdouble -> IO ())) -> FunPtr (GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalCoord1d")

{-# NOINLINE glEvalCoord1dFunPtr #-}

-- | Usage: @'glEvalCoord1dv' u@
--
-- The parameter @u@ is a @CoordD@.
--
-- The length of @u@ should be @1@.


glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
glEvalCoord1dv :: Ptr GLdouble -> m ()
glEvalCoord1dv = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glEvalCoord1dvFunPtr

glEvalCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glEvalCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glEvalCoord1dvFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalCoord1dv")

{-# NOINLINE glEvalCoord1dvFunPtr #-}

-- | Usage: @'glEvalCoord1f' u@
--
-- The parameter @u@ is a @CoordF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord1fv'.


glEvalCoord1f :: MonadIO m => GLfloat -> m ()
glEvalCoord1f :: GLfloat -> m ()
glEvalCoord1f = FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
ffifloatIOV FunPtr (GLfloat -> IO ())
glEvalCoord1fFunPtr

glEvalCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
glEvalCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
glEvalCoord1fFunPtr = IO (FunPtr (GLfloat -> IO ())) -> FunPtr (GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalCoord1f")

{-# NOINLINE glEvalCoord1fFunPtr #-}

-- | Usage: @'glEvalCoord1fv' u@
--
-- The parameter @u@ is a @CoordF@.
--
-- The length of @u@ should be @1@.


glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
glEvalCoord1fv :: Ptr GLfloat -> m ()
glEvalCoord1fv = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glEvalCoord1fvFunPtr

glEvalCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glEvalCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glEvalCoord1fvFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalCoord1fv")

{-# NOINLINE glEvalCoord1fvFunPtr #-}

-- | Usage: @'glEvalCoord2d' u v@
--
-- The parameter @u@ is a @CoordD@.
--
-- The parameter @v@ is a @CoordD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord2dv'.


glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
glEvalCoord2d :: GLdouble -> GLdouble -> m ()
glEvalCoord2d = FunPtr (GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> m ()
ffidoubledoubleIOV FunPtr (GLdouble -> GLdouble -> IO ())
glEvalCoord2dFunPtr

glEvalCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
glEvalCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
glEvalCoord2dFunPtr = IO (FunPtr (GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalCoord2d")

{-# NOINLINE glEvalCoord2dFunPtr #-}

-- | Usage: @'glEvalCoord2dv' u@
--
-- The parameter @u@ is a @CoordD@.
--
-- The length of @u@ should be @2@.


glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
glEvalCoord2dv :: Ptr GLdouble -> m ()
glEvalCoord2dv = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glEvalCoord2dvFunPtr

glEvalCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glEvalCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glEvalCoord2dvFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalCoord2dv")

{-# NOINLINE glEvalCoord2dvFunPtr #-}

-- | Usage: @'glEvalCoord2f' u v@
--
-- The parameter @u@ is a @CoordF@.
--
-- The parameter @v@ is a @CoordF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord2fv'.


glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
glEvalCoord2f :: GLfloat -> GLfloat -> m ()
glEvalCoord2f = FunPtr (GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> m ()
ffifloatfloatIOV FunPtr (GLfloat -> GLfloat -> IO ())
glEvalCoord2fFunPtr

glEvalCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
glEvalCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
glEvalCoord2fFunPtr = IO (FunPtr (GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalCoord2f")

{-# NOINLINE glEvalCoord2fFunPtr #-}

-- | Usage: @'glEvalCoord2fv' u@
--
-- The parameter @u@ is a @CoordF@.
--
-- The length of @u@ should be @2@.


glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
glEvalCoord2fv :: Ptr GLfloat -> m ()
glEvalCoord2fv = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glEvalCoord2fvFunPtr

glEvalCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glEvalCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glEvalCoord2fvFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalCoord2fv")

{-# NOINLINE glEvalCoord2fvFunPtr #-}

-- | Usage: @'glEvalMesh1' mode i1 i2@
--
-- The parameter @mode@ is a @MeshMode1@, one of: 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
--
-- The parameter @i1@ is a @CheckedInt32@.
--
-- The parameter @i2@ is a @CheckedInt32@.


glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()
glEvalMesh1 :: GLenum -> GLsizei -> GLsizei -> m ()
glEvalMesh1 = FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> m ()
ffienumintintIOV FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
glEvalMesh1FunPtr

glEvalMesh1FunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
glEvalMesh1FunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
glEvalMesh1FunPtr = IO (FunPtr (GLenum -> GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalMesh1")

{-# NOINLINE glEvalMesh1FunPtr #-}

-- | Usage: @'glEvalMesh2' mode i1 i2 j1 j2@
--
-- The parameter @mode@ is a @MeshMode2@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
--
-- The parameter @i1@ is a @CheckedInt32@.
--
-- The parameter @i2@ is a @CheckedInt32@.
--
-- The parameter @j1@ is a @CheckedInt32@.
--
-- The parameter @j2@ is a @CheckedInt32@.


glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
glEvalMesh2 :: GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
glEvalMesh2 = FunPtr
  (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
ffienumintintintintIOV FunPtr
  (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glEvalMesh2FunPtr

glEvalMesh2FunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
glEvalMesh2FunPtr :: FunPtr
  (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glEvalMesh2FunPtr = IO
  (FunPtr
     (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
-> FunPtr
     (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalMesh2")

{-# NOINLINE glEvalMesh2FunPtr #-}

-- | Usage: @'glEvalPoint1' i@


glEvalPoint1 :: MonadIO m => GLint -> m ()
glEvalPoint1 :: GLsizei -> m ()
glEvalPoint1 = FunPtr (GLsizei -> IO ()) -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> IO ()) -> GLsizei -> m ()
ffiintIOV FunPtr (GLsizei -> IO ())
glEvalPoint1FunPtr

glEvalPoint1FunPtr :: FunPtr (GLint -> IO ())
glEvalPoint1FunPtr :: FunPtr (GLsizei -> IO ())
glEvalPoint1FunPtr = IO (FunPtr (GLsizei -> IO ())) -> FunPtr (GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalPoint1")

{-# NOINLINE glEvalPoint1FunPtr #-}

-- | Usage: @'glEvalPoint2' i j@
--
-- The parameter @i@ is a @CheckedInt32@.
--
-- The parameter @j@ is a @CheckedInt32@.


glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()
glEvalPoint2 :: GLsizei -> GLsizei -> m ()
glEvalPoint2 = FunPtr (GLsizei -> GLsizei -> IO ()) -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> IO ()) -> GLsizei -> GLsizei -> m ()
ffiintintIOV FunPtr (GLsizei -> GLsizei -> IO ())
glEvalPoint2FunPtr

glEvalPoint2FunPtr :: FunPtr (GLint -> GLint -> IO ())
glEvalPoint2FunPtr :: FunPtr (GLsizei -> GLsizei -> IO ())
glEvalPoint2FunPtr = IO (FunPtr (GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glEvalPoint2")

{-# NOINLINE glEvalPoint2FunPtr #-}

-- | Usage: @'glFeedbackBuffer' size type buffer@
--
-- The parameter @type@ is a @FeedbackType@, one of: 'Graphics.GL.Internal.Shared.GL_2D', 'Graphics.GL.Internal.Shared.GL_3D', 'Graphics.GL.Internal.Shared.GL_3D_COLOR', 'Graphics.GL.Internal.Shared.GL_3D_COLOR_TEXTURE', 'Graphics.GL.Internal.Shared.GL_4D_COLOR_TEXTURE'.
--
-- The parameter @buffer@ is a @FeedbackElement@.
--
-- The length of @buffer@ should be @size@.


glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()
glFeedbackBuffer :: GLsizei -> GLenum -> Ptr GLfloat -> m ()
glFeedbackBuffer = FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
-> GLsizei -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
-> GLsizei -> GLenum -> Ptr GLfloat -> m ()
ffisizeienumPtrfloatIOV FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
glFeedbackBufferFunPtr

glFeedbackBufferFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
glFeedbackBufferFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
glFeedbackBufferFunPtr = IO (FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFeedbackBuffer")

{-# NOINLINE glFeedbackBufferFunPtr #-}

-- | Usage: @'glFogCoordPointer' type stride pointer@
--
-- The parameter @type@ is a @FogPointerTypeEXT@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
--
-- The length of @pointer@ should be @COMPSIZE(type,stride)@.


glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glFogCoordPointer :: GLenum -> GLsizei -> Ptr () -> m ()
glFogCoordPointer = FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
ffienumsizeiPtrVIOV FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glFogCoordPointerFunPtr

glFogCoordPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glFogCoordPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glFogCoordPointerFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFogCoordPointer")

{-# NOINLINE glFogCoordPointerFunPtr #-}

-- | Usage: @'glFogCoordd' coord@
--
-- The parameter @coord@ is a @CoordD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glFogCoorddv'.


glFogCoordd :: MonadIO m => GLdouble -> m ()
glFogCoordd :: GLdouble -> m ()
glFogCoordd = FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
ffidoubleIOV FunPtr (GLdouble -> IO ())
glFogCoorddFunPtr

glFogCoorddFunPtr :: FunPtr (GLdouble -> IO ())
glFogCoorddFunPtr :: FunPtr (GLdouble -> IO ())
glFogCoorddFunPtr = IO (FunPtr (GLdouble -> IO ())) -> FunPtr (GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFogCoordd")

{-# NOINLINE glFogCoorddFunPtr #-}

-- | Usage: @'glFogCoorddv' coord@
--
-- The parameter @coord@ is a @CoordD@.
--
-- The length of @coord@ should be @1@.


glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()
glFogCoorddv :: Ptr GLdouble -> m ()
glFogCoorddv = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glFogCoorddvFunPtr

glFogCoorddvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glFogCoorddvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glFogCoorddvFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFogCoorddv")

{-# NOINLINE glFogCoorddvFunPtr #-}

-- | Usage: @'glFogCoordf' coord@
--
-- The parameter @coord@ is a @CoordF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glFogCoordfv'.


glFogCoordf :: MonadIO m => GLfloat -> m ()
glFogCoordf :: GLfloat -> m ()
glFogCoordf = FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
ffifloatIOV FunPtr (GLfloat -> IO ())
glFogCoordfFunPtr

glFogCoordfFunPtr :: FunPtr (GLfloat -> IO ())
glFogCoordfFunPtr :: FunPtr (GLfloat -> IO ())
glFogCoordfFunPtr = IO (FunPtr (GLfloat -> IO ())) -> FunPtr (GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFogCoordf")

{-# NOINLINE glFogCoordfFunPtr #-}

-- | Usage: @'glFogCoordfv' coord@
--
-- The parameter @coord@ is a @CoordF@.
--
-- The length of @coord@ should be @1@.


glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()
glFogCoordfv :: Ptr GLfloat -> m ()
glFogCoordfv = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glFogCoordfvFunPtr

glFogCoordfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glFogCoordfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glFogCoordfvFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFogCoordfv")

{-# NOINLINE glFogCoordfvFunPtr #-}

-- | Usage: @'glFogf' pname param@
--
-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
--
-- The parameter @param@ is a @CheckedFloat32@.


glFogf :: MonadIO m => GLenum -> GLfloat -> m ()
glFogf :: GLenum -> GLfloat -> m ()
glFogf = FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
ffienumfloatIOV FunPtr (GLenum -> GLfloat -> IO ())
glFogfFunPtr

glFogfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glFogfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glFogfFunPtr = IO (FunPtr (GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFogf")

{-# NOINLINE glFogfFunPtr #-}

-- | Usage: @'glFogfv' pname params@
--
-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
--
-- The parameter @params@ is a @CheckedFloat32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glFogfv :: GLenum -> Ptr GLfloat -> m ()
glFogfv = FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
ffienumPtrfloatIOV FunPtr (GLenum -> Ptr GLfloat -> IO ())
glFogfvFunPtr

glFogfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glFogfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glFogfvFunPtr = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFogfv")

{-# NOINLINE glFogfvFunPtr #-}

-- | Usage: @'glFogi' pname param@
--
-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
--
-- The parameter @param@ is a @CheckedInt32@.


glFogi :: MonadIO m => GLenum -> GLint -> m ()
glFogi :: GLenum -> GLsizei -> m ()
glFogi = FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
ffienumintIOV FunPtr (GLenum -> GLsizei -> IO ())
glFogiFunPtr

glFogiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glFogiFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
glFogiFunPtr = IO (FunPtr (GLenum -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFogi")

{-# NOINLINE glFogiFunPtr #-}

-- | Usage: @'glFogiv' pname params@
--
-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
--
-- The parameter @params@ is a @CheckedInt32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glFogiv :: GLenum -> Ptr GLsizei -> m ()
glFogiv = FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
ffienumPtrintIOV FunPtr (GLenum -> Ptr GLsizei -> IO ())
glFogivFunPtr

glFogivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
glFogivFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> IO ())
glFogivFunPtr = IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFogiv")

{-# NOINLINE glFogivFunPtr #-}

-- | Usage: @'glFrustum' left right bottom top zNear zFar@


glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glFrustum :: GLdouble
-> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glFrustum = FunPtr
  (GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> IO ())
-> GLdouble
-> GLdouble
-> GLdouble
-> GLdouble
-> GLdouble
-> GLdouble
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> IO ())
-> GLdouble
-> GLdouble
-> GLdouble
-> GLdouble
-> GLdouble
-> GLdouble
-> m ()
ffidoubledoubledoubledoubledoubledoubleIOV FunPtr
  (GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> IO ())
glFrustumFunPtr

glFrustumFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glFrustumFunPtr :: FunPtr
  (GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> GLdouble
   -> IO ())
glFrustumFunPtr = IO
  (FunPtr
     (GLdouble
      -> GLdouble
      -> GLdouble
      -> GLdouble
      -> GLdouble
      -> GLdouble
      -> IO ()))
-> FunPtr
     (GLdouble
      -> GLdouble
      -> GLdouble
      -> GLdouble
      -> GLdouble
      -> GLdouble
      -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLdouble
         -> GLdouble
         -> GLdouble
         -> GLdouble
         -> GLdouble
         -> GLdouble
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glFrustum")

{-# NOINLINE glFrustumFunPtr #-}

-- | Usage: @'glGenLists' range@


glGenLists :: MonadIO m => GLsizei -> m GLuint
glGenLists :: GLsizei -> m GLenum
glGenLists = FunPtr (GLsizei -> IO GLenum) -> GLsizei -> m GLenum
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> IO GLenum) -> GLsizei -> m GLenum
ffisizeiIOuint FunPtr (GLsizei -> IO GLenum)
glGenListsFunPtr

glGenListsFunPtr :: FunPtr (GLsizei -> IO GLuint)
glGenListsFunPtr :: FunPtr (GLsizei -> IO GLenum)
glGenListsFunPtr = IO (FunPtr (GLsizei -> IO GLenum)) -> FunPtr (GLsizei -> IO GLenum)
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> IO GLenum))
forall a. String -> IO (FunPtr a)
getProcAddress "glGenLists")

{-# NOINLINE glGenListsFunPtr #-}

-- | Usage: @'glGetClipPlane' plane equation@
--
-- The parameter @plane@ is a @ClipPlaneName@, one of: 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE0', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE1', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE2', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE3', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE4', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE5', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE6', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE7', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5'.
--
-- The length of @equation@ should be @4@.


glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glGetClipPlane :: GLenum -> Ptr GLdouble -> m ()
glGetClipPlane = FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
ffienumPtrdoubleIOV FunPtr (GLenum -> Ptr GLdouble -> IO ())
glGetClipPlaneFunPtr

glGetClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glGetClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glGetClipPlaneFunPtr = IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
-> FunPtr (GLenum -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetClipPlane")

{-# NOINLINE glGetClipPlaneFunPtr #-}

-- | Usage: @'glGetLightfv' light pname params@
--
-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
--
-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetLightfv :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetLightfv = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetLightfvFunPtr

glGetLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetLightfvFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetLightfv")

{-# NOINLINE glGetLightfvFunPtr #-}

-- | Usage: @'glGetLightiv' light pname params@
--
-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
--
-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetLightiv :: GLenum -> GLenum -> Ptr GLsizei -> m ()
glGetLightiv = FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetLightivFunPtr

glGetLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetLightivFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetLightiv")

{-# NOINLINE glGetLightivFunPtr #-}

-- | Usage: @'glGetMapdv' target query v@
--
-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
--
-- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Internal.Shared.GL_COEFF', 'Graphics.GL.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Internal.Shared.GL_ORDER'.
--
-- The length of @v@ should be @COMPSIZE(target,query)@.


glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
glGetMapdv :: GLenum -> GLenum -> Ptr GLdouble -> m ()
glGetMapdv = FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> GLenum -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> GLenum -> Ptr GLdouble -> m ()
ffienumenumPtrdoubleIOV FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
glGetMapdvFunPtr

glGetMapdvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
glGetMapdvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
glGetMapdvFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetMapdv")

{-# NOINLINE glGetMapdvFunPtr #-}

-- | Usage: @'glGetMapfv' target query v@
--
-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
--
-- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Internal.Shared.GL_COEFF', 'Graphics.GL.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Internal.Shared.GL_ORDER'.
--
-- The length of @v@ should be @COMPSIZE(target,query)@.


glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMapfv :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMapfv = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetMapfvFunPtr

glGetMapfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetMapfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetMapfvFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetMapfv")

{-# NOINLINE glGetMapfvFunPtr #-}

-- | Usage: @'glGetMapiv' target query v@
--
-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
--
-- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Internal.Shared.GL_COEFF', 'Graphics.GL.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Internal.Shared.GL_ORDER'.
--
-- The length of @v@ should be @COMPSIZE(target,query)@.


glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMapiv :: GLenum -> GLenum -> Ptr GLsizei -> m ()
glGetMapiv = FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetMapivFunPtr

glGetMapivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetMapivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetMapivFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetMapiv")

{-# NOINLINE glGetMapivFunPtr #-}

-- | Usage: @'glGetMaterialfv' face pname params@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMaterialfv :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMaterialfv = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetMaterialfvFunPtr

glGetMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetMaterialfvFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetMaterialfv")

{-# NOINLINE glGetMaterialfvFunPtr #-}

-- | Usage: @'glGetMaterialiv' face pname params@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMaterialiv :: GLenum -> GLenum -> Ptr GLsizei -> m ()
glGetMaterialiv = FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetMaterialivFunPtr

glGetMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetMaterialivFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetMaterialiv")

{-# NOINLINE glGetMaterialivFunPtr #-}

-- | Usage: @'glGetPixelMapfv' map values@
--
-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
--
-- The length of @values@ should be @COMPSIZE(map)@.


glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glGetPixelMapfv :: GLenum -> Ptr GLfloat -> m ()
glGetPixelMapfv = FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
ffienumPtrfloatIOV FunPtr (GLenum -> Ptr GLfloat -> IO ())
glGetPixelMapfvFunPtr

glGetPixelMapfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glGetPixelMapfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glGetPixelMapfvFunPtr = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetPixelMapfv")

{-# NOINLINE glGetPixelMapfvFunPtr #-}

-- | Usage: @'glGetPixelMapuiv' map values@
--
-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
--
-- The length of @values@ should be @COMPSIZE(map)@.


glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
glGetPixelMapuiv :: GLenum -> Ptr GLenum -> m ()
glGetPixelMapuiv = FunPtr (GLenum -> Ptr GLenum -> IO ())
-> GLenum -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLenum -> IO ())
-> GLenum -> Ptr GLenum -> m ()
ffienumPtruintIOV FunPtr (GLenum -> Ptr GLenum -> IO ())
glGetPixelMapuivFunPtr

glGetPixelMapuivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
glGetPixelMapuivFunPtr :: FunPtr (GLenum -> Ptr GLenum -> IO ())
glGetPixelMapuivFunPtr = IO (FunPtr (GLenum -> Ptr GLenum -> IO ()))
-> FunPtr (GLenum -> Ptr GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetPixelMapuiv")

{-# NOINLINE glGetPixelMapuivFunPtr #-}

-- | Usage: @'glGetPixelMapusv' map values@
--
-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
--
-- The length of @values@ should be @COMPSIZE(map)@.


glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()
glGetPixelMapusv :: GLenum -> Ptr GLushort -> m ()
glGetPixelMapusv = FunPtr (GLenum -> Ptr GLushort -> IO ())
-> GLenum -> Ptr GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLushort -> IO ())
-> GLenum -> Ptr GLushort -> m ()
ffienumPtrushortIOV FunPtr (GLenum -> Ptr GLushort -> IO ())
glGetPixelMapusvFunPtr

glGetPixelMapusvFunPtr :: FunPtr (GLenum -> Ptr GLushort -> IO ())
glGetPixelMapusvFunPtr :: FunPtr (GLenum -> Ptr GLushort -> IO ())
glGetPixelMapusvFunPtr = IO (FunPtr (GLenum -> Ptr GLushort -> IO ()))
-> FunPtr (GLenum -> Ptr GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLushort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetPixelMapusv")

{-# NOINLINE glGetPixelMapusvFunPtr #-}

-- | Usage: @'glGetPointerv' pname params@
--
-- The parameter @pname@ is a @GetPointervPName@, one of: 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_POINTER_EXT', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_BUFFER_POINTER_SGIX', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_POINTER_EXT'.
--
-- The length of @params@ should be @1@.
--
-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml>


glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
glGetPointerv :: GLenum -> Ptr (Ptr ()) -> m ()
glGetPointerv = FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-> GLenum -> Ptr (Ptr ()) -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-> GLenum -> Ptr (Ptr ()) -> m ()
ffienumPtrPtrVIOV FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glGetPointervFunPtr

glGetPointervFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glGetPointervFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glGetPointervFunPtr = IO (FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()))
-> FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetPointerv")

{-# NOINLINE glGetPointervFunPtr #-}

-- | Usage: @'glGetPolygonStipple' mask@
--
-- The length of @mask@ should be @COMPSIZE()@.


glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
glGetPolygonStipple :: Ptr GLboolean -> m ()
glGetPolygonStipple = FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
ffiPtrubyteIOV FunPtr (Ptr GLboolean -> IO ())
glGetPolygonStippleFunPtr

glGetPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glGetPolygonStippleFunPtr :: FunPtr (Ptr GLboolean -> IO ())
glGetPolygonStippleFunPtr = IO (FunPtr (Ptr GLboolean -> IO ()))
-> FunPtr (Ptr GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetPolygonStipple")

{-# NOINLINE glGetPolygonStippleFunPtr #-}

-- | Usage: @'glGetTexEnvfv' target pname params@
--
-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
--
-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexEnvfv :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexEnvfv = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetTexEnvfvFunPtr

glGetTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetTexEnvfvFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetTexEnvfv")

{-# NOINLINE glGetTexEnvfvFunPtr #-}

-- | Usage: @'glGetTexEnviv' target pname params@
--
-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
--
-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexEnviv :: GLenum -> GLenum -> Ptr GLsizei -> m ()
glGetTexEnviv = FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetTexEnvivFunPtr

glGetTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetTexEnvivFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetTexEnviv")

{-# NOINLINE glGetTexEnvivFunPtr #-}

-- | Usage: @'glGetTexGendv' coord pname params@
--
-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
--
-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
glGetTexGendv :: GLenum -> GLenum -> Ptr GLdouble -> m ()
glGetTexGendv = FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> GLenum -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> GLenum -> Ptr GLdouble -> m ()
ffienumenumPtrdoubleIOV FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
glGetTexGendvFunPtr

glGetTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
glGetTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
glGetTexGendvFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetTexGendv")

{-# NOINLINE glGetTexGendvFunPtr #-}

-- | Usage: @'glGetTexGenfv' coord pname params@
--
-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
--
-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexGenfv :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetTexGenfv = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetTexGenfvFunPtr

glGetTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetTexGenfvFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetTexGenfv")

{-# NOINLINE glGetTexGenfvFunPtr #-}

-- | Usage: @'glGetTexGeniv' coord pname params@
--
-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
--
-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetTexGeniv :: GLenum -> GLenum -> Ptr GLsizei -> m ()
glGetTexGeniv = FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetTexGenivFunPtr

glGetTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glGetTexGenivFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetTexGeniv")

{-# NOINLINE glGetTexGenivFunPtr #-}

-- | Usage: @'glIndexMask' mask@
--
-- The parameter @mask@ is a @MaskedColorIndexValueI@.


glIndexMask :: MonadIO m => GLuint -> m ()
glIndexMask :: GLenum -> m ()
glIndexMask = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffiuintIOV FunPtr (GLenum -> IO ())
glIndexMaskFunPtr

glIndexMaskFunPtr :: FunPtr (GLuint -> IO ())
glIndexMaskFunPtr :: FunPtr (GLenum -> IO ())
glIndexMaskFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexMask")

{-# NOINLINE glIndexMaskFunPtr #-}

-- | Usage: @'glIndexPointer' type stride pointer@
--
-- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
--
-- The length of @pointer@ should be @COMPSIZE(type,stride)@.


glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glIndexPointer :: GLenum -> GLsizei -> Ptr () -> m ()
glIndexPointer = FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
ffienumsizeiPtrVIOV FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glIndexPointerFunPtr

glIndexPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glIndexPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glIndexPointerFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexPointer")

{-# NOINLINE glIndexPointerFunPtr #-}

-- | Usage: @'glIndexd' c@
--
-- The parameter @c@ is a @ColorIndexValueD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexdv'.


glIndexd :: MonadIO m => GLdouble -> m ()
glIndexd :: GLdouble -> m ()
glIndexd = FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
ffidoubleIOV FunPtr (GLdouble -> IO ())
glIndexdFunPtr

glIndexdFunPtr :: FunPtr (GLdouble -> IO ())
glIndexdFunPtr :: FunPtr (GLdouble -> IO ())
glIndexdFunPtr = IO (FunPtr (GLdouble -> IO ())) -> FunPtr (GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexd")

{-# NOINLINE glIndexdFunPtr #-}

-- | Usage: @'glIndexdv' c@
--
-- The parameter @c@ is a @ColorIndexValueD@.
--
-- The length of @c@ should be @1@.


glIndexdv :: MonadIO m => Ptr GLdouble -> m ()
glIndexdv :: Ptr GLdouble -> m ()
glIndexdv = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glIndexdvFunPtr

glIndexdvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glIndexdvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glIndexdvFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexdv")

{-# NOINLINE glIndexdvFunPtr #-}

-- | Usage: @'glIndexf' c@
--
-- The parameter @c@ is a @ColorIndexValueF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexfv'.


glIndexf :: MonadIO m => GLfloat -> m ()
glIndexf :: GLfloat -> m ()
glIndexf = FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
ffifloatIOV FunPtr (GLfloat -> IO ())
glIndexfFunPtr

glIndexfFunPtr :: FunPtr (GLfloat -> IO ())
glIndexfFunPtr :: FunPtr (GLfloat -> IO ())
glIndexfFunPtr = IO (FunPtr (GLfloat -> IO ())) -> FunPtr (GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexf")

{-# NOINLINE glIndexfFunPtr #-}

-- | Usage: @'glIndexfv' c@
--
-- The parameter @c@ is a @ColorIndexValueF@.
--
-- The length of @c@ should be @1@.


glIndexfv :: MonadIO m => Ptr GLfloat -> m ()
glIndexfv :: Ptr GLfloat -> m ()
glIndexfv = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glIndexfvFunPtr

glIndexfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glIndexfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glIndexfvFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexfv")

{-# NOINLINE glIndexfvFunPtr #-}

-- | Usage: @'glIndexi' c@
--
-- The parameter @c@ is a @ColorIndexValueI@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexiv'.


glIndexi :: MonadIO m => GLint -> m ()
glIndexi :: GLsizei -> m ()
glIndexi = FunPtr (GLsizei -> IO ()) -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> IO ()) -> GLsizei -> m ()
ffiintIOV FunPtr (GLsizei -> IO ())
glIndexiFunPtr

glIndexiFunPtr :: FunPtr (GLint -> IO ())
glIndexiFunPtr :: FunPtr (GLsizei -> IO ())
glIndexiFunPtr = IO (FunPtr (GLsizei -> IO ())) -> FunPtr (GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexi")

{-# NOINLINE glIndexiFunPtr #-}

-- | Usage: @'glIndexiv' c@
--
-- The parameter @c@ is a @ColorIndexValueI@.
--
-- The length of @c@ should be @1@.


glIndexiv :: MonadIO m => Ptr GLint -> m ()
glIndexiv :: Ptr GLsizei -> m ()
glIndexiv = FunPtr (Ptr GLsizei -> IO ()) -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLsizei -> IO ()) -> Ptr GLsizei -> m ()
ffiPtrintIOV FunPtr (Ptr GLsizei -> IO ())
glIndexivFunPtr

glIndexivFunPtr :: FunPtr (Ptr GLint -> IO ())
glIndexivFunPtr :: FunPtr (Ptr GLsizei -> IO ())
glIndexivFunPtr = IO (FunPtr (Ptr GLsizei -> IO ())) -> FunPtr (Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexiv")

{-# NOINLINE glIndexivFunPtr #-}

-- | Usage: @'glIndexs' c@
--
-- The parameter @c@ is a @ColorIndexValueS@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexsv'.


glIndexs :: MonadIO m => GLshort -> m ()
glIndexs :: GLshort -> m ()
glIndexs = FunPtr (GLshort -> IO ()) -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLshort -> IO ()) -> GLshort -> m ()
ffishortIOV FunPtr (GLshort -> IO ())
glIndexsFunPtr

glIndexsFunPtr :: FunPtr (GLshort -> IO ())
glIndexsFunPtr :: FunPtr (GLshort -> IO ())
glIndexsFunPtr = IO (FunPtr (GLshort -> IO ())) -> FunPtr (GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexs")

{-# NOINLINE glIndexsFunPtr #-}

-- | Usage: @'glIndexsv' c@
--
-- The parameter @c@ is a @ColorIndexValueS@.
--
-- The length of @c@ should be @1@.


glIndexsv :: MonadIO m => Ptr GLshort -> m ()
glIndexsv :: Ptr GLshort -> m ()
glIndexsv = FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
ffiPtrshortIOV FunPtr (Ptr GLshort -> IO ())
glIndexsvFunPtr

glIndexsvFunPtr :: FunPtr (Ptr GLshort -> IO ())
glIndexsvFunPtr :: FunPtr (Ptr GLshort -> IO ())
glIndexsvFunPtr = IO (FunPtr (Ptr GLshort -> IO ())) -> FunPtr (Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexsv")

{-# NOINLINE glIndexsvFunPtr #-}

-- | Usage: @'glIndexub' c@
--
-- The parameter @c@ is a @ColorIndexValueUB@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexubv'.


glIndexub :: MonadIO m => GLubyte -> m ()
glIndexub :: GLboolean -> m ()
glIndexub = FunPtr (GLboolean -> IO ()) -> GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLboolean -> IO ()) -> GLboolean -> m ()
ffiubyteIOV FunPtr (GLboolean -> IO ())
glIndexubFunPtr

glIndexubFunPtr :: FunPtr (GLubyte -> IO ())
glIndexubFunPtr :: FunPtr (GLboolean -> IO ())
glIndexubFunPtr = IO (FunPtr (GLboolean -> IO ())) -> FunPtr (GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexub")

{-# NOINLINE glIndexubFunPtr #-}

-- | Usage: @'glIndexubv' c@
--
-- The parameter @c@ is a @ColorIndexValueUB@.
--
-- The length of @c@ should be @1@.


glIndexubv :: MonadIO m => Ptr GLubyte -> m ()
glIndexubv :: Ptr GLboolean -> m ()
glIndexubv = FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
ffiPtrubyteIOV FunPtr (Ptr GLboolean -> IO ())
glIndexubvFunPtr

glIndexubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glIndexubvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
glIndexubvFunPtr = IO (FunPtr (Ptr GLboolean -> IO ()))
-> FunPtr (Ptr GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glIndexubv")

{-# NOINLINE glIndexubvFunPtr #-}

-- | Usage: @'glInitNames'@


glInitNames :: MonadIO m => m ()
glInitNames :: m ()
glInitNames = FunPtr (IO ()) -> m ()
forall (m :: * -> *). MonadIO m => FunPtr (IO ()) -> m ()
ffiIOV FunPtr (IO ())
glInitNamesFunPtr

glInitNamesFunPtr :: FunPtr (IO ())
glInitNamesFunPtr :: FunPtr (IO ())
glInitNamesFunPtr = IO (FunPtr (IO ())) -> FunPtr (IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glInitNames")

{-# NOINLINE glInitNamesFunPtr #-}

-- | Usage: @'glInterleavedArrays' format stride pointer@
--
-- The parameter @format@ is a @InterleavedArrayFormat@, one of: 'Graphics.GL.Internal.Shared.GL_C3F_V3F', 'Graphics.GL.Internal.Shared.GL_C4F_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_C4UB_V2F', 'Graphics.GL.Internal.Shared.GL_C4UB_V3F', 'Graphics.GL.Internal.Shared.GL_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_C3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_C4F_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_C4UB_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_V3F', 'Graphics.GL.Internal.Shared.GL_T4F_C4F_N3F_V4F', 'Graphics.GL.Internal.Shared.GL_T4F_V4F', 'Graphics.GL.Internal.Shared.GL_V2F', 'Graphics.GL.Internal.Shared.GL_V3F'.
--
-- The length of @pointer@ should be @COMPSIZE(format,stride)@.


glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glInterleavedArrays :: GLenum -> GLsizei -> Ptr () -> m ()
glInterleavedArrays = FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
ffienumsizeiPtrVIOV FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glInterleavedArraysFunPtr

glInterleavedArraysFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glInterleavedArraysFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glInterleavedArraysFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glInterleavedArrays")

{-# NOINLINE glInterleavedArraysFunPtr #-}

-- | Usage: @'glIsList' list@
--
-- The parameter @list@ is a @List@.


glIsList :: MonadIO m => GLuint -> m GLboolean
glIsList :: GLenum -> m GLboolean
glIsList = FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
ffiuintIOboolean FunPtr (GLenum -> IO GLboolean)
glIsListFunPtr

glIsListFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsListFunPtr :: FunPtr (GLenum -> IO GLboolean)
glIsListFunPtr = IO (FunPtr (GLenum -> IO GLboolean))
-> FunPtr (GLenum -> IO GLboolean)
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO GLboolean))
forall a. String -> IO (FunPtr a)
getProcAddress "glIsList")

{-# NOINLINE glIsListFunPtr #-}

-- | Usage: @'glLightModelf' pname param@
--
-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.


glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()
glLightModelf :: GLenum -> GLfloat -> m ()
glLightModelf = FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
ffienumfloatIOV FunPtr (GLenum -> GLfloat -> IO ())
glLightModelfFunPtr

glLightModelfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glLightModelfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glLightModelfFunPtr = IO (FunPtr (GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLightModelf")

{-# NOINLINE glLightModelfFunPtr #-}

-- | Usage: @'glLightModelfv' pname params@
--
-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glLightModelfv :: GLenum -> Ptr GLfloat -> m ()
glLightModelfv = FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
ffienumPtrfloatIOV FunPtr (GLenum -> Ptr GLfloat -> IO ())
glLightModelfvFunPtr

glLightModelfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glLightModelfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glLightModelfvFunPtr = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLightModelfv")

{-# NOINLINE glLightModelfvFunPtr #-}

-- | Usage: @'glLightModeli' pname param@
--
-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.


glLightModeli :: MonadIO m => GLenum -> GLint -> m ()
glLightModeli :: GLenum -> GLsizei -> m ()
glLightModeli = FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
ffienumintIOV FunPtr (GLenum -> GLsizei -> IO ())
glLightModeliFunPtr

glLightModeliFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glLightModeliFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
glLightModeliFunPtr = IO (FunPtr (GLenum -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLightModeli")

{-# NOINLINE glLightModeliFunPtr #-}

-- | Usage: @'glLightModeliv' pname params@
--
-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glLightModeliv :: GLenum -> Ptr GLsizei -> m ()
glLightModeliv = FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
ffienumPtrintIOV FunPtr (GLenum -> Ptr GLsizei -> IO ())
glLightModelivFunPtr

glLightModelivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
glLightModelivFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> IO ())
glLightModelivFunPtr = IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLightModeliv")

{-# NOINLINE glLightModelivFunPtr #-}

-- | Usage: @'glLightf' light pname param@
--
-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
--
-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
--
-- The parameter @param@ is a @CheckedFloat32@.


glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glLightf :: GLenum -> GLenum -> GLfloat -> m ()
glLightf = FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
ffienumenumfloatIOV FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glLightfFunPtr

glLightfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glLightfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glLightfFunPtr = IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLightf")

{-# NOINLINE glLightfFunPtr #-}

-- | Usage: @'glLightfv' light pname params@
--
-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
--
-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
--
-- The parameter @params@ is a @CheckedFloat32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glLightfv :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glLightfv = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glLightfvFunPtr

glLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glLightfvFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLightfv")

{-# NOINLINE glLightfvFunPtr #-}

-- | Usage: @'glLighti' light pname param@
--
-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
--
-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
--
-- The parameter @param@ is a @CheckedInt32@.


glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glLighti :: GLenum -> GLenum -> GLsizei -> m ()
glLighti = FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLsizei -> m ()
ffienumenumintIOV FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
glLightiFunPtr

glLightiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glLightiFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
glLightiFunPtr = IO (FunPtr (GLenum -> GLenum -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLighti")

{-# NOINLINE glLightiFunPtr #-}

-- | Usage: @'glLightiv' light pname params@
--
-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
--
-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
--
-- The parameter @params@ is a @CheckedInt32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glLightiv :: GLenum -> GLenum -> Ptr GLsizei -> m ()
glLightiv = FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glLightivFunPtr

glLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glLightivFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLightiv")

{-# NOINLINE glLightivFunPtr #-}

-- | Usage: @'glLineStipple' factor pattern@
--
-- The parameter @factor@ is a @CheckedInt32@.
--
-- The parameter @pattern@ is a @LineStipple@.


glLineStipple :: MonadIO m => GLint -> GLushort -> m ()
glLineStipple :: GLsizei -> GLushort -> m ()
glLineStipple = FunPtr (GLsizei -> GLushort -> IO ())
-> GLsizei -> GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLushort -> IO ())
-> GLsizei -> GLushort -> m ()
ffiintushortIOV FunPtr (GLsizei -> GLushort -> IO ())
glLineStippleFunPtr

glLineStippleFunPtr :: FunPtr (GLint -> GLushort -> IO ())
glLineStippleFunPtr :: FunPtr (GLsizei -> GLushort -> IO ())
glLineStippleFunPtr = IO (FunPtr (GLsizei -> GLushort -> IO ()))
-> FunPtr (GLsizei -> GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> GLushort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLineStipple")

{-# NOINLINE glLineStippleFunPtr #-}

-- | Usage: @'glListBase' base@
--
-- The parameter @base@ is a @List@.


glListBase :: MonadIO m => GLuint -> m ()
glListBase :: GLenum -> m ()
glListBase = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffiuintIOV FunPtr (GLenum -> IO ())
glListBaseFunPtr

glListBaseFunPtr :: FunPtr (GLuint -> IO ())
glListBaseFunPtr :: FunPtr (GLenum -> IO ())
glListBaseFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glListBase")

{-# NOINLINE glListBaseFunPtr #-}

-- | Usage: @'glLoadIdentity'@


glLoadIdentity :: MonadIO m => m ()
glLoadIdentity :: m ()
glLoadIdentity = FunPtr (IO ()) -> m ()
forall (m :: * -> *). MonadIO m => FunPtr (IO ()) -> m ()
ffiIOV FunPtr (IO ())
glLoadIdentityFunPtr

glLoadIdentityFunPtr :: FunPtr (IO ())
glLoadIdentityFunPtr :: FunPtr (IO ())
glLoadIdentityFunPtr = IO (FunPtr (IO ())) -> FunPtr (IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLoadIdentity")

{-# NOINLINE glLoadIdentityFunPtr #-}

-- | Usage: @'glLoadMatrixd' m@
--
-- The length of @m@ should be @16@.


glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()
glLoadMatrixd :: Ptr GLdouble -> m ()
glLoadMatrixd = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glLoadMatrixdFunPtr

glLoadMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glLoadMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glLoadMatrixdFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLoadMatrixd")

{-# NOINLINE glLoadMatrixdFunPtr #-}

-- | Usage: @'glLoadMatrixf' m@
--
-- The length of @m@ should be @16@.


glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glLoadMatrixf :: Ptr GLfloat -> m ()
glLoadMatrixf = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glLoadMatrixfFunPtr

glLoadMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glLoadMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glLoadMatrixfFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLoadMatrixf")

{-# NOINLINE glLoadMatrixfFunPtr #-}

-- | Usage: @'glLoadName' name@
--
-- The parameter @name@ is a @SelectName@.


glLoadName :: MonadIO m => GLuint -> m ()
glLoadName :: GLenum -> m ()
glLoadName = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffiuintIOV FunPtr (GLenum -> IO ())
glLoadNameFunPtr

glLoadNameFunPtr :: FunPtr (GLuint -> IO ())
glLoadNameFunPtr :: FunPtr (GLenum -> IO ())
glLoadNameFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLoadName")

{-# NOINLINE glLoadNameFunPtr #-}

-- | Usage: @'glLoadTransposeMatrixd' m@
--
-- The length of @m@ should be @16@.


glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
glLoadTransposeMatrixd :: Ptr GLdouble -> m ()
glLoadTransposeMatrixd = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glLoadTransposeMatrixdFunPtr

glLoadTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glLoadTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glLoadTransposeMatrixdFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLoadTransposeMatrixd")

{-# NOINLINE glLoadTransposeMatrixdFunPtr #-}

-- | Usage: @'glLoadTransposeMatrixf' m@
--
-- The length of @m@ should be @16@.


glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glLoadTransposeMatrixf :: Ptr GLfloat -> m ()
glLoadTransposeMatrixf = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glLoadTransposeMatrixfFunPtr

glLoadTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glLoadTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glLoadTransposeMatrixfFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glLoadTransposeMatrixf")

{-# NOINLINE glLoadTransposeMatrixfFunPtr #-}

-- | Usage: @'glMap1d' target u1 u2 stride order points@
--
-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
--
-- The parameter @u1@ is a @CoordD@.
--
-- The parameter @u2@ is a @CoordD@.
--
-- The parameter @order@ is a @CheckedInt32@.
--
-- The parameter @points@ is a @CoordD@.
--
-- The length of @points@ should be @COMPSIZE(target,stride,order)@.


glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glMap1d :: GLenum
-> GLdouble
-> GLdouble
-> GLsizei
-> GLsizei
-> Ptr GLdouble
-> m ()
glMap1d = FunPtr
  (GLenum
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> Ptr GLdouble
   -> IO ())
-> GLenum
-> GLdouble
-> GLdouble
-> GLsizei
-> GLsizei
-> Ptr GLdouble
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> Ptr GLdouble
   -> IO ())
-> GLenum
-> GLdouble
-> GLdouble
-> GLsizei
-> GLsizei
-> Ptr GLdouble
-> m ()
ffienumdoubledoubleintintPtrdoubleIOV FunPtr
  (GLenum
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> Ptr GLdouble
   -> IO ())
glMap1dFunPtr

glMap1dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
glMap1dFunPtr :: FunPtr
  (GLenum
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> Ptr GLdouble
   -> IO ())
glMap1dFunPtr = IO
  (FunPtr
     (GLenum
      -> GLdouble
      -> GLdouble
      -> GLsizei
      -> GLsizei
      -> Ptr GLdouble
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLdouble
      -> GLdouble
      -> GLsizei
      -> GLsizei
      -> Ptr GLdouble
      -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum
         -> GLdouble
         -> GLdouble
         -> GLsizei
         -> GLsizei
         -> Ptr GLdouble
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMap1d")

{-# NOINLINE glMap1dFunPtr #-}

-- | Usage: @'glMap1f' target u1 u2 stride order points@
--
-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
--
-- The parameter @u1@ is a @CoordF@.
--
-- The parameter @u2@ is a @CoordF@.
--
-- The parameter @order@ is a @CheckedInt32@.
--
-- The parameter @points@ is a @CoordF@.
--
-- The length of @points@ should be @COMPSIZE(target,stride,order)@.


glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glMap1f :: GLenum
-> GLfloat -> GLfloat -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
glMap1f = FunPtr
  (GLenum
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> Ptr GLfloat
   -> IO ())
-> GLenum
-> GLfloat
-> GLfloat
-> GLsizei
-> GLsizei
-> Ptr GLfloat
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> Ptr GLfloat
   -> IO ())
-> GLenum
-> GLfloat
-> GLfloat
-> GLsizei
-> GLsizei
-> Ptr GLfloat
-> m ()
ffienumfloatfloatintintPtrfloatIOV FunPtr
  (GLenum
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> Ptr GLfloat
   -> IO ())
glMap1fFunPtr

glMap1fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
glMap1fFunPtr :: FunPtr
  (GLenum
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> Ptr GLfloat
   -> IO ())
glMap1fFunPtr = IO
  (FunPtr
     (GLenum
      -> GLfloat
      -> GLfloat
      -> GLsizei
      -> GLsizei
      -> Ptr GLfloat
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLfloat
      -> GLfloat
      -> GLsizei
      -> GLsizei
      -> Ptr GLfloat
      -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum
         -> GLfloat
         -> GLfloat
         -> GLsizei
         -> GLsizei
         -> Ptr GLfloat
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMap1f")

{-# NOINLINE glMap1fFunPtr #-}

-- | Usage: @'glMap2d' target u1 u2 ustride uorder v1 v2 vstride vorder points@
--
-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
--
-- The parameter @u1@ is a @CoordD@.
--
-- The parameter @u2@ is a @CoordD@.
--
-- The parameter @uorder@ is a @CheckedInt32@.
--
-- The parameter @v1@ is a @CoordD@.
--
-- The parameter @v2@ is a @CoordD@.
--
-- The parameter @vorder@ is a @CheckedInt32@.
--
-- The parameter @points@ is a @CoordD@.
--
-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder)@.


glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glMap2d :: GLenum
-> GLdouble
-> GLdouble
-> GLsizei
-> GLsizei
-> GLdouble
-> GLdouble
-> GLsizei
-> GLsizei
-> Ptr GLdouble
-> m ()
glMap2d = FunPtr
  (GLenum
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> Ptr GLdouble
   -> IO ())
-> GLenum
-> GLdouble
-> GLdouble
-> GLsizei
-> GLsizei
-> GLdouble
-> GLdouble
-> GLsizei
-> GLsizei
-> Ptr GLdouble
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> Ptr GLdouble
   -> IO ())
-> GLenum
-> GLdouble
-> GLdouble
-> GLsizei
-> GLsizei
-> GLdouble
-> GLdouble
-> GLsizei
-> GLsizei
-> Ptr GLdouble
-> m ()
ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV FunPtr
  (GLenum
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> Ptr GLdouble
   -> IO ())
glMap2dFunPtr

glMap2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
glMap2dFunPtr :: FunPtr
  (GLenum
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLsizei
   -> Ptr GLdouble
   -> IO ())
glMap2dFunPtr = IO
  (FunPtr
     (GLenum
      -> GLdouble
      -> GLdouble
      -> GLsizei
      -> GLsizei
      -> GLdouble
      -> GLdouble
      -> GLsizei
      -> GLsizei
      -> Ptr GLdouble
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLdouble
      -> GLdouble
      -> GLsizei
      -> GLsizei
      -> GLdouble
      -> GLdouble
      -> GLsizei
      -> GLsizei
      -> Ptr GLdouble
      -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum
         -> GLdouble
         -> GLdouble
         -> GLsizei
         -> GLsizei
         -> GLdouble
         -> GLdouble
         -> GLsizei
         -> GLsizei
         -> Ptr GLdouble
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMap2d")

{-# NOINLINE glMap2dFunPtr #-}

-- | Usage: @'glMap2f' target u1 u2 ustride uorder v1 v2 vstride vorder points@
--
-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
--
-- The parameter @u1@ is a @CoordF@.
--
-- The parameter @u2@ is a @CoordF@.
--
-- The parameter @uorder@ is a @CheckedInt32@.
--
-- The parameter @v1@ is a @CoordF@.
--
-- The parameter @v2@ is a @CoordF@.
--
-- The parameter @vorder@ is a @CheckedInt32@.
--
-- The parameter @points@ is a @CoordF@.
--
-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder)@.


glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glMap2f :: GLenum
-> GLfloat
-> GLfloat
-> GLsizei
-> GLsizei
-> GLfloat
-> GLfloat
-> GLsizei
-> GLsizei
-> Ptr GLfloat
-> m ()
glMap2f = FunPtr
  (GLenum
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> Ptr GLfloat
   -> IO ())
-> GLenum
-> GLfloat
-> GLfloat
-> GLsizei
-> GLsizei
-> GLfloat
-> GLfloat
-> GLsizei
-> GLsizei
-> Ptr GLfloat
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> Ptr GLfloat
   -> IO ())
-> GLenum
-> GLfloat
-> GLfloat
-> GLsizei
-> GLsizei
-> GLfloat
-> GLfloat
-> GLsizei
-> GLsizei
-> Ptr GLfloat
-> m ()
ffienumfloatfloatintintfloatfloatintintPtrfloatIOV FunPtr
  (GLenum
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> Ptr GLfloat
   -> IO ())
glMap2fFunPtr

glMap2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
glMap2fFunPtr :: FunPtr
  (GLenum
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> GLfloat
   -> GLfloat
   -> GLsizei
   -> GLsizei
   -> Ptr GLfloat
   -> IO ())
glMap2fFunPtr = IO
  (FunPtr
     (GLenum
      -> GLfloat
      -> GLfloat
      -> GLsizei
      -> GLsizei
      -> GLfloat
      -> GLfloat
      -> GLsizei
      -> GLsizei
      -> Ptr GLfloat
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLfloat
      -> GLfloat
      -> GLsizei
      -> GLsizei
      -> GLfloat
      -> GLfloat
      -> GLsizei
      -> GLsizei
      -> Ptr GLfloat
      -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum
         -> GLfloat
         -> GLfloat
         -> GLsizei
         -> GLsizei
         -> GLfloat
         -> GLfloat
         -> GLsizei
         -> GLsizei
         -> Ptr GLfloat
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMap2f")

{-# NOINLINE glMap2fFunPtr #-}

-- | Usage: @'glMapGrid1d' un u1 u2@
--
-- The parameter @u1@ is a @CoordD@.
--
-- The parameter @u2@ is a @CoordD@.


glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
glMapGrid1d :: GLsizei -> GLdouble -> GLdouble -> m ()
glMapGrid1d = FunPtr (GLsizei -> GLdouble -> GLdouble -> IO ())
-> GLsizei -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLdouble -> GLdouble -> IO ())
-> GLsizei -> GLdouble -> GLdouble -> m ()
ffiintdoubledoubleIOV FunPtr (GLsizei -> GLdouble -> GLdouble -> IO ())
glMapGrid1dFunPtr

glMapGrid1dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
glMapGrid1dFunPtr :: FunPtr (GLsizei -> GLdouble -> GLdouble -> IO ())
glMapGrid1dFunPtr = IO (FunPtr (GLsizei -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLsizei -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMapGrid1d")

{-# NOINLINE glMapGrid1dFunPtr #-}

-- | Usage: @'glMapGrid1f' un u1 u2@
--
-- The parameter @u1@ is a @CoordF@.
--
-- The parameter @u2@ is a @CoordF@.


glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
glMapGrid1f :: GLsizei -> GLfloat -> GLfloat -> m ()
glMapGrid1f = FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
-> GLsizei -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
-> GLsizei -> GLfloat -> GLfloat -> m ()
ffiintfloatfloatIOV FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
glMapGrid1fFunPtr

glMapGrid1fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
glMapGrid1fFunPtr :: FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
glMapGrid1fFunPtr = IO (FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMapGrid1f")

{-# NOINLINE glMapGrid1fFunPtr #-}

-- | Usage: @'glMapGrid2d' un u1 u2 vn v1 v2@
--
-- The parameter @u1@ is a @CoordD@.
--
-- The parameter @u2@ is a @CoordD@.
--
-- The parameter @v1@ is a @CoordD@.
--
-- The parameter @v2@ is a @CoordD@.


glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
glMapGrid2d :: GLsizei
-> GLdouble -> GLdouble -> GLsizei -> GLdouble -> GLdouble -> m ()
glMapGrid2d = FunPtr
  (GLsizei
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLdouble
   -> GLdouble
   -> IO ())
-> GLsizei
-> GLdouble
-> GLdouble
-> GLsizei
-> GLdouble
-> GLdouble
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLsizei
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLdouble
   -> GLdouble
   -> IO ())
-> GLsizei
-> GLdouble
-> GLdouble
-> GLsizei
-> GLdouble
-> GLdouble
-> m ()
ffiintdoubledoubleintdoubledoubleIOV FunPtr
  (GLsizei
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLdouble
   -> GLdouble
   -> IO ())
glMapGrid2dFunPtr

glMapGrid2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())
glMapGrid2dFunPtr :: FunPtr
  (GLsizei
   -> GLdouble
   -> GLdouble
   -> GLsizei
   -> GLdouble
   -> GLdouble
   -> IO ())
glMapGrid2dFunPtr = IO
  (FunPtr
     (GLsizei
      -> GLdouble
      -> GLdouble
      -> GLsizei
      -> GLdouble
      -> GLdouble
      -> IO ()))
-> FunPtr
     (GLsizei
      -> GLdouble
      -> GLdouble
      -> GLsizei
      -> GLdouble
      -> GLdouble
      -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLsizei
         -> GLdouble
         -> GLdouble
         -> GLsizei
         -> GLdouble
         -> GLdouble
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMapGrid2d")

{-# NOINLINE glMapGrid2dFunPtr #-}

-- | Usage: @'glMapGrid2f' un u1 u2 vn v1 v2@
--
-- The parameter @u1@ is a @CoordF@.
--
-- The parameter @u2@ is a @CoordF@.
--
-- The parameter @v1@ is a @CoordF@.
--
-- The parameter @v2@ is a @CoordF@.


glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
glMapGrid2f :: GLsizei
-> GLfloat -> GLfloat -> GLsizei -> GLfloat -> GLfloat -> m ()
glMapGrid2f = FunPtr
  (GLsizei
   -> GLfloat -> GLfloat -> GLsizei -> GLfloat -> GLfloat -> IO ())
-> GLsizei
-> GLfloat
-> GLfloat
-> GLsizei
-> GLfloat
-> GLfloat
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLsizei
   -> GLfloat -> GLfloat -> GLsizei -> GLfloat -> GLfloat -> IO ())
-> GLsizei
-> GLfloat
-> GLfloat
-> GLsizei
-> GLfloat
-> GLfloat
-> m ()
ffiintfloatfloatintfloatfloatIOV FunPtr
  (GLsizei
   -> GLfloat -> GLfloat -> GLsizei -> GLfloat -> GLfloat -> IO ())
glMapGrid2fFunPtr

glMapGrid2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())
glMapGrid2fFunPtr :: FunPtr
  (GLsizei
   -> GLfloat -> GLfloat -> GLsizei -> GLfloat -> GLfloat -> IO ())
glMapGrid2fFunPtr = IO
  (FunPtr
     (GLsizei
      -> GLfloat -> GLfloat -> GLsizei -> GLfloat -> GLfloat -> IO ()))
-> FunPtr
     (GLsizei
      -> GLfloat -> GLfloat -> GLsizei -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLsizei
         -> GLfloat -> GLfloat -> GLsizei -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMapGrid2f")

{-# NOINLINE glMapGrid2fFunPtr #-}

-- | Usage: @'glMaterialf' face pname param@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The parameter @param@ is a @CheckedFloat32@.


glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glMaterialf :: GLenum -> GLenum -> GLfloat -> m ()
glMaterialf = FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
ffienumenumfloatIOV FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glMaterialfFunPtr

glMaterialfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glMaterialfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glMaterialfFunPtr = IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMaterialf")

{-# NOINLINE glMaterialfFunPtr #-}

-- | Usage: @'glMaterialfv' face pname params@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The parameter @params@ is a @CheckedFloat32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glMaterialfv :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glMaterialfv = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glMaterialfvFunPtr

glMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glMaterialfvFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMaterialfv")

{-# NOINLINE glMaterialfvFunPtr #-}

-- | Usage: @'glMateriali' face pname param@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The parameter @param@ is a @CheckedInt32@.


glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glMateriali :: GLenum -> GLenum -> GLsizei -> m ()
glMateriali = FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
-> GLenum -> GLenum -> GLsizei -> m ()
ffienumenumintIOV FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
glMaterialiFunPtr

glMaterialiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glMaterialiFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
glMaterialiFunPtr = IO (FunPtr (GLenum -> GLenum -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMateriali")

{-# NOINLINE glMaterialiFunPtr #-}

-- | Usage: @'glMaterialiv' face pname params@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The parameter @params@ is a @CheckedInt32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glMaterialiv :: GLenum -> GLenum -> Ptr GLsizei -> m ()
glMaterialiv = FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> Ptr GLsizei -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glMaterialivFunPtr

glMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
glMaterialivFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMaterialiv")

{-# NOINLINE glMaterialivFunPtr #-}

-- | Usage: @'glMatrixMode' mode@
--
-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.


glMatrixMode :: MonadIO m => GLenum -> m ()
glMatrixMode :: GLenum -> m ()
glMatrixMode = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffienumIOV FunPtr (GLenum -> IO ())
glMatrixModeFunPtr

glMatrixModeFunPtr :: FunPtr (GLenum -> IO ())
glMatrixModeFunPtr :: FunPtr (GLenum -> IO ())
glMatrixModeFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMatrixMode")

{-# NOINLINE glMatrixModeFunPtr #-}

-- | Usage: @'glMultMatrixd' m@
--
-- The length of @m@ should be @16@.


glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()
glMultMatrixd :: Ptr GLdouble -> m ()
glMultMatrixd = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glMultMatrixdFunPtr

glMultMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glMultMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glMultMatrixdFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultMatrixd")

{-# NOINLINE glMultMatrixdFunPtr #-}

-- | Usage: @'glMultMatrixf' m@
--
-- The length of @m@ should be @16@.


glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glMultMatrixf :: Ptr GLfloat -> m ()
glMultMatrixf = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glMultMatrixfFunPtr

glMultMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glMultMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glMultMatrixfFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultMatrixf")

{-# NOINLINE glMultMatrixfFunPtr #-}

-- | Usage: @'glMultTransposeMatrixd' m@
--
-- The length of @m@ should be @16@.


glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
glMultTransposeMatrixd :: Ptr GLdouble -> m ()
glMultTransposeMatrixd = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glMultTransposeMatrixdFunPtr

glMultTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glMultTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glMultTransposeMatrixdFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultTransposeMatrixd")

{-# NOINLINE glMultTransposeMatrixdFunPtr #-}

-- | Usage: @'glMultTransposeMatrixf' m@
--
-- The length of @m@ should be @16@.


glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
glMultTransposeMatrixf :: Ptr GLfloat -> m ()
glMultTransposeMatrixf = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glMultTransposeMatrixfFunPtr

glMultTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glMultTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glMultTransposeMatrixfFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultTransposeMatrixf")

{-# NOINLINE glMultTransposeMatrixfFunPtr #-}

-- | Usage: @'glMultiTexCoord1d' target s@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1dv'.


glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()
glMultiTexCoord1d :: GLenum -> GLdouble -> m ()
glMultiTexCoord1d = FunPtr (GLenum -> GLdouble -> IO ()) -> GLenum -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLdouble -> IO ()) -> GLenum -> GLdouble -> m ()
ffienumdoubleIOV FunPtr (GLenum -> GLdouble -> IO ())
glMultiTexCoord1dFunPtr

glMultiTexCoord1dFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
glMultiTexCoord1dFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
glMultiTexCoord1dFunPtr = IO (FunPtr (GLenum -> GLdouble -> IO ()))
-> FunPtr (GLenum -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1d")

{-# NOINLINE glMultiTexCoord1dFunPtr #-}

-- | Usage: @'glMultiTexCoord1dv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordD@.
--
-- The length of @v@ should be @1@.


glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord1dv :: GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord1dv = FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
ffienumPtrdoubleIOV FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord1dvFunPtr

glMultiTexCoord1dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord1dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord1dvFunPtr = IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
-> FunPtr (GLenum -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1dv")

{-# NOINLINE glMultiTexCoord1dvFunPtr #-}

-- | Usage: @'glMultiTexCoord1f' target s@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1fv'.


glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()
glMultiTexCoord1f :: GLenum -> GLfloat -> m ()
glMultiTexCoord1f = FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
ffienumfloatIOV FunPtr (GLenum -> GLfloat -> IO ())
glMultiTexCoord1fFunPtr

glMultiTexCoord1fFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glMultiTexCoord1fFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glMultiTexCoord1fFunPtr = IO (FunPtr (GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1f")

{-# NOINLINE glMultiTexCoord1fFunPtr #-}

-- | Usage: @'glMultiTexCoord1fv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordF@.
--
-- The length of @v@ should be @1@.


glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord1fv :: GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord1fv = FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
ffienumPtrfloatIOV FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord1fvFunPtr

glMultiTexCoord1fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord1fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord1fvFunPtr = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1fv")

{-# NOINLINE glMultiTexCoord1fvFunPtr #-}

-- | Usage: @'glMultiTexCoord1i' target s@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordI@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1iv'.


glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()
glMultiTexCoord1i :: GLenum -> GLsizei -> m ()
glMultiTexCoord1i = FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
ffienumintIOV FunPtr (GLenum -> GLsizei -> IO ())
glMultiTexCoord1iFunPtr

glMultiTexCoord1iFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glMultiTexCoord1iFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
glMultiTexCoord1iFunPtr = IO (FunPtr (GLenum -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1i")

{-# NOINLINE glMultiTexCoord1iFunPtr #-}

-- | Usage: @'glMultiTexCoord1iv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordI@.
--
-- The length of @v@ should be @1@.


glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glMultiTexCoord1iv :: GLenum -> Ptr GLsizei -> m ()
glMultiTexCoord1iv = FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
ffienumPtrintIOV FunPtr (GLenum -> Ptr GLsizei -> IO ())
glMultiTexCoord1ivFunPtr

glMultiTexCoord1ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
glMultiTexCoord1ivFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> IO ())
glMultiTexCoord1ivFunPtr = IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1iv")

{-# NOINLINE glMultiTexCoord1ivFunPtr #-}

-- | Usage: @'glMultiTexCoord1s' target s@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordS@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1sv'.


glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()
glMultiTexCoord1s :: GLenum -> GLshort -> m ()
glMultiTexCoord1s = FunPtr (GLenum -> GLshort -> IO ()) -> GLenum -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLshort -> IO ()) -> GLenum -> GLshort -> m ()
ffienumshortIOV FunPtr (GLenum -> GLshort -> IO ())
glMultiTexCoord1sFunPtr

glMultiTexCoord1sFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
glMultiTexCoord1sFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
glMultiTexCoord1sFunPtr = IO (FunPtr (GLenum -> GLshort -> IO ()))
-> FunPtr (GLenum -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1s")

{-# NOINLINE glMultiTexCoord1sFunPtr #-}

-- | Usage: @'glMultiTexCoord1sv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordS@.
--
-- The length of @v@ should be @1@.


glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord1sv :: GLenum -> Ptr GLshort -> m ()
glMultiTexCoord1sv = FunPtr (GLenum -> Ptr GLshort -> IO ())
-> GLenum -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLshort -> IO ())
-> GLenum -> Ptr GLshort -> m ()
ffienumPtrshortIOV FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord1svFunPtr

glMultiTexCoord1svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord1svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord1svFunPtr = IO (FunPtr (GLenum -> Ptr GLshort -> IO ()))
-> FunPtr (GLenum -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord1sv")

{-# NOINLINE glMultiTexCoord1svFunPtr #-}

-- | Usage: @'glMultiTexCoord2d' target s t@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordD@.
--
-- The parameter @t@ is a @CoordD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2dv'.


glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
glMultiTexCoord2d :: GLenum -> GLdouble -> GLdouble -> m ()
glMultiTexCoord2d = FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
-> GLenum -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
-> GLenum -> GLdouble -> GLdouble -> m ()
ffienumdoubledoubleIOV FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
glMultiTexCoord2dFunPtr

glMultiTexCoord2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
glMultiTexCoord2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
glMultiTexCoord2dFunPtr = IO (FunPtr (GLenum -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2d")

{-# NOINLINE glMultiTexCoord2dFunPtr #-}

-- | Usage: @'glMultiTexCoord2dv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordD@.
--
-- The length of @v@ should be @2@.


glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord2dv :: GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord2dv = FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
ffienumPtrdoubleIOV FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord2dvFunPtr

glMultiTexCoord2dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord2dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord2dvFunPtr = IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
-> FunPtr (GLenum -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2dv")

{-# NOINLINE glMultiTexCoord2dvFunPtr #-}

-- | Usage: @'glMultiTexCoord2f' target s t@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordF@.
--
-- The parameter @t@ is a @CoordF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2fv'.


glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
glMultiTexCoord2f :: GLenum -> GLfloat -> GLfloat -> m ()
glMultiTexCoord2f = FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
-> GLenum -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
-> GLenum -> GLfloat -> GLfloat -> m ()
ffienumfloatfloatIOV FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
glMultiTexCoord2fFunPtr

glMultiTexCoord2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
glMultiTexCoord2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
glMultiTexCoord2fFunPtr = IO (FunPtr (GLenum -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2f")

{-# NOINLINE glMultiTexCoord2fFunPtr #-}

-- | Usage: @'glMultiTexCoord2fv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordF@.
--
-- The length of @v@ should be @2@.


glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord2fv :: GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord2fv = FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
ffienumPtrfloatIOV FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord2fvFunPtr

glMultiTexCoord2fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord2fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord2fvFunPtr = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2fv")

{-# NOINLINE glMultiTexCoord2fvFunPtr #-}

-- | Usage: @'glMultiTexCoord2i' target s t@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordI@.
--
-- The parameter @t@ is a @CoordI@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2iv'.


glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()
glMultiTexCoord2i :: GLenum -> GLsizei -> GLsizei -> m ()
glMultiTexCoord2i = FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> m ()
ffienumintintIOV FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
glMultiTexCoord2iFunPtr

glMultiTexCoord2iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
glMultiTexCoord2iFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
glMultiTexCoord2iFunPtr = IO (FunPtr (GLenum -> GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2i")

{-# NOINLINE glMultiTexCoord2iFunPtr #-}

-- | Usage: @'glMultiTexCoord2iv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordI@.
--
-- The length of @v@ should be @2@.


glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glMultiTexCoord2iv :: GLenum -> Ptr GLsizei -> m ()
glMultiTexCoord2iv = FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
ffienumPtrintIOV FunPtr (GLenum -> Ptr GLsizei -> IO ())
glMultiTexCoord2ivFunPtr

glMultiTexCoord2ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
glMultiTexCoord2ivFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> IO ())
glMultiTexCoord2ivFunPtr = IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2iv")

{-# NOINLINE glMultiTexCoord2ivFunPtr #-}

-- | Usage: @'glMultiTexCoord2s' target s t@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordS@.
--
-- The parameter @t@ is a @CoordS@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2sv'.


glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
glMultiTexCoord2s :: GLenum -> GLshort -> GLshort -> m ()
glMultiTexCoord2s = FunPtr (GLenum -> GLshort -> GLshort -> IO ())
-> GLenum -> GLshort -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLshort -> GLshort -> IO ())
-> GLenum -> GLshort -> GLshort -> m ()
ffienumshortshortIOV FunPtr (GLenum -> GLshort -> GLshort -> IO ())
glMultiTexCoord2sFunPtr

glMultiTexCoord2sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
glMultiTexCoord2sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
glMultiTexCoord2sFunPtr = IO (FunPtr (GLenum -> GLshort -> GLshort -> IO ()))
-> FunPtr (GLenum -> GLshort -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLshort -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2s")

{-# NOINLINE glMultiTexCoord2sFunPtr #-}

-- | Usage: @'glMultiTexCoord2sv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordS@.
--
-- The length of @v@ should be @2@.


glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord2sv :: GLenum -> Ptr GLshort -> m ()
glMultiTexCoord2sv = FunPtr (GLenum -> Ptr GLshort -> IO ())
-> GLenum -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLshort -> IO ())
-> GLenum -> Ptr GLshort -> m ()
ffienumPtrshortIOV FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord2svFunPtr

glMultiTexCoord2svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord2svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord2svFunPtr = IO (FunPtr (GLenum -> Ptr GLshort -> IO ()))
-> FunPtr (GLenum -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord2sv")

{-# NOINLINE glMultiTexCoord2svFunPtr #-}

-- | Usage: @'glMultiTexCoord3d' target s t r@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordD@.
--
-- The parameter @t@ is a @CoordD@.
--
-- The parameter @r@ is a @CoordD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3dv'.


glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMultiTexCoord3d :: GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
glMultiTexCoord3d = FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
ffienumdoubledoubledoubleIOV FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
glMultiTexCoord3dFunPtr

glMultiTexCoord3dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
glMultiTexCoord3dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
glMultiTexCoord3dFunPtr = IO (FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3d")

{-# NOINLINE glMultiTexCoord3dFunPtr #-}

-- | Usage: @'glMultiTexCoord3dv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordD@.
--
-- The length of @v@ should be @3@.


glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord3dv :: GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord3dv = FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
ffienumPtrdoubleIOV FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord3dvFunPtr

glMultiTexCoord3dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord3dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord3dvFunPtr = IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
-> FunPtr (GLenum -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3dv")

{-# NOINLINE glMultiTexCoord3dvFunPtr #-}

-- | Usage: @'glMultiTexCoord3f' target s t r@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordF@.
--
-- The parameter @t@ is a @CoordF@.
--
-- The parameter @r@ is a @CoordF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3fv'.


glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glMultiTexCoord3f :: GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
glMultiTexCoord3f = FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
ffienumfloatfloatfloatIOV FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
glMultiTexCoord3fFunPtr

glMultiTexCoord3fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
glMultiTexCoord3fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
glMultiTexCoord3fFunPtr = IO (FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3f")

{-# NOINLINE glMultiTexCoord3fFunPtr #-}

-- | Usage: @'glMultiTexCoord3fv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordF@.
--
-- The length of @v@ should be @3@.


glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord3fv :: GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord3fv = FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
ffienumPtrfloatIOV FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord3fvFunPtr

glMultiTexCoord3fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord3fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord3fvFunPtr = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3fv")

{-# NOINLINE glMultiTexCoord3fvFunPtr #-}

-- | Usage: @'glMultiTexCoord3i' target s t r@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordI@.
--
-- The parameter @t@ is a @CoordI@.
--
-- The parameter @r@ is a @CoordI@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3iv'.


glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
glMultiTexCoord3i :: GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
glMultiTexCoord3i = FunPtr (GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
ffienumintintintIOV FunPtr (GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
glMultiTexCoord3iFunPtr

glMultiTexCoord3iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
glMultiTexCoord3iFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
glMultiTexCoord3iFunPtr = IO (FunPtr (GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3i")

{-# NOINLINE glMultiTexCoord3iFunPtr #-}

-- | Usage: @'glMultiTexCoord3iv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordI@.
--
-- The length of @v@ should be @3@.


glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glMultiTexCoord3iv :: GLenum -> Ptr GLsizei -> m ()
glMultiTexCoord3iv = FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
ffienumPtrintIOV FunPtr (GLenum -> Ptr GLsizei -> IO ())
glMultiTexCoord3ivFunPtr

glMultiTexCoord3ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
glMultiTexCoord3ivFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> IO ())
glMultiTexCoord3ivFunPtr = IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3iv")

{-# NOINLINE glMultiTexCoord3ivFunPtr #-}

-- | Usage: @'glMultiTexCoord3s' target s t r@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordS@.
--
-- The parameter @t@ is a @CoordS@.
--
-- The parameter @r@ is a @CoordS@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3sv'.


glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
glMultiTexCoord3s :: GLenum -> GLshort -> GLshort -> GLshort -> m ()
glMultiTexCoord3s = FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
-> GLenum -> GLshort -> GLshort -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
-> GLenum -> GLshort -> GLshort -> GLshort -> m ()
ffienumshortshortshortIOV FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
glMultiTexCoord3sFunPtr

glMultiTexCoord3sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
glMultiTexCoord3sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
glMultiTexCoord3sFunPtr = IO (FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ()))
-> FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3s")

{-# NOINLINE glMultiTexCoord3sFunPtr #-}

-- | Usage: @'glMultiTexCoord3sv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordS@.
--
-- The length of @v@ should be @3@.


glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord3sv :: GLenum -> Ptr GLshort -> m ()
glMultiTexCoord3sv = FunPtr (GLenum -> Ptr GLshort -> IO ())
-> GLenum -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLshort -> IO ())
-> GLenum -> Ptr GLshort -> m ()
ffienumPtrshortIOV FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord3svFunPtr

glMultiTexCoord3svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord3svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord3svFunPtr = IO (FunPtr (GLenum -> Ptr GLshort -> IO ()))
-> FunPtr (GLenum -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord3sv")

{-# NOINLINE glMultiTexCoord3svFunPtr #-}

-- | Usage: @'glMultiTexCoord4d' target s t r q@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordD@.
--
-- The parameter @t@ is a @CoordD@.
--
-- The parameter @r@ is a @CoordD@.
--
-- The parameter @q@ is a @CoordD@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4dv'.


glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMultiTexCoord4d :: GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glMultiTexCoord4d = FunPtr
  (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffienumdoubledoubledoubledoubleIOV FunPtr
  (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glMultiTexCoord4dFunPtr

glMultiTexCoord4dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glMultiTexCoord4dFunPtr :: FunPtr
  (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glMultiTexCoord4dFunPtr = IO
  (FunPtr
     (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()))
-> FunPtr
     (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4d")

{-# NOINLINE glMultiTexCoord4dFunPtr #-}

-- | Usage: @'glMultiTexCoord4dv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordD@.
--
-- The length of @v@ should be @4@.


glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord4dv :: GLenum -> Ptr GLdouble -> m ()
glMultiTexCoord4dv = FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLdouble -> IO ())
-> GLenum -> Ptr GLdouble -> m ()
ffienumPtrdoubleIOV FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord4dvFunPtr

glMultiTexCoord4dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord4dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
glMultiTexCoord4dvFunPtr = IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
-> FunPtr (GLenum -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4dv")

{-# NOINLINE glMultiTexCoord4dvFunPtr #-}

-- | Usage: @'glMultiTexCoord4f' target s t r q@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordF@.
--
-- The parameter @t@ is a @CoordF@.
--
-- The parameter @r@ is a @CoordF@.
--
-- The parameter @q@ is a @CoordF@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4fv'.


glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glMultiTexCoord4f :: GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glMultiTexCoord4f = FunPtr
  (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffienumfloatfloatfloatfloatIOV FunPtr
  (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glMultiTexCoord4fFunPtr

glMultiTexCoord4fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glMultiTexCoord4fFunPtr :: FunPtr
  (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glMultiTexCoord4fFunPtr = IO
  (FunPtr
     (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr
     (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4f")

{-# NOINLINE glMultiTexCoord4fFunPtr #-}

-- | Usage: @'glMultiTexCoord4fv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordF@.
--
-- The length of @v@ should be @4@.


glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord4fv :: GLenum -> Ptr GLfloat -> m ()
glMultiTexCoord4fv = FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
ffienumPtrfloatIOV FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord4fvFunPtr

glMultiTexCoord4fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord4fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glMultiTexCoord4fvFunPtr = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4fv")

{-# NOINLINE glMultiTexCoord4fvFunPtr #-}

-- | Usage: @'glMultiTexCoord4i' target s t r q@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordI@.
--
-- The parameter @t@ is a @CoordI@.
--
-- The parameter @r@ is a @CoordI@.
--
-- The parameter @q@ is a @CoordI@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4iv'.


glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
glMultiTexCoord4i :: GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
glMultiTexCoord4i = FunPtr
  (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
ffienumintintintintIOV FunPtr
  (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glMultiTexCoord4iFunPtr

glMultiTexCoord4iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
glMultiTexCoord4iFunPtr :: FunPtr
  (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glMultiTexCoord4iFunPtr = IO
  (FunPtr
     (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
-> FunPtr
     (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4i")

{-# NOINLINE glMultiTexCoord4iFunPtr #-}

-- | Usage: @'glMultiTexCoord4iv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordI@.
--
-- The length of @v@ should be @4@.


glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
glMultiTexCoord4iv :: GLenum -> Ptr GLsizei -> m ()
glMultiTexCoord4iv = FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLsizei -> IO ())
-> GLenum -> Ptr GLsizei -> m ()
ffienumPtrintIOV FunPtr (GLenum -> Ptr GLsizei -> IO ())
glMultiTexCoord4ivFunPtr

glMultiTexCoord4ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
glMultiTexCoord4ivFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> IO ())
glMultiTexCoord4ivFunPtr = IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4iv")

{-# NOINLINE glMultiTexCoord4ivFunPtr #-}

-- | Usage: @'glMultiTexCoord4s' target s t r q@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @s@ is a @CoordS@.
--
-- The parameter @t@ is a @CoordS@.
--
-- The parameter @r@ is a @CoordS@.
--
-- The parameter @q@ is a @CoordS@.
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4sv'.


glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glMultiTexCoord4s :: GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glMultiTexCoord4s = FunPtr
  (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-> GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-> GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
ffienumshortshortshortshortIOV FunPtr
  (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
glMultiTexCoord4sFunPtr

glMultiTexCoord4sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
glMultiTexCoord4sFunPtr :: FunPtr
  (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
glMultiTexCoord4sFunPtr = IO
  (FunPtr
     (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()))
-> FunPtr
     (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4s")

{-# NOINLINE glMultiTexCoord4sFunPtr #-}

-- | Usage: @'glMultiTexCoord4sv' target v@
--
-- The parameter @target@ is a @TextureUnit@.
--
-- The parameter @v@ is a @CoordS@.
--
-- The length of @v@ should be @4@.


glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
glMultiTexCoord4sv :: GLenum -> Ptr GLshort -> m ()
glMultiTexCoord4sv = FunPtr (GLenum -> Ptr GLshort -> IO ())
-> GLenum -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLshort -> IO ())
-> GLenum -> Ptr GLshort -> m ()
ffienumPtrshortIOV FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord4svFunPtr

glMultiTexCoord4svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord4svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
glMultiTexCoord4svFunPtr = IO (FunPtr (GLenum -> Ptr GLshort -> IO ()))
-> FunPtr (GLenum -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glMultiTexCoord4sv")

{-# NOINLINE glMultiTexCoord4svFunPtr #-}

-- | Usage: @'glNewList' list mode@
--
-- The parameter @list@ is a @List@.
--
-- The parameter @mode@ is a @ListMode@, one of: 'Graphics.GL.Internal.Shared.GL_COMPILE', 'Graphics.GL.Internal.Shared.GL_COMPILE_AND_EXECUTE'.


glNewList :: MonadIO m => GLuint -> GLenum -> m ()
glNewList :: GLenum -> GLenum -> m ()
glNewList = FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
ffiuintenumIOV FunPtr (GLenum -> GLenum -> IO ())
glNewListFunPtr

glNewListFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
glNewListFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glNewListFunPtr = IO (FunPtr (GLenum -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glNewList")

{-# NOINLINE glNewListFunPtr #-}

-- | Usage: @'glNormal3b' nx ny nz@
--
-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3bv'.


glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glNormal3b :: GLbyte -> GLbyte -> GLbyte -> m ()
glNormal3b = FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
ffibytebytebyteIOV FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glNormal3bFunPtr

glNormal3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glNormal3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glNormal3bFunPtr = IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glNormal3b")

{-# NOINLINE glNormal3bFunPtr #-}

-- | Usage: @'glNormal3bv' v@
--
-- The length of @v@ should be @3@.


glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()
glNormal3bv :: Ptr GLbyte -> m ()
glNormal3bv =