    {-# OPTIONS_HADDOCK hide #-}
    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.GL.Functions.F12
    -- Copyright   :  (c) Sven Panne 2019
    -- License     :  BSD3
    --
    -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
    -- Stability   :  stable
    -- Portability :  portable
    --
    -- Raw functions from the
    -- <http://www.opengl.org/registry/ OpenGL registry>.
    --
    --------------------------------------------------------------------------------

    module Graphics.GL.Functions.F12 (
      glGetProgramEnvParameterIivNV,
      glGetProgramEnvParameterIuivNV,
      glGetProgramEnvParameterdvARB,
      glGetProgramEnvParameterfvARB,
      glGetProgramInfoLog,
      glGetProgramInterfaceiv,
      glGetProgramLocalParameterIivNV,
      glGetProgramLocalParameterIuivNV,
      glGetProgramLocalParameterdvARB,
      glGetProgramLocalParameterfvARB,
      glGetProgramNamedParameterdvNV,
      glGetProgramNamedParameterfvNV,
      glGetProgramParameterdvNV,
      glGetProgramParameterfvNV,
      glGetProgramPipelineInfoLog,
      glGetProgramPipelineInfoLogEXT,
      glGetProgramPipelineiv,
      glGetProgramPipelineivEXT,
      glGetProgramResourceIndex,
      glGetProgramResourceLocation,
      glGetProgramResourceLocationIndex,
      glGetProgramResourceLocationIndexEXT,
      glGetProgramResourceName,
      glGetProgramResourcefvNV,
      glGetProgramResourceiv,
      glGetProgramStageiv,
      glGetProgramStringARB,
      glGetProgramStringNV,
      glGetProgramSubroutineParameteruivNV,
      glGetProgramiv,
      glGetProgramivARB,
      glGetProgramivNV,
      glGetQueryBufferObjecti64v,
      glGetQueryBufferObjectiv,
      glGetQueryBufferObjectui64v,
      glGetQueryBufferObjectuiv,
      glGetQueryIndexediv,
      glGetQueryObjecti64v,
      glGetQueryObjecti64vEXT,
      glGetQueryObjectiv,
      glGetQueryObjectivARB,
      glGetQueryObjectivEXT,
      glGetQueryObjectui64v,
      glGetQueryObjectui64vEXT,
      glGetQueryObjectuiv,
      glGetQueryObjectuivARB,
      glGetQueryObjectuivEXT,
      glGetQueryiv,
      glGetQueryivARB,
      glGetQueryivEXT,
      glGetRenderbufferParameteriv,
      glGetRenderbufferParameterivEXT,
      glGetRenderbufferParameterivOES,
      glGetSamplerParameterIiv,
      glGetSamplerParameterIivEXT,
      glGetSamplerParameterIivOES,
      glGetSamplerParameterIuiv,
      glGetSamplerParameterIuivEXT,
      glGetSamplerParameterIuivOES,
      glGetSamplerParameterfv,
      glGetSamplerParameteriv,
      glGetSemaphoreParameterui64vEXT,
      glGetSeparableFilter,
      glGetSeparableFilterEXT,
      glGetShaderInfoLog,
      glGetShaderPrecisionFormat,
      glGetShaderSource,
      glGetShaderSourceARB,
      glGetShaderiv,
      glGetShadingRateImagePaletteNV,
      glGetShadingRateSampleLocationivNV,
      glGetSharpenTexFuncSGIS,
      glGetStageIndexNV,
      glGetString,
      glGetStringi,
      glGetSubroutineIndex,
      glGetSubroutineUniformLocation,
      glGetSynciv,
      glGetSyncivAPPLE,
      glGetTexBumpParameterfvATI,
      glGetTexBumpParameterivATI,
      glGetTexEnvfv,
      glGetTexEnviv,
      glGetTexEnvxv,
      glGetTexEnvxvOES,
      glGetTexFilterFuncSGIS,
      glGetTexGendv,
      glGetTexGenfv,
      glGetTexGenfvOES,
      glGetTexGeniv,
      glGetTexGenivOES,
      glGetTexGenxvOES,
      glGetTexImage,
      glGetTexLevelParameterfv,
      glGetTexLevelParameteriv,
      glGetTexLevelParameterxvOES,
      glGetTexParameterIiv,
      glGetTexParameterIivEXT,
      glGetTexParameterIivOES,
      glGetTexParameterIuiv
    ) where

    import Control.Monad.IO.Class ( MonadIO(..) )
    import Foreign.Ptr
    import Graphics.GL.Foreign
    import Graphics.GL.Types
    import System.IO.Unsafe ( unsafePerformIO )

    -- glGetProgramEnvParameterIivNV -----------------------------------------------

    glGetProgramEnvParameterIivNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLuint -- ^ @index@.
      -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
      -> m ()
    glGetProgramEnvParameterIivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetProgramEnvParameterIivNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn357 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramEnvParameterIivNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetProgramEnvParameterIivNV #-}
    ptr_glGetProgramEnvParameterIivNV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
    ptr_glGetProgramEnvParameterIivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramEnvParameterIivNV = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramEnvParameterIivNV"

    -- glGetProgramEnvParameterIuivNV ----------------------------------------------

    glGetProgramEnvParameterIuivNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLuint -- ^ @index@.
      -> Ptr GLuint -- ^ @params@ pointing to @4@ elements of type @GLuint@.
      -> m ()
    glGetProgramEnvParameterIuivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetProgramEnvParameterIuivNV GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn221 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetProgramEnvParameterIuivNV GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetProgramEnvParameterIuivNV #-}
    ptr_glGetProgramEnvParameterIuivNV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
    ptr_glGetProgramEnvParameterIuivNV :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetProgramEnvParameterIuivNV = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramEnvParameterIuivNV"

    -- glGetProgramEnvParameterdvARB -----------------------------------------------

    glGetProgramEnvParameterdvARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLuint -- ^ @index@.
      -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
      -> m ()
    glGetProgramEnvParameterdvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetProgramEnvParameterdvARB GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    -> GLenum -> GLenum -> Ptr GLdouble -> IO ()
    dyn344 FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetProgramEnvParameterdvARB GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3

    {-# NOINLINE ptr_glGetProgramEnvParameterdvARB #-}
    ptr_glGetProgramEnvParameterdvARB :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
    ptr_glGetProgramEnvParameterdvARB :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetProgramEnvParameterdvARB = IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramEnvParameterdvARB"

    -- glGetProgramEnvParameterfvARB -----------------------------------------------

    glGetProgramEnvParameterfvARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLuint -- ^ @index@.
      -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glGetProgramEnvParameterfvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetProgramEnvParameterfvARB GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
    dyn278 FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetProgramEnvParameterfvARB GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetProgramEnvParameterfvARB #-}
    ptr_glGetProgramEnvParameterfvARB :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetProgramEnvParameterfvARB :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetProgramEnvParameterfvARB = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramEnvParameterfvARB"

    -- glGetProgramInfoLog ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetProgramInfoLog.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetProgramInfoLog.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetProgramInfoLog.xhtml OpenGL 4.x>.
    glGetProgramInfoLog
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetProgramInfoLog :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> m ()
    glGetProgramInfoLog GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()
    dyn345 FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetProgramInfoLog GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4

    {-# NOINLINE ptr_glGetProgramInfoLog #-}
    ptr_glGetProgramInfoLog :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    ptr_glGetProgramInfoLog :: FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetProgramInfoLog = IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramInfoLog"

    -- glGetProgramInterfaceiv -----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramInterface.xhtml OpenGL 4.x>.
    glGetProgramInterfaceiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
      -> GLenum -- ^ @pname@ of type [ProgramInterfacePName](Graphics-GL-Groups.html#ProgramInterfacePName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetProgramInterfaceiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetProgramInterfaceiv GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn379 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramInterfaceiv GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetProgramInterfaceiv #-}
    ptr_glGetProgramInterfaceiv :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramInterfaceiv :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramInterfaceiv = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramInterfaceiv"

    -- glGetProgramLocalParameterIivNV ---------------------------------------------

    glGetProgramLocalParameterIivNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLuint -- ^ @index@.
      -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
      -> m ()
    glGetProgramLocalParameterIivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetProgramLocalParameterIivNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn357 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramLocalParameterIivNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetProgramLocalParameterIivNV #-}
    ptr_glGetProgramLocalParameterIivNV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
    ptr_glGetProgramLocalParameterIivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramLocalParameterIivNV = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramLocalParameterIivNV"

    -- glGetProgramLocalParameterIuivNV --------------------------------------------

    glGetProgramLocalParameterIuivNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLuint -- ^ @index@.
      -> Ptr GLuint -- ^ @params@ pointing to @4@ elements of type @GLuint@.
      -> m ()
    glGetProgramLocalParameterIuivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetProgramLocalParameterIuivNV GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn221 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetProgramLocalParameterIuivNV GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetProgramLocalParameterIuivNV #-}
    ptr_glGetProgramLocalParameterIuivNV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
    ptr_glGetProgramLocalParameterIuivNV :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetProgramLocalParameterIuivNV = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramLocalParameterIuivNV"

    -- glGetProgramLocalParameterdvARB ---------------------------------------------

    glGetProgramLocalParameterdvARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLuint -- ^ @index@.
      -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
      -> m ()
    glGetProgramLocalParameterdvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetProgramLocalParameterdvARB GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    -> GLenum -> GLenum -> Ptr GLdouble -> IO ()
    dyn344 FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetProgramLocalParameterdvARB GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3

    {-# NOINLINE ptr_glGetProgramLocalParameterdvARB #-}
    ptr_glGetProgramLocalParameterdvARB :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
    ptr_glGetProgramLocalParameterdvARB :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetProgramLocalParameterdvARB = IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramLocalParameterdvARB"

    -- glGetProgramLocalParameterfvARB ---------------------------------------------

    glGetProgramLocalParameterfvARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLuint -- ^ @index@.
      -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glGetProgramLocalParameterfvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetProgramLocalParameterfvARB GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
    dyn278 FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetProgramLocalParameterfvARB GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetProgramLocalParameterfvARB #-}
    ptr_glGetProgramLocalParameterfvARB :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
    ptr_glGetProgramLocalParameterfvARB :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetProgramLocalParameterfvARB = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramLocalParameterfvARB"

    -- glGetProgramNamedParameterdvNV ----------------------------------------------

    glGetProgramNamedParameterdvNV
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLsizei -- ^ @len@.
      -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
      -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
      -> m ()
    glGetProgramNamedParameterdvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> m ()
    glGetProgramNamedParameterdvNV GLenum
    v1 GLint
    v2 Ptr GLubyte
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ())
    -> GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ()
    dyn410 FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ())
    ptr_glGetProgramNamedParameterdvNV GLenum
    v1 GLint
    v2 Ptr GLubyte
    v3 Ptr GLdouble
    v4

    {-# NOINLINE ptr_glGetProgramNamedParameterdvNV #-}
    ptr_glGetProgramNamedParameterdvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
    ptr_glGetProgramNamedParameterdvNV :: FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ())
    ptr_glGetProgramNamedParameterdvNV = IO
      (FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ()))
     -> FunPtr
          (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLdouble -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramNamedParameterdvNV"

    -- glGetProgramNamedParameterfvNV ----------------------------------------------

    glGetProgramNamedParameterfvNV
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLsizei -- ^ @len@.
      -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
      -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glGetProgramNamedParameterfvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> m ()
    glGetProgramNamedParameterfvNV GLenum
    v1 GLint
    v2 Ptr GLubyte
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ())
    -> GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ()
    dyn411 FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ())
    ptr_glGetProgramNamedParameterfvNV GLenum
    v1 GLint
    v2 Ptr GLubyte
    v3 Ptr GLfloat
    v4

    {-# NOINLINE ptr_glGetProgramNamedParameterfvNV #-}
    ptr_glGetProgramNamedParameterfvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
    ptr_glGetProgramNamedParameterfvNV :: FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ())
    ptr_glGetProgramNamedParameterfvNV = IO
      (FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLubyte -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramNamedParameterfvNV"

    -- glGetProgramParameterdvNV ---------------------------------------------------

    glGetProgramParameterdvNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
      -> m ()
    glGetProgramParameterdvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetProgramParameterdvNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLdouble
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()
    dyn412 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetProgramParameterdvNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLdouble
    v4

    {-# NOINLINE ptr_glGetProgramParameterdvNV #-}
    ptr_glGetProgramParameterdvNV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetProgramParameterdvNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetProgramParameterdvNV = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramParameterdvNV"

    -- glGetProgramParameterfvNV ---------------------------------------------------

    glGetProgramParameterfvNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glGetProgramParameterfvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetProgramParameterfvNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
    dyn365 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetProgramParameterfvNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLfloat
    v4

    {-# NOINLINE ptr_glGetProgramParameterfvNV #-}
    ptr_glGetProgramParameterfvNV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetProgramParameterfvNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetProgramParameterfvNV = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramParameterfvNV"

    -- glGetProgramPipelineInfoLog -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramPipelineInfoLog.xhtml OpenGL 4.x>.
    glGetProgramPipelineInfoLog
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetProgramPipelineInfoLog :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> m ()
    glGetProgramPipelineInfoLog GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()
    dyn345 FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetProgramPipelineInfoLog GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4

    {-# NOINLINE ptr_glGetProgramPipelineInfoLog #-}
    ptr_glGetProgramPipelineInfoLog :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    ptr_glGetProgramPipelineInfoLog :: FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetProgramPipelineInfoLog = IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramPipelineInfoLog"

    -- glGetProgramPipelineInfoLogEXT ----------------------------------------------

    glGetProgramPipelineInfoLogEXT
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetProgramPipelineInfoLogEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> m ()
    glGetProgramPipelineInfoLogEXT GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()
    dyn345 FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetProgramPipelineInfoLogEXT GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4

    {-# NOINLINE ptr_glGetProgramPipelineInfoLogEXT #-}
    ptr_glGetProgramPipelineInfoLogEXT :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    ptr_glGetProgramPipelineInfoLogEXT :: FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetProgramPipelineInfoLogEXT = IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramPipelineInfoLogEXT"

    -- glGetProgramPipelineiv ------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramPipeline.xhtml OpenGL 4.x>.
    glGetProgramPipelineiv
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> GLenum -- ^ @pname@ of type [PipelineParameterName](Graphics-GL-Groups.html#PipelineParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetProgramPipelineiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetProgramPipelineiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramPipelineiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetProgramPipelineiv #-}
    ptr_glGetProgramPipelineiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramPipelineiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramPipelineiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramPipelineiv"

    -- glGetProgramPipelineivEXT ---------------------------------------------------

    glGetProgramPipelineivEXT
      :: MonadIO m
      => GLuint -- ^ @pipeline@.
      -> GLenum -- ^ @pname@ of type [PipelineParameterName](Graphics-GL-Groups.html#PipelineParameterName).
      -> Ptr GLint -- ^ @params@.
      -> m ()
    glGetProgramPipelineivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetProgramPipelineivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramPipelineivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetProgramPipelineivEXT #-}
    ptr_glGetProgramPipelineivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramPipelineivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramPipelineivEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramPipelineivEXT"

    -- glGetProgramResourceIndex ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResourceIndex.xhtml OpenGL 4.x>.
    glGetProgramResourceIndex
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
      -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
      -> m GLuint
    glGetProgramResourceIndex :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m GLenum
    glGetProgramResourceIndex GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO GLenum -> m GLenum
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLenum -> m GLenum) -> IO GLenum -> m GLenum
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    -> GLenum -> GLenum -> Ptr GLchar -> IO GLenum
    dyn413 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    ptr_glGetProgramResourceIndex GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glGetProgramResourceIndex #-}
    ptr_glGetProgramResourceIndex :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
    ptr_glGetProgramResourceIndex :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    ptr_glGetProgramResourceIndex = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramResourceIndex"

    -- glGetProgramResourceLocation ------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResourceLocation.xhtml OpenGL 4.x>.
    glGetProgramResourceLocation
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
      -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
      -> m GLint
    glGetProgramResourceLocation :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m GLint
    glGetProgramResourceLocation GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO GLint -> m GLint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLint -> m GLint) -> IO GLint -> m GLint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    -> GLenum -> GLenum -> Ptr GLchar -> IO GLint
    dyn414 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetProgramResourceLocation GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glGetProgramResourceLocation #-}
    ptr_glGetProgramResourceLocation :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetProgramResourceLocation :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetProgramResourceLocation = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramResourceLocation"

    -- glGetProgramResourceLocationIndex -------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResourceLocationIndex.xhtml OpenGL 4.x>.
    glGetProgramResourceLocationIndex
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
      -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
      -> m GLint
    glGetProgramResourceLocationIndex :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m GLint
    glGetProgramResourceLocationIndex GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO GLint -> m GLint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLint -> m GLint) -> IO GLint -> m GLint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    -> GLenum -> GLenum -> Ptr GLchar -> IO GLint
    dyn414 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetProgramResourceLocationIndex GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glGetProgramResourceLocationIndex #-}
    ptr_glGetProgramResourceLocationIndex :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetProgramResourceLocationIndex :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetProgramResourceLocationIndex = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramResourceLocationIndex"

    -- glGetProgramResourceLocationIndexEXT ----------------------------------------

    glGetProgramResourceLocationIndexEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
      -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
      -> m GLint
    glGetProgramResourceLocationIndexEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m GLint
    glGetProgramResourceLocationIndexEXT GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO GLint -> m GLint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLint -> m GLint) -> IO GLint -> m GLint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    -> GLenum -> GLenum -> Ptr GLchar -> IO GLint
    dyn414 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetProgramResourceLocationIndexEXT GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glGetProgramResourceLocationIndexEXT #-}
    ptr_glGetProgramResourceLocationIndexEXT :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetProgramResourceLocationIndexEXT :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetProgramResourceLocationIndexEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramResourceLocationIndexEXT"

    -- glGetProgramResourceName ----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResourceName.xhtml OpenGL 4.x>.
    glGetProgramResourceName
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetProgramResourceName :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> m ()
    glGetProgramResourceName GLenum
    v1 GLenum
    v2 GLenum
    v3 GLint
    v4 Ptr GLint
    v5 Ptr GLchar
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr GLint
    -> Ptr GLchar
    -> IO ()
    dyn317 FunPtr
      (GLenum
       -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetProgramResourceName GLenum
    v1 GLenum
    v2 GLenum
    v3 GLint
    v4 Ptr GLint
    v5 Ptr GLchar
    v6

    {-# NOINLINE ptr_glGetProgramResourceName #-}
    ptr_glGetProgramResourceName :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    ptr_glGetProgramResourceName :: FunPtr
      (GLenum
       -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetProgramResourceName = IO
      (FunPtr
         (GLenum
          -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
     -> FunPtr
          (GLenum
           -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLenum -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramResourceName"

    -- glGetProgramResourcefvNV ----------------------------------------------------

    glGetProgramResourcefvNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @propCount@.
      -> Ptr GLenum -- ^ @props@.
      -> GLsizei -- ^ @count@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLfloat -- ^ @params@ pointing to @count@ elements of type @GLfloat@.
      -> m ()
    glGetProgramResourcefvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr GLenum
    -> GLint
    -> Ptr GLint
    -> Ptr GLfloat
    -> m ()
    glGetProgramResourcefvNV GLenum
    v1 GLenum
    v2 GLenum
    v3 GLint
    v4 Ptr GLenum
    v5 GLint
    v6 Ptr GLint
    v7 Ptr GLfloat
    v8 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr GLenum
       -> GLint
       -> Ptr GLint
       -> Ptr GLfloat
       -> IO ())
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr GLenum
    -> GLint
    -> Ptr GLint
    -> Ptr GLfloat
    -> IO ()
    dyn415 FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr GLenum
       -> GLint
       -> Ptr GLint
       -> Ptr GLfloat
       -> IO ())
    ptr_glGetProgramResourcefvNV GLenum
    v1 GLenum
    v2 GLenum
    v3 GLint
    v4 Ptr GLenum
    v5 GLint
    v6 Ptr GLint
    v7 Ptr GLfloat
    v8

    {-# NOINLINE ptr_glGetProgramResourcefvNV #-}
    ptr_glGetProgramResourcefvNV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ())
    ptr_glGetProgramResourcefvNV :: FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr GLenum
       -> GLint
       -> Ptr GLint
       -> Ptr GLfloat
       -> IO ())
    ptr_glGetProgramResourcefvNV = IO
      (FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLint
          -> Ptr GLenum
          -> GLint
          -> Ptr GLint
          -> Ptr GLfloat
          -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLint
          -> Ptr GLenum
          -> GLint
          -> Ptr GLint
          -> Ptr GLfloat
          -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLenum
           -> GLenum
           -> GLint
           -> Ptr GLenum
           -> GLint
           -> Ptr GLint
           -> Ptr GLfloat
           -> IO ()))
     -> FunPtr
          (GLenum
           -> GLenum
           -> GLenum
           -> GLint
           -> Ptr GLenum
           -> GLint
           -> Ptr GLint
           -> Ptr GLfloat
           -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLenum
             -> GLint
             -> Ptr GLenum
             -> GLint
             -> Ptr GLint
             -> Ptr GLfloat
             -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLint
          -> Ptr GLenum
          -> GLint
          -> Ptr GLint
          -> Ptr GLfloat
          -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLenum
             -> GLint
             -> Ptr GLenum
             -> GLint
             -> Ptr GLint
             -> Ptr GLfloat
             -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramResourcefvNV"

    -- glGetProgramResourceiv ------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResource.xhtml OpenGL 4.x>.
    glGetProgramResourceiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @propCount@.
      -> Ptr GLenum -- ^ @props@ pointing to @propCount@ elements of type [ProgramResourceProperty](Graphics-GL-Groups.html#ProgramResourceProperty).
      -> GLsizei -- ^ @count@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLint -- ^ @params@ pointing to @count@ elements of type @GLint@.
      -> m ()
    glGetProgramResourceiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr GLenum
    -> GLint
    -> Ptr GLint
    -> Ptr GLint
    -> m ()
    glGetProgramResourceiv GLenum
    v1 GLenum
    v2 GLenum
    v3 GLint
    v4 Ptr GLenum
    v5 GLint
    v6 Ptr GLint
    v7 Ptr GLint
    v8 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr GLenum
       -> GLint
       -> Ptr GLint
       -> Ptr GLint
       -> IO ())
    -> GLenum
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr GLenum
    -> GLint
    -> Ptr GLint
    -> Ptr GLint
    -> IO ()
    dyn416 FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr GLenum
       -> GLint
       -> Ptr GLint
       -> Ptr GLint
       -> IO ())
    ptr_glGetProgramResourceiv GLenum
    v1 GLenum
    v2 GLenum
    v3 GLint
    v4 Ptr GLenum
    v5 GLint
    v6 Ptr GLint
    v7 Ptr GLint
    v8

    {-# NOINLINE ptr_glGetProgramResourceiv #-}
    ptr_glGetProgramResourceiv :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
    ptr_glGetProgramResourceiv :: FunPtr
      (GLenum
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr GLenum
       -> GLint
       -> Ptr GLint
       -> Ptr GLint
       -> IO ())
    ptr_glGetProgramResourceiv = IO
      (FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLint
          -> Ptr GLenum
          -> GLint
          -> Ptr GLint
          -> Ptr GLint
          -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLint
          -> Ptr GLenum
          -> GLint
          -> Ptr GLint
          -> Ptr GLint
          -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum
           -> GLenum
           -> GLenum
           -> GLint
           -> Ptr GLenum
           -> GLint
           -> Ptr GLint
           -> Ptr GLint
           -> IO ()))
     -> FunPtr
          (GLenum
           -> GLenum
           -> GLenum
           -> GLint
           -> Ptr GLenum
           -> GLint
           -> Ptr GLint
           -> Ptr GLint
           -> IO ()))
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLenum
             -> GLint
             -> Ptr GLenum
             -> GLint
             -> Ptr GLint
             -> Ptr GLint
             -> IO ()))
    -> FunPtr
         (GLenum
          -> GLenum
          -> GLenum
          -> GLint
          -> Ptr GLenum
          -> GLint
          -> Ptr GLint
          -> Ptr GLint
          -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum
             -> GLenum
             -> GLenum
             -> GLint
             -> Ptr GLenum
             -> GLint
             -> Ptr GLint
             -> Ptr GLint
             -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramResourceiv"

    -- glGetProgramStageiv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramStage.xhtml OpenGL 4.x>.
    glGetProgramStageiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> GLenum -- ^ @pname@ of type [ProgramStagePName](Graphics-GL-Groups.html#ProgramStagePName).
      -> Ptr GLint -- ^ @values@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetProgramStageiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetProgramStageiv GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn379 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramStageiv GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetProgramStageiv #-}
    ptr_glGetProgramStageiv :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramStageiv :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramStageiv = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramStageiv"

    -- glGetProgramStringARB -------------------------------------------------------

    glGetProgramStringARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLenum -- ^ @pname@ of type [ProgramStringProperty](Graphics-GL-Groups.html#ProgramStringProperty).
      -> Ptr a -- ^ @string@ pointing to @COMPSIZE(target,pname)@ elements of type @a@.
      -> m ()
    glGetProgramStringARB :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLenum -> Ptr a -> m ()
    glGetProgramStringARB GLenum
    v1 GLenum
    v2 Ptr a
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
    -> GLenum -> GLenum -> Ptr a -> IO ()
    forall a.
    FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
    -> GLenum -> GLenum -> Ptr a -> IO ()
    dyn250 FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
    forall a. FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
    ptr_glGetProgramStringARB GLenum
    v1 GLenum
    v2 Ptr a
    v3

    {-# NOINLINE ptr_glGetProgramStringARB #-}
    ptr_glGetProgramStringARB :: FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
    ptr_glGetProgramStringARB :: forall a. FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
    ptr_glGetProgramStringARB = IO (FunPtr (GLenum -> GLenum -> Ptr a -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr a -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr a -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr a -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr a -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramStringARB"

    -- glGetProgramStringNV --------------------------------------------------------

    glGetProgramStringNV
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> Ptr GLubyte -- ^ @program@ pointing to @COMPSIZE(id,pname)@ elements of type @ProgramCharacterNV@.
      -> m ()
    glGetProgramStringNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLubyte -> m ()
    glGetProgramStringNV GLenum
    v1 GLenum
    v2 Ptr GLubyte
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ())
    -> GLenum -> GLenum -> Ptr GLubyte -> IO ()
    dyn417 FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ())
    ptr_glGetProgramStringNV GLenum
    v1 GLenum
    v2 Ptr GLubyte
    v3

    {-# NOINLINE ptr_glGetProgramStringNV #-}
    ptr_glGetProgramStringNV :: FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ())
    ptr_glGetProgramStringNV :: FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ())
    ptr_glGetProgramStringNV = IO (FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramStringNV"

    -- glGetProgramSubroutineParameteruivNV ----------------------------------------

    glGetProgramSubroutineParameteruivNV
      :: MonadIO m
      => GLenum -- ^ @target@.
      -> GLuint -- ^ @index@.
      -> Ptr GLuint -- ^ @param@ pointing to @COMPSIZE(target)@ elements of type @GLuint@.
      -> m ()
    glGetProgramSubroutineParameteruivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetProgramSubroutineParameteruivNV GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn221 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetProgramSubroutineParameteruivNV GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetProgramSubroutineParameteruivNV #-}
    ptr_glGetProgramSubroutineParameteruivNV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
    ptr_glGetProgramSubroutineParameteruivNV :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetProgramSubroutineParameteruivNV = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramSubroutineParameteruivNV"

    -- glGetProgramiv --------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetProgram.xhtml OpenGL 4.x>.
    glGetProgramiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @pname@ of type [ProgramPropertyARB](Graphics-GL-Groups.html#ProgramPropertyARB).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetProgramiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetProgramiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetProgramiv #-}
    ptr_glGetProgramiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramiv"

    -- glGetProgramivARB -----------------------------------------------------------

    glGetProgramivARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
      -> GLenum -- ^ @pname@ of type [ProgramPropertyARB](Graphics-GL-Groups.html#ProgramPropertyARB).
      -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetProgramivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetProgramivARB GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramivARB GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetProgramivARB #-}
    ptr_glGetProgramivARB :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramivARB :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramivARB = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramivARB"

    -- glGetProgramivNV ------------------------------------------------------------

    glGetProgramivNV
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
      -> m ()
    glGetProgramivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetProgramivNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramivNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetProgramivNV #-}
    ptr_glGetProgramivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetProgramivNV = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetProgramivNV"

    -- glGetQueryBufferObjecti64v --------------------------------------------------

    glGetQueryBufferObjecti64v
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLuint -- ^ @buffer@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> GLintptr -- ^ @offset@.
      -> m ()
    glGetQueryBufferObjecti64v :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLintptr -> m ()
    glGetQueryBufferObjecti64v GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    -> GLenum -> GLenum -> GLenum -> GLintptr -> IO ()
    dyn418 FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjecti64v GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4

    {-# NOINLINE ptr_glGetQueryBufferObjecti64v #-}
    ptr_glGetQueryBufferObjecti64v :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjecti64v :: FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjecti64v = IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryBufferObjecti64v"

    -- glGetQueryBufferObjectiv ----------------------------------------------------

    glGetQueryBufferObjectiv
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLuint -- ^ @buffer@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> GLintptr -- ^ @offset@.
      -> m ()
    glGetQueryBufferObjectiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLintptr -> m ()
    glGetQueryBufferObjectiv GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    -> GLenum -> GLenum -> GLenum -> GLintptr -> IO ()
    dyn418 FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjectiv GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4

    {-# NOINLINE ptr_glGetQueryBufferObjectiv #-}
    ptr_glGetQueryBufferObjectiv :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjectiv :: FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjectiv = IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryBufferObjectiv"

    -- glGetQueryBufferObjectui64v -------------------------------------------------

    glGetQueryBufferObjectui64v
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLuint -- ^ @buffer@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> GLintptr -- ^ @offset@.
      -> m ()
    glGetQueryBufferObjectui64v :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLintptr -> m ()
    glGetQueryBufferObjectui64v GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    -> GLenum -> GLenum -> GLenum -> GLintptr -> IO ()
    dyn418 FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjectui64v GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4

    {-# NOINLINE ptr_glGetQueryBufferObjectui64v #-}
    ptr_glGetQueryBufferObjectui64v :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjectui64v :: FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjectui64v = IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryBufferObjectui64v"

    -- glGetQueryBufferObjectuiv ---------------------------------------------------

    glGetQueryBufferObjectuiv
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLuint -- ^ @buffer@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> GLintptr -- ^ @offset@.
      -> m ()
    glGetQueryBufferObjectuiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> GLintptr -> m ()
    glGetQueryBufferObjectuiv GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    -> GLenum -> GLenum -> GLenum -> GLintptr -> IO ()
    dyn418 FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjectuiv GLenum
    v1 GLenum
    v2 GLenum
    v3 GLintptr
    v4

    {-# NOINLINE ptr_glGetQueryBufferObjectuiv #-}
    ptr_glGetQueryBufferObjectuiv :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjectuiv :: FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    ptr_glGetQueryBufferObjectuiv = IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLintptr -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryBufferObjectuiv"

    -- glGetQueryIndexediv ---------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetQueryIndexed.xhtml OpenGL 4.x>.
    glGetQueryIndexediv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
      -> GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [QueryParameterName](Graphics-GL-Groups.html#QueryParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetQueryIndexediv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetQueryIndexediv GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn366 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryIndexediv GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetQueryIndexediv #-}
    ptr_glGetQueryIndexediv :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryIndexediv :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryIndexediv = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryIndexediv"

    -- glGetQueryObjecti64v --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
    glGetQueryObjecti64v
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
      -> m ()
    glGetQueryObjecti64v :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint64 -> m ()
    glGetQueryObjecti64v GLenum
    v1 GLenum
    v2 Ptr GLint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    -> GLenum -> GLenum -> Ptr GLint64 -> IO ()
    dyn375 FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetQueryObjecti64v GLenum
    v1 GLenum
    v2 Ptr GLint64
    v3

    {-# NOINLINE ptr_glGetQueryObjecti64v #-}
    ptr_glGetQueryObjecti64v :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetQueryObjecti64v :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetQueryObjecti64v = IO (FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjecti64v"

    -- glGetQueryObjecti64vEXT -----------------------------------------------------

    -- | This command is an alias for 'glGetQueryObjecti64v'.
    glGetQueryObjecti64vEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
      -> m ()
    glGetQueryObjecti64vEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint64 -> m ()
    glGetQueryObjecti64vEXT GLenum
    v1 GLenum
    v2 Ptr GLint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    -> GLenum -> GLenum -> Ptr GLint64 -> IO ()
    dyn375 FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetQueryObjecti64vEXT GLenum
    v1 GLenum
    v2 Ptr GLint64
    v3

    {-# NOINLINE ptr_glGetQueryObjecti64vEXT #-}
    ptr_glGetQueryObjecti64vEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetQueryObjecti64vEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetQueryObjecti64vEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjecti64vEXT"

    -- glGetQueryObjectiv ----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObject.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
    glGetQueryObjectiv
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetQueryObjectiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetQueryObjectiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryObjectiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetQueryObjectiv #-}
    ptr_glGetQueryObjectiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryObjectiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryObjectiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjectiv"

    -- glGetQueryObjectivARB -------------------------------------------------------

    -- | This command is an alias for 'glGetQueryObjectiv'.
    glGetQueryObjectivARB
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetQueryObjectivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetQueryObjectivARB GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryObjectivARB GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetQueryObjectivARB #-}
    ptr_glGetQueryObjectivARB :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryObjectivARB :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryObjectivARB = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjectivARB"

    -- glGetQueryObjectivEXT -------------------------------------------------------

    -- | This command is an alias for 'glGetQueryObjectiv'.
    glGetQueryObjectivEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetQueryObjectivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetQueryObjectivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryObjectivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetQueryObjectivEXT #-}
    ptr_glGetQueryObjectivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryObjectivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryObjectivEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjectivEXT"

    -- glGetQueryObjectui64v -------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
    glGetQueryObjectui64v
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLuint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64@.
      -> m ()
    glGetQueryObjectui64v :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLuint64 -> m ()
    glGetQueryObjectui64v GLenum
    v1 GLenum
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    -> GLenum -> GLenum -> Ptr GLuint64 -> IO ()
    dyn419 FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetQueryObjectui64v GLenum
    v1 GLenum
    v2 Ptr GLuint64
    v3

    {-# NOINLINE ptr_glGetQueryObjectui64v #-}
    ptr_glGetQueryObjectui64v :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetQueryObjectui64v :: FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetQueryObjectui64v = IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjectui64v"

    -- glGetQueryObjectui64vEXT ----------------------------------------------------

    -- | This command is an alias for 'glGetQueryObjectui64v'.
    glGetQueryObjectui64vEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLuint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64@.
      -> m ()
    glGetQueryObjectui64vEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLuint64 -> m ()
    glGetQueryObjectui64vEXT GLenum
    v1 GLenum
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    -> GLenum -> GLenum -> Ptr GLuint64 -> IO ()
    dyn419 FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetQueryObjectui64vEXT GLenum
    v1 GLenum
    v2 Ptr GLuint64
    v3

    {-# NOINLINE ptr_glGetQueryObjectui64vEXT #-}
    ptr_glGetQueryObjectui64vEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetQueryObjectui64vEXT :: FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetQueryObjectui64vEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjectui64vEXT"

    -- glGetQueryObjectuiv ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObject.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
    glGetQueryObjectuiv
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
      -> m ()
    glGetQueryObjectuiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetQueryObjectuiv GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn392 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetQueryObjectuiv GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetQueryObjectuiv #-}
    ptr_glGetQueryObjectuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetQueryObjectuiv :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetQueryObjectuiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjectuiv"

    -- glGetQueryObjectuivARB ------------------------------------------------------

    -- | This command is an alias for 'glGetQueryObjectuiv'.
    glGetQueryObjectuivARB
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
      -> m ()
    glGetQueryObjectuivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetQueryObjectuivARB GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn392 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetQueryObjectuivARB GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetQueryObjectuivARB #-}
    ptr_glGetQueryObjectuivARB :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetQueryObjectuivARB :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetQueryObjectuivARB = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjectuivARB"

    -- glGetQueryObjectuivEXT ------------------------------------------------------

    glGetQueryObjectuivEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
      -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
      -> m ()
    glGetQueryObjectuivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetQueryObjectuivEXT GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn392 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetQueryObjectuivEXT GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetQueryObjectuivEXT #-}
    ptr_glGetQueryObjectuivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetQueryObjectuivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetQueryObjectuivEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryObjectuivEXT"

    -- glGetQueryiv ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryiv.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryiv.xhtml OpenGL 4.x>.
    glGetQueryiv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
      -> GLenum -- ^ @pname@ of type [QueryParameterName](Graphics-GL-Groups.html#QueryParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetQueryiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetQueryiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetQueryiv #-}
    ptr_glGetQueryiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryiv"

    -- glGetQueryivARB -------------------------------------------------------------

    -- | This command is an alias for 'glGetQueryiv'.
    glGetQueryivARB
      :: MonadIO m
      => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
      -> GLenum -- ^ @pname@ of type [QueryParameterName](Graphics-GL-Groups.html#QueryParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetQueryivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetQueryivARB GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryivARB GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetQueryivARB #-}
    ptr_glGetQueryivARB :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryivARB :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryivARB = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryivARB"

    -- glGetQueryivEXT -------------------------------------------------------------

    glGetQueryivEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
      -> GLenum -- ^ @pname@ of type [QueryParameterName](Graphics-GL-Groups.html#QueryParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetQueryivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetQueryivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetQueryivEXT #-}
    ptr_glGetQueryivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetQueryivEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetQueryivEXT"

    -- glGetRenderbufferParameteriv ------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetRenderbufferParameter.xhtml OpenGL 4.x>.
    glGetRenderbufferParameteriv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
      -> GLenum -- ^ @pname@ of type [RenderbufferParameterName](Graphics-GL-Groups.html#RenderbufferParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetRenderbufferParameteriv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetRenderbufferParameteriv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetRenderbufferParameteriv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetRenderbufferParameteriv #-}
    ptr_glGetRenderbufferParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetRenderbufferParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetRenderbufferParameteriv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetRenderbufferParameteriv"

    -- glGetRenderbufferParameterivEXT ---------------------------------------------

    -- | This command is an alias for 'glGetRenderbufferParameteriv'.
    glGetRenderbufferParameterivEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
      -> GLenum -- ^ @pname@ of type [RenderbufferParameterName](Graphics-GL-Groups.html#RenderbufferParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetRenderbufferParameterivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetRenderbufferParameterivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetRenderbufferParameterivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetRenderbufferParameterivEXT #-}
    ptr_glGetRenderbufferParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetRenderbufferParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetRenderbufferParameterivEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetRenderbufferParameterivEXT"

    -- glGetRenderbufferParameterivOES ---------------------------------------------

    glGetRenderbufferParameterivOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
      -> GLenum -- ^ @pname@ of type [RenderbufferParameterName](Graphics-GL-Groups.html#RenderbufferParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetRenderbufferParameterivOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetRenderbufferParameterivOES GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetRenderbufferParameterivOES GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetRenderbufferParameterivOES #-}
    ptr_glGetRenderbufferParameterivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetRenderbufferParameterivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetRenderbufferParameterivOES = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetRenderbufferParameterivOES"

    -- glGetSamplerParameterIiv ----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml OpenGL 4.x>.
    glGetSamplerParameterIiv
      :: MonadIO m
      => GLuint -- ^ @sampler@.
      -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetSamplerParameterIiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetSamplerParameterIiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameterIiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetSamplerParameterIiv #-}
    ptr_glGetSamplerParameterIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameterIiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameterIiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSamplerParameterIiv"

    -- glGetSamplerParameterIivEXT -------------------------------------------------

    -- | This command is an alias for 'glGetSamplerParameterIiv'.
    glGetSamplerParameterIivEXT
      :: MonadIO m
      => GLuint -- ^ @sampler@.
      -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetSamplerParameterIivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetSamplerParameterIivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameterIivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetSamplerParameterIivEXT #-}
    ptr_glGetSamplerParameterIivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameterIivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameterIivEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSamplerParameterIivEXT"

    -- glGetSamplerParameterIivOES -------------------------------------------------

    -- | This command is an alias for 'glGetSamplerParameterIiv'.
    glGetSamplerParameterIivOES
      :: MonadIO m
      => GLuint -- ^ @sampler@.
      -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetSamplerParameterIivOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetSamplerParameterIivOES GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameterIivOES GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetSamplerParameterIivOES #-}
    ptr_glGetSamplerParameterIivOES :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameterIivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameterIivOES = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSamplerParameterIivOES"

    -- glGetSamplerParameterIuiv ---------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml OpenGL 4.x>.
    glGetSamplerParameterIuiv
      :: MonadIO m
      => GLuint -- ^ @sampler@.
      -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
      -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
      -> m ()
    glGetSamplerParameterIuiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetSamplerParameterIuiv GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn392 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetSamplerParameterIuiv GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetSamplerParameterIuiv #-}
    ptr_glGetSamplerParameterIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetSamplerParameterIuiv :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetSamplerParameterIuiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSamplerParameterIuiv"

    -- glGetSamplerParameterIuivEXT ------------------------------------------------

    -- | This command is an alias for 'glGetSamplerParameterIuiv'.
    glGetSamplerParameterIuivEXT
      :: MonadIO m
      => GLuint -- ^ @sampler@.
      -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
      -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
      -> m ()
    glGetSamplerParameterIuivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetSamplerParameterIuivEXT GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn392 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetSamplerParameterIuivEXT GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetSamplerParameterIuivEXT #-}
    ptr_glGetSamplerParameterIuivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetSamplerParameterIuivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetSamplerParameterIuivEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSamplerParameterIuivEXT"

    -- glGetSamplerParameterIuivOES ------------------------------------------------

    -- | This command is an alias for 'glGetSamplerParameterIuiv'.
    glGetSamplerParameterIuivOES
      :: MonadIO m
      => GLuint -- ^ @sampler@.
      -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
      -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
      -> m ()
    glGetSamplerParameterIuivOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetSamplerParameterIuivOES GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn392 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetSamplerParameterIuivOES GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetSamplerParameterIuivOES #-}
    ptr_glGetSamplerParameterIuivOES :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetSamplerParameterIuivOES :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetSamplerParameterIuivOES = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSamplerParameterIuivOES"

    -- glGetSamplerParameterfv -----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml OpenGL 4.x>.
    glGetSamplerParameterfv
      :: MonadIO m
      => GLuint -- ^ @sampler@.
      -> GLenum -- ^ @pname@ of type [SamplerParameterF](Graphics-GL-Groups.html#SamplerParameterF).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetSamplerParameterfv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetSamplerParameterfv GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
    dyn364 FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetSamplerParameterfv GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetSamplerParameterfv #-}
    ptr_glGetSamplerParameterfv :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetSamplerParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetSamplerParameterfv = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSamplerParameterfv"

    -- glGetSamplerParameteriv -----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml OpenGL 4.x>.
    glGetSamplerParameteriv
      :: MonadIO m
      => GLuint -- ^ @sampler@.
      -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetSamplerParameteriv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetSamplerParameteriv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameteriv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetSamplerParameteriv #-}
    ptr_glGetSamplerParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetSamplerParameteriv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSamplerParameteriv"

    -- glGetSemaphoreParameterui64vEXT ---------------------------------------------

    glGetSemaphoreParameterui64vEXT
      :: MonadIO m
      => GLuint -- ^ @semaphore@.
      -> GLenum -- ^ @pname@ of type [SemaphoreParameterName](Graphics-GL-Groups.html#SemaphoreParameterName).
      -> Ptr GLuint64 -- ^ @params@.
      -> m ()
    glGetSemaphoreParameterui64vEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLuint64 -> m ()
    glGetSemaphoreParameterui64vEXT GLenum
    v1 GLenum
    v2 Ptr GLuint64
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    -> GLenum -> GLenum -> Ptr GLuint64 -> IO ()
    dyn419 FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetSemaphoreParameterui64vEXT GLenum
    v1 GLenum
    v2 Ptr GLuint64
    v3

    {-# NOINLINE ptr_glGetSemaphoreParameterui64vEXT #-}
    ptr_glGetSemaphoreParameterui64vEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetSemaphoreParameterui64vEXT :: FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetSemaphoreParameterui64vEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSemaphoreParameterui64vEXT"

    -- glGetSeparableFilter --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetSeparableFilter.xml OpenGL 2.x>.
    glGetSeparableFilter
      :: MonadIO m
      => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> Ptr a -- ^ @row@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
      -> Ptr b -- ^ @column@ pointing to @COMPSIZE(target,format,type)@ elements of type @b@.
      -> Ptr c -- ^ @span@ pointing to @COMPSIZE(target,format,type)@ elements of type @c@.
      -> m ()
    glGetSeparableFilter :: forall (m :: * -> *) a b c.
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> m ()
    glGetSeparableFilter GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr a
    v4 Ptr b
    v5 Ptr c
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()
    forall a b c.
    FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()
    dyn420 FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    forall a b c.
    FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    ptr_glGetSeparableFilter GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr a
    v4 Ptr b
    v5 Ptr c
    v6

    {-# NOINLINE ptr_glGetSeparableFilter #-}
    ptr_glGetSeparableFilter :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    ptr_glGetSeparableFilter :: forall a b c.
    FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    ptr_glGetSeparableFilter = IO
      (FunPtr
         (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
     -> FunPtr
          (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSeparableFilter"

    -- glGetSeparableFilterEXT -----------------------------------------------------

    glGetSeparableFilterEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> Ptr a -- ^ @row@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
      -> Ptr b -- ^ @column@ pointing to @COMPSIZE(target,format,type)@ elements of type @b@.
      -> Ptr c -- ^ @span@ pointing to @COMPSIZE(target,format,type)@ elements of type @c@.
      -> m ()
    glGetSeparableFilterEXT :: forall (m :: * -> *) a b c.
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> m ()
    glGetSeparableFilterEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr a
    v4 Ptr b
    v5 Ptr c
    v6 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()
    forall a b c.
    FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()
    dyn420 FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    forall a b c.
    FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    ptr_glGetSeparableFilterEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr a
    v4 Ptr b
    v5 Ptr c
    v6

    {-# NOINLINE ptr_glGetSeparableFilterEXT #-}
    ptr_glGetSeparableFilterEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    ptr_glGetSeparableFilterEXT :: forall a b c.
    FunPtr
      (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    ptr_glGetSeparableFilterEXT = IO
      (FunPtr
         (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
     -> FunPtr
          (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
    -> FunPtr
         (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSeparableFilterEXT"

    -- glGetShaderInfoLog ----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetShaderInfoLog.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderInfoLog.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetShaderInfoLog.xhtml OpenGL 4.x>.
    glGetShaderInfoLog
      :: MonadIO m
      => GLuint -- ^ @shader@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetShaderInfoLog :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> m ()
    glGetShaderInfoLog GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()
    dyn345 FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetShaderInfoLog GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4

    {-# NOINLINE ptr_glGetShaderInfoLog #-}
    ptr_glGetShaderInfoLog :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    ptr_glGetShaderInfoLog :: FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetShaderInfoLog = IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetShaderInfoLog"

    -- glGetShaderPrecisionFormat --------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetShaderPrecisionFormat.xhtml OpenGL 4.x>.
    glGetShaderPrecisionFormat
      :: MonadIO m
      => GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> GLenum -- ^ @precisiontype@ of type [PrecisionType](Graphics-GL-Groups.html#PrecisionType).
      -> Ptr GLint -- ^ @range@ pointing to @2@ elements of type @GLint@.
      -> Ptr GLint -- ^ @precision@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetShaderPrecisionFormat :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
    glGetShaderPrecisionFormat GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 Ptr GLint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()
    dyn421 FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
    ptr_glGetShaderPrecisionFormat GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetShaderPrecisionFormat #-}
    ptr_glGetShaderPrecisionFormat :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
    ptr_glGetShaderPrecisionFormat :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
    ptr_glGetShaderPrecisionFormat = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetShaderPrecisionFormat"

    -- glGetShaderSource -----------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetShaderSource.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetShaderSource.xhtml OpenGL 4.x>.
    glGetShaderSource
      :: MonadIO m
      => GLuint -- ^ @shader@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @source@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetShaderSource :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> m ()
    glGetShaderSource GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()
    dyn345 FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetShaderSource GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4

    {-# NOINLINE ptr_glGetShaderSource #-}
    ptr_glGetShaderSource :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    ptr_glGetShaderSource :: FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetShaderSource = IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetShaderSource"

    -- glGetShaderSourceARB --------------------------------------------------------

    -- | This command is an alias for 'glGetShaderSource'.
    glGetShaderSourceARB
      :: MonadIO m
      => GLhandleARB -- ^ @obj@ of type @handleARB@.
      -> GLsizei -- ^ @maxLength@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLcharARB -- ^ @source@ pointing to @maxLength@ elements of type @GLcharARB@.
      -> m ()
    glGetShaderSourceARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> m ()
    glGetShaderSourceARB GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    -> GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()
    dyn353 FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetShaderSourceARB GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4

    {-# NOINLINE ptr_glGetShaderSourceARB #-}
    ptr_glGetShaderSourceARB :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
    ptr_glGetShaderSourceARB :: FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetShaderSourceARB = IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
     -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    -> FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetShaderSourceARB"

    -- glGetShaderiv ---------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetShader.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetShader.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetShader.xhtml OpenGL 4.x>.
    glGetShaderiv
      :: MonadIO m
      => GLuint -- ^ @shader@.
      -> GLenum -- ^ @pname@ of type [ShaderParameterName](Graphics-GL-Groups.html#ShaderParameterName).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetShaderiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetShaderiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn348 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetShaderiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetShaderiv #-}
    ptr_glGetShaderiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetShaderiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetShaderiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetShaderiv"

    -- glGetShadingRateImagePaletteNV ----------------------------------------------

    glGetShadingRateImagePaletteNV
      :: MonadIO m
      => GLuint -- ^ @viewport@.
      -> GLuint -- ^ @entry@.
      -> Ptr GLenum -- ^ @rate@ pointing to @1@ element of type @GLenum@.
      -> m ()
    glGetShadingRateImagePaletteNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetShadingRateImagePaletteNV GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn422 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetShadingRateImagePaletteNV GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetShadingRateImagePaletteNV #-}
    ptr_glGetShadingRateImagePaletteNV :: FunPtr (GLuint -> GLuint -> Ptr GLenum -> IO ())
    ptr_glGetShadingRateImagePaletteNV :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetShadingRateImagePaletteNV = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetShadingRateImagePaletteNV"

    -- glGetShadingRateSampleLocationivNV ------------------------------------------

    glGetShadingRateSampleLocationivNV
      :: MonadIO m
      => GLenum -- ^ @rate@.
      -> GLuint -- ^ @samples@.
      -> GLuint -- ^ @index@.
      -> Ptr GLint -- ^ @location@ pointing to @3@ elements of type @GLint@.
      -> m ()
    glGetShadingRateSampleLocationivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetShadingRateSampleLocationivNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn423 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetShadingRateSampleLocationivNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetShadingRateSampleLocationivNV #-}
    ptr_glGetShadingRateSampleLocationivNV :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> IO ())
    ptr_glGetShadingRateSampleLocationivNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetShadingRateSampleLocationivNV = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetShadingRateSampleLocationivNV"

    -- glGetSharpenTexFuncSGIS -----------------------------------------------------

    glGetSharpenTexFuncSGIS
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> Ptr GLfloat -- ^ @points@ pointing to @COMPSIZE(target)@ elements of type @GLfloat@.
      -> m ()
    glGetSharpenTexFuncSGIS :: forall (m :: * -> *). MonadIO m => GLenum -> Ptr GLfloat -> m ()
    glGetSharpenTexFuncSGIS GLenum
    v1 Ptr GLfloat
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> Ptr GLfloat -> IO ()
    dyn101 FunPtr (GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetSharpenTexFuncSGIS GLenum
    v1 Ptr GLfloat
    v2

    {-# NOINLINE ptr_glGetSharpenTexFuncSGIS #-}
    ptr_glGetSharpenTexFuncSGIS :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetSharpenTexFuncSGIS :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetSharpenTexFuncSGIS = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSharpenTexFuncSGIS"

    -- glGetStageIndexNV -----------------------------------------------------------

    glGetStageIndexNV
      :: MonadIO m
      => GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> m GLushort
    glGetStageIndexNV :: forall (m :: * -> *). MonadIO m => GLenum -> m GLushort
    glGetStageIndexNV GLenum
    v1 = IO GLushort -> m GLushort
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLushort -> m GLushort) -> IO GLushort -> m GLushort
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO GLushort) -> GLenum -> IO GLushort
    dyn424 FunPtr (GLenum -> IO GLushort)
    ptr_glGetStageIndexNV GLenum
    v1

    {-# NOINLINE ptr_glGetStageIndexNV #-}
    ptr_glGetStageIndexNV :: FunPtr (GLenum -> IO GLushort)
    ptr_glGetStageIndexNV :: FunPtr (GLenum -> IO GLushort)
    ptr_glGetStageIndexNV = IO (FunPtr (GLenum -> IO GLushort))
    -> FunPtr (GLenum -> IO GLushort)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO GLushort))
     -> FunPtr (GLenum -> IO GLushort))
    -> IO (FunPtr (GLenum -> IO GLushort))
    -> FunPtr (GLenum -> IO GLushort)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO GLushort))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetStageIndexNV"

    -- glGetString -----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetString.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetString.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetString.xhtml OpenGL 4.x>.
    glGetString
      :: MonadIO m
      => GLenum -- ^ @name@ of type [StringName](Graphics-GL-Groups.html#StringName).
      -> m (Ptr GLubyte) -- ^ pointing to elements of type @String@.
    glGetString :: forall (m :: * -> *). MonadIO m => GLenum -> m (Ptr GLubyte)
    glGetString GLenum
    v1 = IO (Ptr GLubyte) -> m (Ptr GLubyte)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO (Ptr GLubyte) -> m (Ptr GLubyte))
    -> IO (Ptr GLubyte) -> m (Ptr GLubyte)
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> IO (Ptr GLubyte)
    dyn425 FunPtr (GLenum -> IO (Ptr GLubyte))
    ptr_glGetString GLenum
    v1

    {-# NOINLINE ptr_glGetString #-}
    ptr_glGetString :: FunPtr (GLenum -> IO (Ptr GLubyte))
    ptr_glGetString :: FunPtr (GLenum -> IO (Ptr GLubyte))
    ptr_glGetString = IO (FunPtr (GLenum -> IO (Ptr GLubyte)))
    -> FunPtr (GLenum -> IO (Ptr GLubyte))
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> IO (Ptr GLubyte)))
     -> FunPtr (GLenum -> IO (Ptr GLubyte)))
    -> IO (FunPtr (GLenum -> IO (Ptr GLubyte)))
    -> FunPtr (GLenum -> IO (Ptr GLubyte))
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> IO (Ptr GLubyte)))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetString"

    -- glGetStringi ----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetString.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetString.xhtml OpenGL 4.x>.
    glGetStringi
      :: MonadIO m
      => GLenum -- ^ @name@ of type [StringName](Graphics-GL-Groups.html#StringName).
      -> GLuint -- ^ @index@.
      -> m (Ptr GLubyte) -- ^ pointing to elements of type @String@.
    glGetStringi :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> m (Ptr GLubyte)
    glGetStringi GLenum
    v1 GLenum
    v2 = IO (Ptr GLubyte) -> m (Ptr GLubyte)
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO (Ptr GLubyte) -> m (Ptr GLubyte))
    -> IO (Ptr GLubyte) -> m (Ptr GLubyte)
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte))
    -> GLenum -> GLenum -> IO (Ptr GLubyte)
    dyn426 FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte))
    ptr_glGetStringi GLenum
    v1 GLenum
    v2

    {-# NOINLINE ptr_glGetStringi #-}
    ptr_glGetStringi :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
    ptr_glGetStringi :: FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte))
    ptr_glGetStringi = IO (FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte)))
    -> FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte))
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte)))
     -> FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte)))
    -> IO (FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte)))
    -> FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte))
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> IO (Ptr GLubyte)))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetStringi"

    -- glGetSubroutineIndex --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetSubroutineIndex.xhtml OpenGL 4.x>.
    glGetSubroutineIndex
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> Ptr GLchar -- ^ @name@.
      -> m GLuint
    glGetSubroutineIndex :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m GLenum
    glGetSubroutineIndex GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO GLenum -> m GLenum
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLenum -> m GLenum) -> IO GLenum -> m GLenum
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    -> GLenum -> GLenum -> Ptr GLchar -> IO GLenum
    dyn413 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    ptr_glGetSubroutineIndex GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glGetSubroutineIndex #-}
    ptr_glGetSubroutineIndex :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
    ptr_glGetSubroutineIndex :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    ptr_glGetSubroutineIndex = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLenum))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSubroutineIndex"

    -- glGetSubroutineUniformLocation ----------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetSubroutineUniformLocation.xhtml OpenGL 4.x>.
    glGetSubroutineUniformLocation
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> Ptr GLchar -- ^ @name@.
      -> m GLint
    glGetSubroutineUniformLocation :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLchar -> m GLint
    glGetSubroutineUniformLocation GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3 = IO GLint -> m GLint
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLint -> m GLint) -> IO GLint -> m GLint
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    -> GLenum -> GLenum -> Ptr GLchar -> IO GLint
    dyn414 FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetSubroutineUniformLocation GLenum
    v1 GLenum
    v2 Ptr GLchar
    v3

    {-# NOINLINE ptr_glGetSubroutineUniformLocation #-}
    ptr_glGetSubroutineUniformLocation :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetSubroutineUniformLocation :: FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetSubroutineUniformLocation = IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
     -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    -> FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint)
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLchar -> IO GLint))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSubroutineUniformLocation"

    -- glGetSynciv -----------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSync.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSync.xhtml OpenGL 4.x>.
    glGetSynciv
      :: MonadIO m
      => GLsync -- ^ @sync@ of type @sync@.
      -> GLenum -- ^ @pname@ of type [SyncParameterName](Graphics-GL-Groups.html#SyncParameterName).
      -> GLsizei -- ^ @count@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLint -- ^ @values@ pointing to @count@ elements of type @GLint@.
      -> m ()
    glGetSynciv :: forall (m :: * -> *).
    MonadIO m =>
    GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> m ()
    glGetSynciv GLsync
    v1 GLenum
    v2 GLint
    v3 Ptr GLint
    v4 Ptr GLint
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    -> GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()
    dyn427 FunPtr
      (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    ptr_glGetSynciv GLsync
    v1 GLenum
    v2 GLint
    v3 Ptr GLint
    v4 Ptr GLint
    v5

    {-# NOINLINE ptr_glGetSynciv #-}
    ptr_glGetSynciv :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
    ptr_glGetSynciv :: FunPtr
      (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    ptr_glGetSynciv = IO
      (FunPtr
         (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
    -> FunPtr
         (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
     -> FunPtr
          (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
    -> IO
         (FunPtr
            (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
    -> FunPtr
         (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSynciv"

    -- glGetSyncivAPPLE ------------------------------------------------------------

    -- | This command is an alias for 'glGetSynciv'.
    glGetSyncivAPPLE
      :: MonadIO m
      => GLsync -- ^ @sync@.
      -> GLenum -- ^ @pname@ of type [SyncParameterName](Graphics-GL-Groups.html#SyncParameterName).
      -> GLsizei -- ^ @count@.
      -> Ptr GLsizei -- ^ @length@.
      -> Ptr GLint -- ^ @values@ pointing to @count@ elements of type @GLint@.
      -> m ()
    glGetSyncivAPPLE :: forall (m :: * -> *).
    MonadIO m =>
    GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> m ()
    glGetSyncivAPPLE GLsync
    v1 GLenum
    v2 GLint
    v3 Ptr GLint
    v4 Ptr GLint
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr
      (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    -> GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()
    dyn427 FunPtr
      (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    ptr_glGetSyncivAPPLE GLsync
    v1 GLenum
    v2 GLint
    v3 Ptr GLint
    v4 Ptr GLint
    v5

    {-# NOINLINE ptr_glGetSyncivAPPLE #-}
    ptr_glGetSyncivAPPLE :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
    ptr_glGetSyncivAPPLE :: FunPtr
      (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    ptr_glGetSyncivAPPLE = IO
      (FunPtr
         (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
    -> FunPtr
         (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr
          (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
     -> FunPtr
          (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
    -> IO
         (FunPtr
            (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
    -> FunPtr
         (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr
            (GLsync -> GLenum -> GLint -> Ptr GLint -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetSyncivAPPLE"

    -- glGetTexBumpParameterfvATI --------------------------------------------------

    glGetTexBumpParameterfvATI
      :: MonadIO m
      => GLenum -- ^ @pname@ of type [GetTexBumpParameterATI](Graphics-GL-Groups.html#GetTexBumpParameterATI).
      -> Ptr GLfloat -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetTexBumpParameterfvATI :: forall (m :: * -> *). MonadIO m => GLenum -> Ptr GLfloat -> m ()
    glGetTexBumpParameterfvATI GLenum
    v1 Ptr GLfloat
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> Ptr GLfloat -> IO ()
    dyn101 FunPtr (GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexBumpParameterfvATI GLenum
    v1 Ptr GLfloat
    v2

    {-# NOINLINE ptr_glGetTexBumpParameterfvATI #-}
    ptr_glGetTexBumpParameterfvATI :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexBumpParameterfvATI :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexBumpParameterfvATI = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexBumpParameterfvATI"

    -- glGetTexBumpParameterivATI --------------------------------------------------

    glGetTexBumpParameterivATI
      :: MonadIO m
      => GLenum -- ^ @pname@ of type [GetTexBumpParameterATI](Graphics-GL-Groups.html#GetTexBumpParameterATI).
      -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetTexBumpParameterivATI :: forall (m :: * -> *). MonadIO m => GLenum -> Ptr GLint -> m ()
    glGetTexBumpParameterivATI GLenum
    v1 Ptr GLint
    v2 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> Ptr GLint -> IO ())
    -> GLenum -> Ptr GLint -> IO ()
    dyn143 FunPtr (GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexBumpParameterivATI GLenum
    v1 Ptr GLint
    v2

    {-# NOINLINE ptr_glGetTexBumpParameterivATI #-}
    ptr_glGetTexBumpParameterivATI :: FunPtr (GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexBumpParameterivATI :: FunPtr (GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexBumpParameterivATI = IO (FunPtr (GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexBumpParameterivATI"

    -- glGetTexEnvfv ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnv.xml OpenGL 2.x>.
    glGetTexEnvfv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
      -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetTexEnvfv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetTexEnvfv GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexEnvfv GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetTexEnvfv #-}
    ptr_glGetTexEnvfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexEnvfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexEnvfv = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexEnvfv"

    -- glGetTexEnviv ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnv.xml OpenGL 2.x>.
    glGetTexEnviv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
      -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetTexEnviv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTexEnviv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexEnviv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTexEnviv #-}
    ptr_glGetTexEnviv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexEnviv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexEnviv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexEnviv"

    -- glGetTexEnvxv ---------------------------------------------------------------

    glGetTexEnvxv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
      -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
      -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
      -> m ()
    glGetTexEnvxv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfixed -> m ()
    glGetTexEnvxv GLenum
    v1 GLenum
    v2 Ptr GLfixed
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    -> GLenum -> GLenum -> Ptr GLfixed -> IO ()
    dyn170 FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexEnvxv GLenum
    v1 GLenum
    v2 Ptr GLfixed
    v3

    {-# NOINLINE ptr_glGetTexEnvxv #-}
    ptr_glGetTexEnvxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexEnvxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexEnvxv = IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexEnvxv"

    -- glGetTexEnvxvOES ------------------------------------------------------------

    glGetTexEnvxvOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
      -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
      -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
      -> m ()
    glGetTexEnvxvOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfixed -> m ()
    glGetTexEnvxvOES GLenum
    v1 GLenum
    v2 Ptr GLfixed
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    -> GLenum -> GLenum -> Ptr GLfixed -> IO ()
    dyn170 FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexEnvxvOES GLenum
    v1 GLenum
    v2 Ptr GLfixed
    v3

    {-# NOINLINE ptr_glGetTexEnvxvOES #-}
    ptr_glGetTexEnvxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexEnvxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexEnvxvOES = IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexEnvxvOES"

    -- glGetTexFilterFuncSGIS ------------------------------------------------------

    glGetTexFilterFuncSGIS
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLenum -- ^ @filter@ of type [TextureFilterSGIS](Graphics-GL-Groups.html#TextureFilterSGIS).
      -> Ptr GLfloat -- ^ @weights@ pointing to @COMPSIZE(target,filter)@ elements of type @GLfloat@.
      -> m ()
    glGetTexFilterFuncSGIS :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetTexFilterFuncSGIS GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexFilterFuncSGIS GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetTexFilterFuncSGIS #-}
    ptr_glGetTexFilterFuncSGIS :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexFilterFuncSGIS :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexFilterFuncSGIS = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexFilterFuncSGIS"

    -- glGetTexGendv ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGen.xml OpenGL 2.x>.
    glGetTexGendv
      :: MonadIO m
      => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
      -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
      -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
      -> m ()
    glGetTexGendv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetTexGendv GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    -> GLenum -> GLenum -> Ptr GLdouble -> IO ()
    dyn368 FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetTexGendv GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3

    {-# NOINLINE ptr_glGetTexGendv #-}
    ptr_glGetTexGendv :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetTexGendv :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetTexGendv = IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexGendv"

    -- glGetTexGenfv ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGen.xml OpenGL 2.x>.
    glGetTexGenfv
      :: MonadIO m
      => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
      -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetTexGenfv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetTexGenfv GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexGenfv GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetTexGenfv #-}
    ptr_glGetTexGenfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexGenfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexGenfv = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexGenfv"

    -- glGetTexGenfvOES ------------------------------------------------------------

    glGetTexGenfvOES
      :: MonadIO m
      => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
      -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetTexGenfvOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetTexGenfvOES GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
    dyn139 FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexGenfvOES GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetTexGenfvOES #-}
    ptr_glGetTexGenfvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexGenfvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexGenfvOES = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexGenfvOES"

    -- glGetTexGeniv ---------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGen.xml OpenGL 2.x>.
    glGetTexGeniv
      :: MonadIO m
      => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
      -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetTexGeniv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTexGeniv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexGeniv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTexGeniv #-}
    ptr_glGetTexGeniv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexGeniv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexGeniv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexGeniv"

    -- glGetTexGenivOES ------------------------------------------------------------

    glGetTexGenivOES
      :: MonadIO m
      => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
      -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetTexGenivOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTexGenivOES GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexGenivOES GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTexGenivOES #-}
    ptr_glGetTexGenivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexGenivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexGenivOES = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexGenivOES"

    -- glGetTexGenxvOES ------------------------------------------------------------

    glGetTexGenxvOES
      :: MonadIO m
      => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
      -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
      -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
      -> m ()
    glGetTexGenxvOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfixed -> m ()
    glGetTexGenxvOES GLenum
    v1 GLenum
    v2 Ptr GLfixed
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    -> GLenum -> GLenum -> Ptr GLfixed -> IO ()
    dyn170 FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexGenxvOES GLenum
    v1 GLenum
    v2 Ptr GLfixed
    v3

    {-# NOINLINE ptr_glGetTexGenxvOES #-}
    ptr_glGetTexGenxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexGenxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexGenxvOES = IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexGenxvOES"

    -- glGetTexImage ---------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexImage.xhtml OpenGL 4.x>.
    glGetTexImage
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLint -- ^ @level@ of type @CheckedInt32@.
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(target,level,format,type)@ elements of type @a@.
      -> m ()
    glGetTexImage :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
    glGetTexImage GLenum
    v1 GLint
    v2 GLenum
    v3 GLenum
    v4 Ptr a
    v5 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
    forall a.
    FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
    dyn428 FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    forall a.
    FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    ptr_glGetTexImage GLenum
    v1 GLint
    v2 GLenum
    v3 GLenum
    v4 Ptr a
    v5

    {-# NOINLINE ptr_glGetTexImage #-}
    ptr_glGetTexImage :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    ptr_glGetTexImage :: forall a.
    FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    ptr_glGetTexImage = IO (FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()))
    -> FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO
       (FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()))
     -> FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()))
    -> IO
         (FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()))
    -> FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO
         (FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexImage"

    -- glGetTexLevelParameterfv ----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml OpenGL 4.x>.
    glGetTexLevelParameterfv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLint -- ^ @level@ of type @CheckedInt32@.
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetTexLevelParameterfv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
    glGetTexLevelParameterfv GLenum
    v1 GLint
    v2 GLenum
    v3 Ptr GLfloat
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
    dyn429 FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexLevelParameterfv GLenum
    v1 GLint
    v2 GLenum
    v3 Ptr GLfloat
    v4

    {-# NOINLINE ptr_glGetTexLevelParameterfv #-}
    ptr_glGetTexLevelParameterfv :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexLevelParameterfv :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexLevelParameterfv = IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()))
     -> FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()))
    -> IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()))
    -> FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexLevelParameterfv"

    -- glGetTexLevelParameteriv ----------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml OpenGL 4.x>.
    glGetTexLevelParameteriv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLint -- ^ @level@ of type @CheckedInt32@.
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetTexLevelParameteriv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
    glGetTexLevelParameteriv GLenum
    v1 GLint
    v2 GLenum
    v3 Ptr GLint
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
    dyn430 FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexLevelParameteriv GLenum
    v1 GLint
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetTexLevelParameteriv #-}
    ptr_glGetTexLevelParameteriv :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexLevelParameteriv :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexLevelParameteriv = IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexLevelParameteriv"

    -- glGetTexLevelParameterxvOES -------------------------------------------------

    glGetTexLevelParameterxvOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLint -- ^ @level@.
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
      -> m ()
    glGetTexLevelParameterxvOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()
    glGetTexLevelParameterxvOES GLenum
    v1 GLint
    v2 GLenum
    v3 Ptr GLfixed
    v4 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
    -> GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()
    dyn431 FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexLevelParameterxvOES GLenum
    v1 GLint
    v2 GLenum
    v3 Ptr GLfixed
    v4

    {-# NOINLINE ptr_glGetTexLevelParameterxvOES #-}
    ptr_glGetTexLevelParameterxvOES :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexLevelParameterxvOES :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexLevelParameterxvOES = IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()))
     -> FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()))
    -> IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()))
    -> FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String
    -> IO (FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexLevelParameterxvOES"

    -- glGetTexParameterIiv --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
    glGetTexParameterIiv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetTexParameterIiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTexParameterIiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameterIiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTexParameterIiv #-}
    ptr_glGetTexParameterIiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameterIiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameterIiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexParameterIiv"

    -- glGetTexParameterIivEXT -----------------------------------------------------

    -- | This command is an alias for 'glGetTexParameterIiv'.
    glGetTexParameterIivEXT
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetTexParameterIivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTexParameterIivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameterIivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTexParameterIivEXT #-}
    ptr_glGetTexParameterIivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameterIivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameterIivEXT = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexParameterIivEXT"

    -- glGetTexParameterIivOES -----------------------------------------------------

    -- | This command is an alias for 'glGetTexParameterIiv'.
    glGetTexParameterIivOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetTexParameterIivOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTexParameterIivOES GLenum
    v1 GLenum
    v2 Ptr GLint
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> Ptr GLint -> IO ()
    dyn140 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameterIivOES GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTexParameterIivOES #-}
    ptr_glGetTexParameterIivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameterIivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameterIivOES = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexParameterIivOES"

    -- glGetTexParameterIuiv -------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
    glGetTexParameterIuiv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
      -> m ()
    glGetTexParameterIuiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetTexParameterIuiv GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3 = IO () -> m ()
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> IO () -> m ()
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn432 FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetTexParameterIuiv GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetTexParameterIuiv #-}
    ptr_glGetTexParameterIuiv :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetTexParameterIuiv :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetTexParameterIuiv = IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a. IO a -> a
    unsafePerformIO (IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
     -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    -> FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    forall a b. (a -> b) -> a -> b
    $ String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ()))
    forall a. String -> IO (FunPtr a)
    getCommand String
    "glGetTexParameterIuiv"