    {-# OPTIONS_HADDOCK hide #-}
    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.GL.Functions.F13
    -- 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.F13 (
      glGetTexParameterIuivEXT,
      glGetTexParameterIuivOES,
      glGetTexParameterPointervAPPLE,
      glGetTexParameterfv,
      glGetTexParameteriv,
      glGetTexParameterxv,
      glGetTexParameterxvOES,
      glGetTextureHandleARB,
      glGetTextureHandleIMG,
      glGetTextureHandleNV,
      glGetTextureImage,
      glGetTextureImageEXT,
      glGetTextureLevelParameterfv,
      glGetTextureLevelParameterfvEXT,
      glGetTextureLevelParameteriv,
      glGetTextureLevelParameterivEXT,
      glGetTextureParameterIiv,
      glGetTextureParameterIivEXT,
      glGetTextureParameterIuiv,
      glGetTextureParameterIuivEXT,
      glGetTextureParameterfv,
      glGetTextureParameterfvEXT,
      glGetTextureParameteriv,
      glGetTextureParameterivEXT,
      glGetTextureSamplerHandleARB,
      glGetTextureSamplerHandleIMG,
      glGetTextureSamplerHandleNV,
      glGetTextureSubImage,
      glGetTrackMatrixivNV,
      glGetTransformFeedbackVarying,
      glGetTransformFeedbackVaryingEXT,
      glGetTransformFeedbackVaryingNV,
      glGetTransformFeedbacki64_v,
      glGetTransformFeedbacki_v,
      glGetTransformFeedbackiv,
      glGetTranslatedShaderSourceANGLE,
      glGetUniformBlockIndex,
      glGetUniformBufferSizeEXT,
      glGetUniformIndices,
      glGetUniformLocation,
      glGetUniformLocationARB,
      glGetUniformOffsetEXT,
      glGetUniformSubroutineuiv,
      glGetUniformdv,
      glGetUniformfv,
      glGetUniformfvARB,
      glGetUniformi64vARB,
      glGetUniformi64vNV,
      glGetUniformiv,
      glGetUniformivARB,
      glGetUniformui64vARB,
      glGetUniformui64vNV,
      glGetUniformuiv,
      glGetUniformuivEXT,
      glGetUnsignedBytei_vEXT,
      glGetUnsignedBytevEXT,
      glGetVariantArrayObjectfvATI,
      glGetVariantArrayObjectivATI,
      glGetVariantBooleanvEXT,
      glGetVariantFloatvEXT,
      glGetVariantIntegervEXT,
      glGetVariantPointervEXT,
      glGetVaryingLocationNV,
      glGetVertexArrayIndexed64iv,
      glGetVertexArrayIndexediv,
      glGetVertexArrayIntegeri_vEXT,
      glGetVertexArrayIntegervEXT,
      glGetVertexArrayPointeri_vEXT,
      glGetVertexArrayPointervEXT,
      glGetVertexArrayiv,
      glGetVertexAttribArrayObjectfvATI,
      glGetVertexAttribArrayObjectivATI,
      glGetVertexAttribIiv,
      glGetVertexAttribIivEXT,
      glGetVertexAttribIuiv,
      glGetVertexAttribIuivEXT,
      glGetVertexAttribLdv,
      glGetVertexAttribLdvEXT,
      glGetVertexAttribLi64vNV,
      glGetVertexAttribLui64vARB,
      glGetVertexAttribLui64vNV,
      glGetVertexAttribPointerv,
      glGetVertexAttribPointervARB,
      glGetVertexAttribPointervNV,
      glGetVertexAttribdv,
      glGetVertexAttribdvARB,
      glGetVertexAttribdvNV,
      glGetVertexAttribfv,
      glGetVertexAttribfvARB,
      glGetVertexAttribfvNV,
      glGetVertexAttribiv,
      glGetVertexAttribivARB,
      glGetVertexAttribivNV,
      glGetVideoCaptureStreamdvNV,
      glGetVideoCaptureStreamfvNV,
      glGetVideoCaptureStreamivNV,
      glGetVideoCaptureivNV,
      glGetVideoi64vNV,
      glGetVideoivNV,
      glGetVideoui64vNV
    ) where

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

    -- glGetTexParameterIuivEXT ----------------------------------------------------

    -- | This command is an alias for 'glGetTexParameterIuiv'.
    glGetTexParameterIuivEXT
      :: 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 ()
    glGetTexParameterIuivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetTexParameterIuivEXT 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_glGetTexParameterIuivEXT GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetTexParameterIuivEXT #-}
    ptr_glGetTexParameterIuivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetTexParameterIuivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetTexParameterIuivEXT = 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
    "glGetTexParameterIuivEXT"

    -- glGetTexParameterIuivOES ----------------------------------------------------

    -- | This command is an alias for 'glGetTexParameterIuiv'.
    glGetTexParameterIuivOES
      :: 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 ()
    glGetTexParameterIuivOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetTexParameterIuivOES 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_glGetTexParameterIuivOES GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetTexParameterIuivOES #-}
    ptr_glGetTexParameterIuivOES :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetTexParameterIuivOES :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetTexParameterIuivOES = 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
    "glGetTexParameterIuivOES"

    -- glGetTexParameterPointervAPPLE ----------------------------------------------

    glGetTexParameterPointervAPPLE
      :: MonadIO m
      => GLenum -- ^ @target@.
      -> GLenum -- ^ @pname@.
      -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
      -> m ()
    glGetTexParameterPointervAPPLE :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLenum -> Ptr (Ptr a) -> m ()
    glGetTexParameterPointervAPPLE GLenum
    v1 GLenum
    v2 Ptr (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 (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    dyn330 FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    forall a. FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    ptr_glGetTexParameterPointervAPPLE GLenum
    v1 GLenum
    v2 Ptr (Ptr a)
    v3

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

    -- glGetTexParameterfv ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameter.xml OpenGL 2.x> or <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>.
    glGetTexParameterfv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetTexParameterfv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetTexParameterfv 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_glGetTexParameterfv GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetTexParameterfv #-}
    ptr_glGetTexParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTexParameterfv = 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
    "glGetTexParameterfv"

    -- glGetTexParameteriv ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameter.xml OpenGL 2.x> or <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>.
    glGetTexParameteriv
      :: 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 ()
    glGetTexParameteriv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTexParameteriv 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_glGetTexParameteriv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTexParameteriv #-}
    ptr_glGetTexParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTexParameteriv = 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
    "glGetTexParameteriv"

    -- glGetTexParameterxv ---------------------------------------------------------

    glGetTexParameterxv
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
      -> m ()
    glGetTexParameterxv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfixed -> m ()
    glGetTexParameterxv 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_glGetTexParameterxv GLenum
    v1 GLenum
    v2 Ptr GLfixed
    v3

    {-# NOINLINE ptr_glGetTexParameterxv #-}
    ptr_glGetTexParameterxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexParameterxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexParameterxv = 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
    "glGetTexParameterxv"

    -- glGetTexParameterxvOES ------------------------------------------------------

    glGetTexParameterxvOES
      :: MonadIO m
      => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
      -> m ()
    glGetTexParameterxvOES :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfixed -> m ()
    glGetTexParameterxvOES 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_glGetTexParameterxvOES GLenum
    v1 GLenum
    v2 Ptr GLfixed
    v3

    {-# NOINLINE ptr_glGetTexParameterxvOES #-}
    ptr_glGetTexParameterxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexParameterxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
    ptr_glGetTexParameterxvOES = 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
    "glGetTexParameterxvOES"

    -- glGetTextureHandleARB -------------------------------------------------------

    glGetTextureHandleARB
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> m GLuint64
    glGetTextureHandleARB :: forall (m :: * -> *). MonadIO m => GLenum -> m GLuint64
    glGetTextureHandleARB GLenum
    v1 = IO GLuint64 -> m GLuint64
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint64 -> m GLuint64) -> IO GLuint64 -> m GLuint64
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO GLuint64) -> GLenum -> IO GLuint64
    dyn433 FunPtr (GLenum -> IO GLuint64)
    ptr_glGetTextureHandleARB GLenum
    v1

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

    -- glGetTextureHandleIMG -------------------------------------------------------

    -- | This command is an alias for 'glGetTextureHandleARB'.
    glGetTextureHandleIMG
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> m GLuint64
    glGetTextureHandleIMG :: forall (m :: * -> *). MonadIO m => GLenum -> m GLuint64
    glGetTextureHandleIMG GLenum
    v1 = IO GLuint64 -> m GLuint64
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint64 -> m GLuint64) -> IO GLuint64 -> m GLuint64
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO GLuint64) -> GLenum -> IO GLuint64
    dyn433 FunPtr (GLenum -> IO GLuint64)
    ptr_glGetTextureHandleIMG GLenum
    v1

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

    -- glGetTextureHandleNV --------------------------------------------------------

    glGetTextureHandleNV
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> m GLuint64
    glGetTextureHandleNV :: forall (m :: * -> *). MonadIO m => GLenum -> m GLuint64
    glGetTextureHandleNV GLenum
    v1 = IO GLuint64 -> m GLuint64
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint64 -> m GLuint64) -> IO GLuint64 -> m GLuint64
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> IO GLuint64) -> GLenum -> IO GLuint64
    dyn433 FunPtr (GLenum -> IO GLuint64)
    ptr_glGetTextureHandleNV GLenum
    v1

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

    -- glGetTextureImage -----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexImage.xhtml OpenGL 4.x>.
    glGetTextureImage
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLint -- ^ @level@.
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> GLsizei -- ^ @bufSize@.
      -> Ptr a -- ^ @pixels@.
      -> m ()
    glGetTextureImage :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLint -> GLenum -> GLenum -> GLint -> Ptr a -> m ()
    glGetTextureImage GLenum
    v1 GLint
    v2 GLenum
    v3 GLenum
    v4 GLint
    v5 Ptr a
    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 -> GLint -> GLenum -> GLenum -> GLint -> Ptr a -> IO ())
    -> GLenum -> GLint -> GLenum -> GLenum -> GLint -> Ptr a -> IO ()
    forall a.
    FunPtr
      (GLenum -> GLint -> GLenum -> GLenum -> GLint -> Ptr a -> IO ())
    -> GLenum -> GLint -> GLenum -> GLenum -> GLint -> Ptr a -> IO ()
    dyn434 FunPtr
      (GLenum -> GLint -> GLenum -> GLenum -> GLint -> Ptr a -> IO ())
    forall a.
    FunPtr
      (GLenum -> GLint -> GLenum -> GLenum -> GLint -> Ptr a -> IO ())
    ptr_glGetTextureImage GLenum
    v1 GLint
    v2 GLenum
    v3 GLenum
    v4 GLint
    v5 Ptr a
    v6

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

    -- glGetTextureImageEXT --------------------------------------------------------

    glGetTextureImageEXT
      :: MonadIO m
      => GLuint -- ^ @texture@ of type @Texture@.
      -> 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 ()
    glGetTextureImageEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> m ()
    glGetTextureImageEXT GLenum
    v1 GLenum
    v2 GLint
    v3 GLenum
    v4 GLenum
    v5 Ptr a
    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 -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    -> GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
    forall a.
    FunPtr
      (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    -> GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
    dyn435 FunPtr
      (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    forall a.
    FunPtr
      (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
    ptr_glGetTextureImageEXT GLenum
    v1 GLenum
    v2 GLint
    v3 GLenum
    v4 GLenum
    v5 Ptr a
    v6

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

    -- glGetTextureLevelParameterfv ------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml OpenGL 4.x>.
    glGetTextureLevelParameterfv
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLint -- ^ @level@.
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLfloat -- ^ @params@.
      -> m ()
    glGetTextureLevelParameterfv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
    glGetTextureLevelParameterfv 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 ()
    dyn436 FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTextureLevelParameterfv GLenum
    v1 GLint
    v2 GLenum
    v3 Ptr GLfloat
    v4

    {-# NOINLINE ptr_glGetTextureLevelParameterfv #-}
    ptr_glGetTextureLevelParameterfv :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTextureLevelParameterfv :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTextureLevelParameterfv = 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
    "glGetTextureLevelParameterfv"

    -- glGetTextureLevelParameterfvEXT ---------------------------------------------

    glGetTextureLevelParameterfvEXT
      :: MonadIO m
      => GLuint -- ^ @texture@ of type @Texture@.
      -> 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 ()
    glGetTextureLevelParameterfvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
    glGetTextureLevelParameterfvEXT GLenum
    v1 GLenum
    v2 GLint
    v3 GLenum
    v4 Ptr GLfloat
    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 -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
    dyn437 FunPtr
      (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTextureLevelParameterfvEXT GLenum
    v1 GLenum
    v2 GLint
    v3 GLenum
    v4 Ptr GLfloat
    v5

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

    -- glGetTextureLevelParameteriv ------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml OpenGL 4.x>.
    glGetTextureLevelParameteriv
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLint -- ^ @level@.
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLint -- ^ @params@.
      -> m ()
    glGetTextureLevelParameteriv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
    glGetTextureLevelParameteriv 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 ()
    dyn438 FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureLevelParameteriv GLenum
    v1 GLint
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetTextureLevelParameteriv #-}
    ptr_glGetTextureLevelParameteriv :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureLevelParameteriv :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureLevelParameteriv = 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
    "glGetTextureLevelParameteriv"

    -- glGetTextureLevelParameterivEXT ---------------------------------------------

    glGetTextureLevelParameterivEXT
      :: MonadIO m
      => GLuint -- ^ @texture@ of type @Texture@.
      -> 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 ()
    glGetTextureLevelParameterivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
    glGetTextureLevelParameterivEXT GLenum
    v1 GLenum
    v2 GLint
    v3 GLenum
    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 (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
    dyn282 FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureLevelParameterivEXT GLenum
    v1 GLenum
    v2 GLint
    v3 GLenum
    v4 Ptr GLint
    v5

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

    -- glGetTextureParameterIiv ----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
    glGetTextureParameterIiv
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLint -- ^ @params@.
      -> m ()
    glGetTextureParameterIiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTextureParameterIiv 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_glGetTextureParameterIiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTextureParameterIiv #-}
    ptr_glGetTextureParameterIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureParameterIiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureParameterIiv = 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
    "glGetTextureParameterIiv"

    -- glGetTextureParameterIivEXT -------------------------------------------------

    glGetTextureParameterIivEXT
      :: MonadIO m
      => GLuint -- ^ @texture@ of type @Texture@.
      -> 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 ()
    glGetTextureParameterIivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTextureParameterIivEXT 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_glGetTextureParameterIivEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetTextureParameterIivEXT #-}
    ptr_glGetTextureParameterIivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureParameterIivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureParameterIivEXT = 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
    "glGetTextureParameterIivEXT"

    -- glGetTextureParameterIuiv ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
    glGetTextureParameterIuiv
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLuint -- ^ @params@.
      -> m ()
    glGetTextureParameterIuiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetTextureParameterIuiv 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_glGetTextureParameterIuiv GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetTextureParameterIuiv #-}
    ptr_glGetTextureParameterIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetTextureParameterIuiv :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetTextureParameterIuiv = 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
    "glGetTextureParameterIuiv"

    -- glGetTextureParameterIuivEXT ------------------------------------------------

    glGetTextureParameterIuivEXT
      :: MonadIO m
      => GLuint -- ^ @texture@ of type @Texture@.
      -> 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 ()
    glGetTextureParameterIuivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetTextureParameterIuivEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLenum
    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 GLenum -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLenum -> IO ()
    dyn439 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetTextureParameterIuivEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLenum
    v4

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

    -- glGetTextureParameterfv -----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
    glGetTextureParameterfv
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLfloat -- ^ @params@.
      -> m ()
    glGetTextureParameterfv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetTextureParameterfv 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_glGetTextureParameterfv GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetTextureParameterfv #-}
    ptr_glGetTextureParameterfv :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTextureParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTextureParameterfv = 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
    "glGetTextureParameterfv"

    -- glGetTextureParameterfvEXT --------------------------------------------------

    glGetTextureParameterfvEXT
      :: MonadIO m
      => GLuint -- ^ @texture@ of type @Texture@.
      -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetTextureParameterfvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetTextureParameterfvEXT 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 ()
    dyn440 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTextureParameterfvEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLfloat
    v4

    {-# NOINLINE ptr_glGetTextureParameterfvEXT #-}
    ptr_glGetTextureParameterfvEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTextureParameterfvEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetTextureParameterfvEXT = 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
    "glGetTextureParameterfvEXT"

    -- glGetTextureParameteriv -----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
    glGetTextureParameteriv
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
      -> Ptr GLint -- ^ @params@.
      -> m ()
    glGetTextureParameteriv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTextureParameteriv 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_glGetTextureParameteriv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTextureParameteriv #-}
    ptr_glGetTextureParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureParameteriv = 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
    "glGetTextureParameteriv"

    -- glGetTextureParameterivEXT --------------------------------------------------

    glGetTextureParameterivEXT
      :: MonadIO m
      => GLuint -- ^ @texture@ of type @Texture@.
      -> 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 ()
    glGetTextureParameterivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTextureParameterivEXT 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_glGetTextureParameterivEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetTextureParameterivEXT #-}
    ptr_glGetTextureParameterivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureParameterivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTextureParameterivEXT = 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
    "glGetTextureParameterivEXT"

    -- glGetTextureSamplerHandleARB ------------------------------------------------

    glGetTextureSamplerHandleARB
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLuint -- ^ @sampler@.
      -> m GLuint64
    glGetTextureSamplerHandleARB :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m GLuint64
    glGetTextureSamplerHandleARB GLenum
    v1 GLenum
    v2 = IO GLuint64 -> m GLuint64
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint64 -> m GLuint64) -> IO GLuint64 -> m GLuint64
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO GLuint64)
    -> GLenum -> GLenum -> IO GLuint64
    dyn441 FunPtr (GLenum -> GLenum -> IO GLuint64)
    ptr_glGetTextureSamplerHandleARB GLenum
    v1 GLenum
    v2

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

    -- glGetTextureSamplerHandleIMG ------------------------------------------------

    -- | This command is an alias for 'glGetTextureSamplerHandleARB'.
    glGetTextureSamplerHandleIMG
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLuint -- ^ @sampler@.
      -> m GLuint64
    glGetTextureSamplerHandleIMG :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m GLuint64
    glGetTextureSamplerHandleIMG GLenum
    v1 GLenum
    v2 = IO GLuint64 -> m GLuint64
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint64 -> m GLuint64) -> IO GLuint64 -> m GLuint64
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO GLuint64)
    -> GLenum -> GLenum -> IO GLuint64
    dyn441 FunPtr (GLenum -> GLenum -> IO GLuint64)
    ptr_glGetTextureSamplerHandleIMG GLenum
    v1 GLenum
    v2

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

    -- glGetTextureSamplerHandleNV -------------------------------------------------

    glGetTextureSamplerHandleNV
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLuint -- ^ @sampler@.
      -> m GLuint64
    glGetTextureSamplerHandleNV :: forall (m :: * -> *). MonadIO m => GLenum -> GLenum -> m GLuint64
    glGetTextureSamplerHandleNV GLenum
    v1 GLenum
    v2 = IO GLuint64 -> m GLuint64
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLuint64 -> m GLuint64) -> IO GLuint64 -> m GLuint64
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLenum -> IO GLuint64)
    -> GLenum -> GLenum -> IO GLuint64
    dyn441 FunPtr (GLenum -> GLenum -> IO GLuint64)
    ptr_glGetTextureSamplerHandleNV GLenum
    v1 GLenum
    v2

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

    -- glGetTextureSubImage --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTextureSubImage.xhtml OpenGL 4.x>.
    glGetTextureSubImage
      :: MonadIO m
      => GLuint -- ^ @texture@.
      -> GLint -- ^ @level@.
      -> GLint -- ^ @xoffset@.
      -> GLint -- ^ @yoffset@.
      -> GLint -- ^ @zoffset@.
      -> GLsizei -- ^ @width@.
      -> GLsizei -- ^ @height@.
      -> GLsizei -- ^ @depth@.
      -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
      -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
      -> GLsizei -- ^ @bufSize@.
      -> Ptr a -- ^ @pixels@.
      -> m ()
    glGetTextureSubImage :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr a
    -> m ()
    glGetTextureSubImage GLenum
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    v5 GLint
    v6 GLint
    v7 GLint
    v8 GLenum
    v9 GLenum
    v10 GLint
    v11 Ptr a
    v12 = 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
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr a
       -> IO ())
    -> GLenum
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr a
    -> IO ()
    forall a.
    FunPtr
      (GLenum
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr a
       -> IO ())
    -> GLenum
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLint
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr a
    -> IO ()
    dyn442 FunPtr
      (GLenum
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr a
       -> IO ())
    forall a.
    FunPtr
      (GLenum
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLint
       -> GLenum
       -> GLenum
       -> GLint
       -> Ptr a
       -> IO ())
    ptr_glGetTextureSubImage GLenum
    v1 GLint
    v2 GLint
    v3 GLint
    v4 GLint
    v5 GLint
    v6 GLint
    v7 GLint
    v8 GLenum
    v9 GLenum
    v10 GLint
    v11 Ptr a
    v12

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

    -- glGetTrackMatrixivNV --------------------------------------------------------

    glGetTrackMatrixivNV
      :: MonadIO m
      => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> GLuint -- ^ @address@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetTrackMatrixivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTrackMatrixivNV 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_glGetTrackMatrixivNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetTrackMatrixivNV #-}
    ptr_glGetTrackMatrixivNV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTrackMatrixivNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTrackMatrixivNV = 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
    "glGetTrackMatrixivNV"

    -- glGetTransformFeedbackVarying -----------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTransformFeedbackVarying.xhtml OpenGL 4.x>.
    glGetTransformFeedbackVarying
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLsizei -- ^ @size@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [GlslTypeToken](Graphics-GL-Groups.html#GlslTypeToken).
      -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetTransformFeedbackVarying :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum
    -> GLint
    -> Ptr GLint
    -> Ptr GLint
    -> Ptr GLenum
    -> Ptr GLchar
    -> m ()
    glGetTransformFeedbackVarying GLenum
    v1 GLenum
    v2 GLint
    v3 Ptr GLint
    v4 Ptr GLint
    v5 Ptr GLenum
    v6 Ptr GLchar
    v7 = 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
       -> GLint
       -> Ptr GLint
       -> Ptr GLint
       -> Ptr GLenum
       -> Ptr GLchar
       -> IO ())
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr GLint
    -> Ptr GLint
    -> Ptr GLenum
    -> Ptr GLchar
    -> IO ()
    dyn321 FunPtr
      (GLenum
       -> GLenum
       -> GLint
       -> Ptr GLint
       -> Ptr GLint
       -> Ptr GLenum
       -> Ptr GLchar
       -> IO ())
    ptr_glGetTransformFeedbackVarying GLenum
    v1 GLenum
    v2 GLint
    v3 Ptr GLint
    v4 Ptr GLint
    v5 Ptr GLenum
    v6 Ptr GLchar
    v7

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

    -- glGetTransformFeedbackVaryingEXT --------------------------------------------

    -- | This command is an alias for 'glGetTransformFeedbackVarying'.
    glGetTransformFeedbackVaryingEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @index@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLsizei -- ^ @size@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [GlslTypeToken](Graphics-GL-Groups.html#GlslTypeToken).
      -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
      -> m ()
    glGetTransformFeedbackVaryingEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum
    -> GLenum
    -> GLint
    -> Ptr GLint
    -> Ptr GLint
    -> Ptr GLenum
    -> Ptr GLchar
    -> m ()
    glGetTransformFeedbackVaryingEXT GLenum
    v1 GLenum
    v2 GLint
    v3 Ptr GLint
    v4 Ptr GLint
    v5 Ptr GLenum
    v6 Ptr GLchar
    v7 = 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
       -> GLint
       -> Ptr GLint
       -> Ptr GLint
       -> Ptr GLenum
       -> Ptr GLchar
       -> IO ())
    -> GLenum
    -> GLenum
    -> GLint
    -> Ptr GLint
    -> Ptr GLint
    -> Ptr GLenum
    -> Ptr GLchar
    -> IO ()
    dyn321 FunPtr
      (GLenum
       -> GLenum
       -> GLint
       -> Ptr GLint
       -> Ptr GLint
       -> Ptr GLenum
       -> Ptr GLchar
       -> IO ())
    ptr_glGetTransformFeedbackVaryingEXT GLenum
    v1 GLenum
    v2 GLint
    v3 Ptr GLint
    v4 Ptr GLint
    v5 Ptr GLenum
    v6 Ptr GLchar
    v7

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

    -- glGetTransformFeedbackVaryingNV ---------------------------------------------

    glGetTransformFeedbackVaryingNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLuint -- ^ @index@.
      -> Ptr GLint -- ^ @location@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetTransformFeedbackVaryingNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTransformFeedbackVaryingNV 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 ()
    dyn443 FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTransformFeedbackVaryingNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTransformFeedbackVaryingNV #-}
    ptr_glGetTransformFeedbackVaryingNV :: FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
    ptr_glGetTransformFeedbackVaryingNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTransformFeedbackVaryingNV = 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
    "glGetTransformFeedbackVaryingNV"

    -- glGetTransformFeedbacki64_v -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTransformFeedback.xhtml OpenGL 4.x>.
    glGetTransformFeedbacki64_v
      :: MonadIO m
      => GLuint -- ^ @xfb@.
      -> GLenum -- ^ @pname@ of type [TransformFeedbackPName](Graphics-GL-Groups.html#TransformFeedbackPName).
      -> GLuint -- ^ @index@.
      -> Ptr GLint64 -- ^ @param@.
      -> m ()
    glGetTransformFeedbacki64_v :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint64 -> m ()
    glGetTransformFeedbacki64_v GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint64
    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 GLint64 -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLint64 -> IO ()
    dyn444 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetTransformFeedbacki64_v GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint64
    v4

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

    -- glGetTransformFeedbacki_v ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTransformFeedback.xhtml OpenGL 4.x>.
    glGetTransformFeedbacki_v
      :: MonadIO m
      => GLuint -- ^ @xfb@.
      -> GLenum -- ^ @pname@ of type [TransformFeedbackPName](Graphics-GL-Groups.html#TransformFeedbackPName).
      -> GLuint -- ^ @index@.
      -> Ptr GLint -- ^ @param@.
      -> m ()
    glGetTransformFeedbacki_v :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTransformFeedbacki_v 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 ()
    dyn381 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTransformFeedbacki_v GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetTransformFeedbacki_v #-}
    ptr_glGetTransformFeedbacki_v :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
    ptr_glGetTransformFeedbacki_v :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTransformFeedbacki_v = 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
    "glGetTransformFeedbacki_v"

    -- glGetTransformFeedbackiv ----------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTransformFeedback.xhtml OpenGL 4.x>.
    glGetTransformFeedbackiv
      :: MonadIO m
      => GLuint -- ^ @xfb@.
      -> GLenum -- ^ @pname@ of type [TransformFeedbackPName](Graphics-GL-Groups.html#TransformFeedbackPName).
      -> Ptr GLint -- ^ @param@.
      -> m ()
    glGetTransformFeedbackiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetTransformFeedbackiv 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_glGetTransformFeedbackiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetTransformFeedbackiv #-}
    ptr_glGetTransformFeedbackiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTransformFeedbackiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetTransformFeedbackiv = 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
    "glGetTransformFeedbackiv"

    -- glGetTranslatedShaderSourceANGLE --------------------------------------------

    glGetTranslatedShaderSourceANGLE
      :: MonadIO m
      => GLuint -- ^ @shader@.
      -> GLsizei -- ^ @bufSize@.
      -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
      -> Ptr GLchar -- ^ @source@.
      -> m ()
    glGetTranslatedShaderSourceANGLE :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> m ()
    glGetTranslatedShaderSourceANGLE 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_glGetTranslatedShaderSourceANGLE GLenum
    v1 GLint
    v2 Ptr GLint
    v3 Ptr GLchar
    v4

    {-# NOINLINE ptr_glGetTranslatedShaderSourceANGLE #-}
    ptr_glGetTranslatedShaderSourceANGLE :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
    ptr_glGetTranslatedShaderSourceANGLE :: FunPtr (GLenum -> GLint -> Ptr GLint -> Ptr GLchar -> IO ())
    ptr_glGetTranslatedShaderSourceANGLE = 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
    "glGetTranslatedShaderSourceANGLE"

    -- glGetUniformBlockIndex ------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformBlockIndex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniformBlockIndex.xhtml OpenGL 4.x>.
    glGetUniformBlockIndex
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> Ptr GLchar -- ^ @uniformBlockName@ pointing to @COMPSIZE()@ elements of type @GLchar@.
      -> m GLuint
    glGetUniformBlockIndex :: forall (m :: * -> *). MonadIO m => GLenum -> Ptr GLchar -> m GLenum
    glGetUniformBlockIndex GLenum
    v1 Ptr GLchar
    v2 = 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 -> Ptr GLchar -> IO GLenum)
    -> GLenum -> Ptr GLchar -> IO GLenum
    dyn445 FunPtr (GLenum -> Ptr GLchar -> IO GLenum)
    ptr_glGetUniformBlockIndex GLenum
    v1 Ptr GLchar
    v2

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

    -- glGetUniformBufferSizeEXT ---------------------------------------------------

    glGetUniformBufferSizeEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> m GLint
    glGetUniformBufferSizeEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLint -> m GLint
    glGetUniformBufferSizeEXT GLenum
    v1 GLint
    v2 = 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 -> GLint -> IO GLint) -> GLenum -> GLint -> IO GLint
    dyn446 FunPtr (GLenum -> GLint -> IO GLint)
    ptr_glGetUniformBufferSizeEXT GLenum
    v1 GLint
    v2

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

    -- glGetUniformIndices ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformIndices.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniformIndices.xhtml OpenGL 4.x>.
    glGetUniformIndices
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLsizei -- ^ @uniformCount@.
      -> Ptr (Ptr GLchar) -- ^ @uniformNames@ pointing to @COMPSIZE(uniformCount)@ elements of type @Ptr GLchar@.
      -> Ptr GLuint -- ^ @uniformIndices@ pointing to @COMPSIZE(uniformCount)@ elements of type @GLuint@.
      -> m ()
    glGetUniformIndices :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr (Ptr GLchar) -> Ptr GLenum -> m ()
    glGetUniformIndices GLenum
    v1 GLint
    v2 Ptr (Ptr GLchar)
    v3 Ptr GLenum
    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 (Ptr GLchar) -> Ptr GLenum -> IO ())
    -> GLenum -> GLint -> Ptr (Ptr GLchar) -> Ptr GLenum -> IO ()
    dyn447 FunPtr (GLenum -> GLint -> Ptr (Ptr GLchar) -> Ptr GLenum -> IO ())
    ptr_glGetUniformIndices GLenum
    v1 GLint
    v2 Ptr (Ptr GLchar)
    v3 Ptr GLenum
    v4

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

    -- glGetUniformLocation --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetUniformLocation.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniformLocation.xhtml OpenGL 4.x>.
    glGetUniformLocation
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> Ptr GLchar -- ^ @name@.
      -> m GLint
    glGetUniformLocation :: forall (m :: * -> *). MonadIO m => GLenum -> Ptr GLchar -> m GLint
    glGetUniformLocation GLenum
    v1 Ptr GLchar
    v2 = 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 -> Ptr GLchar -> IO GLint)
    -> GLenum -> Ptr GLchar -> IO GLint
    dyn324 FunPtr (GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetUniformLocation GLenum
    v1 Ptr GLchar
    v2

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

    -- glGetUniformLocationARB -----------------------------------------------------

    -- | This command is an alias for 'glGetUniformLocation'.
    glGetUniformLocationARB
      :: MonadIO m
      => GLhandleARB -- ^ @programObj@ of type @handleARB@.
      -> Ptr GLcharARB -- ^ @name@.
      -> m GLint
    glGetUniformLocationARB :: forall (m :: * -> *). MonadIO m => GLenum -> Ptr GLchar -> m GLint
    glGetUniformLocationARB GLenum
    v1 Ptr GLchar
    v2 = 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 -> Ptr GLchar -> IO GLint)
    -> GLenum -> Ptr GLchar -> IO GLint
    dyn325 FunPtr (GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetUniformLocationARB GLenum
    v1 Ptr GLchar
    v2

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

    -- glGetUniformOffsetEXT -------------------------------------------------------

    glGetUniformOffsetEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> m GLintptr -- ^ of type @BufferOffset@.
    glGetUniformOffsetEXT :: forall (m :: * -> *). MonadIO m => GLenum -> GLint -> m GLintptr
    glGetUniformOffsetEXT GLenum
    v1 GLint
    v2 = IO GLintptr -> m GLintptr
    forall a. IO a -> m a
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO GLintptr -> m GLintptr) -> IO GLintptr -> m GLintptr
    forall a b. (a -> b) -> a -> b
    $ FunPtr (GLenum -> GLint -> IO GLintptr)
    -> GLenum -> GLint -> IO GLintptr
    dyn448 FunPtr (GLenum -> GLint -> IO GLintptr)
    ptr_glGetUniformOffsetEXT GLenum
    v1 GLint
    v2

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

    -- glGetUniformSubroutineuiv ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniformSubroutine.xhtml OpenGL 4.x>.
    glGetUniformSubroutineuiv
      :: MonadIO m
      => GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
      -> GLint -- ^ @location@.
      -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
      -> m ()
    glGetUniformSubroutineuiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLenum -> m ()
    glGetUniformSubroutineuiv GLenum
    v1 GLint
    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 -> GLint -> Ptr GLenum -> IO ())
    -> GLenum -> GLint -> Ptr GLenum -> IO ()
    dyn81 FunPtr (GLenum -> GLint -> Ptr GLenum -> IO ())
    ptr_glGetUniformSubroutineuiv GLenum
    v1 GLint
    v2 Ptr GLenum
    v3

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

    -- glGetUniformdv --------------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
    glGetUniformdv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLdouble@.
      -> m ()
    glGetUniformdv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLdouble -> m ()
    glGetUniformdv GLenum
    v1 GLint
    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 -> GLint -> Ptr GLdouble -> IO ())
    -> GLenum -> GLint -> Ptr GLdouble -> IO ()
    dyn449 FunPtr (GLenum -> GLint -> Ptr GLdouble -> IO ())
    ptr_glGetUniformdv GLenum
    v1 GLint
    v2 Ptr GLdouble
    v3

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

    -- glGetUniformfv --------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
    glGetUniformfv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLfloat@.
      -> m ()
    glGetUniformfv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLfloat -> m ()
    glGetUniformfv GLenum
    v1 GLint
    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 -> GLint -> Ptr GLfloat -> IO ())
    -> GLenum -> GLint -> Ptr GLfloat -> IO ()
    dyn450 FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
    ptr_glGetUniformfv GLenum
    v1 GLint
    v2 Ptr GLfloat
    v3

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

    -- glGetUniformfvARB -----------------------------------------------------------

    -- | This command is an alias for 'glGetUniformfv'.
    glGetUniformfvARB
      :: MonadIO m
      => GLhandleARB -- ^ @programObj@ of type @handleARB@.
      -> GLint -- ^ @location@.
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(programObj,location)@ elements of type @GLfloat@.
      -> m ()
    glGetUniformfvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLfloat -> m ()
    glGetUniformfvARB GLenum
    v1 GLint
    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 -> GLint -> Ptr GLfloat -> IO ())
    -> GLenum -> GLint -> Ptr GLfloat -> IO ()
    dyn451 FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
    ptr_glGetUniformfvARB GLenum
    v1 GLint
    v2 Ptr GLfloat
    v3

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

    -- glGetUniformi64vARB ---------------------------------------------------------

    glGetUniformi64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLint64@.
      -> m ()
    glGetUniformi64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint64 -> m ()
    glGetUniformi64vARB GLenum
    v1 GLint
    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 -> GLint -> Ptr GLint64 -> IO ())
    -> GLenum -> GLint -> Ptr GLint64 -> IO ()
    dyn452 FunPtr (GLenum -> GLint -> Ptr GLint64 -> IO ())
    ptr_glGetUniformi64vARB GLenum
    v1 GLint
    v2 Ptr GLint64
    v3

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

    -- glGetUniformi64vNV ----------------------------------------------------------

    glGetUniformi64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> Ptr GLint64EXT -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLint64EXT@.
      -> m ()
    glGetUniformi64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint64 -> m ()
    glGetUniformi64vNV GLenum
    v1 GLint
    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 -> GLint -> Ptr GLint64 -> IO ())
    -> GLenum -> GLint -> Ptr GLint64 -> IO ()
    dyn453 FunPtr (GLenum -> GLint -> Ptr GLint64 -> IO ())
    ptr_glGetUniformi64vNV GLenum
    v1 GLint
    v2 Ptr GLint64
    v3

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

    -- glGetUniformiv --------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
    glGetUniformiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLint@.
      -> m ()
    glGetUniformiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint -> m ()
    glGetUniformiv GLenum
    v1 GLint
    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 -> GLint -> Ptr GLint -> IO ())
    -> GLenum -> GLint -> Ptr GLint -> IO ()
    dyn454 FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
    ptr_glGetUniformiv GLenum
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glGetUniformivARB -----------------------------------------------------------

    -- | This command is an alias for 'glGetUniformiv'.
    glGetUniformivARB
      :: MonadIO m
      => GLhandleARB -- ^ @programObj@ of type @handleARB@.
      -> GLint -- ^ @location@.
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(programObj,location)@ elements of type @GLint@.
      -> m ()
    glGetUniformivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLint -> m ()
    glGetUniformivARB GLenum
    v1 GLint
    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 -> GLint -> Ptr GLint -> IO ())
    -> GLenum -> GLint -> Ptr GLint -> IO ()
    dyn455 FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
    ptr_glGetUniformivARB GLenum
    v1 GLint
    v2 Ptr GLint
    v3

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

    -- glGetUniformui64vARB --------------------------------------------------------

    glGetUniformui64vARB
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> Ptr GLuint64 -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLuint64@.
      -> m ()
    glGetUniformui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLuint64 -> m ()
    glGetUniformui64vARB GLenum
    v1 GLint
    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 -> GLint -> Ptr GLuint64 -> IO ())
    -> GLenum -> GLint -> Ptr GLuint64 -> IO ()
    dyn456 FunPtr (GLenum -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glGetUniformui64vARB GLenum
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glGetUniformui64vNV ---------------------------------------------------------

    glGetUniformui64vNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> Ptr GLuint64EXT -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLuint64EXT@.
      -> m ()
    glGetUniformui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLuint64 -> m ()
    glGetUniformui64vNV GLenum
    v1 GLint
    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 -> GLint -> Ptr GLuint64 -> IO ())
    -> GLenum -> GLint -> Ptr GLuint64 -> IO ()
    dyn457 FunPtr (GLenum -> GLint -> Ptr GLuint64 -> IO ())
    ptr_glGetUniformui64vNV GLenum
    v1 GLint
    v2 Ptr GLuint64
    v3

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

    -- glGetUniformuiv -------------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
    glGetUniformuiv
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLuint@.
      -> m ()
    glGetUniformuiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLenum -> m ()
    glGetUniformuiv GLenum
    v1 GLint
    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 -> GLint -> Ptr GLenum -> IO ())
    -> GLenum -> GLint -> Ptr GLenum -> IO ()
    dyn458 FunPtr (GLenum -> GLint -> Ptr GLenum -> IO ())
    ptr_glGetUniformuiv GLenum
    v1 GLint
    v2 Ptr GLenum
    v3

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

    -- glGetUniformuivEXT ----------------------------------------------------------

    -- | This command is an alias for 'glGetUniformuiv'.
    glGetUniformuivEXT
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> GLint -- ^ @location@.
      -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLuint@.
      -> m ()
    glGetUniformuivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLint -> Ptr GLenum -> m ()
    glGetUniformuivEXT GLenum
    v1 GLint
    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 -> GLint -> Ptr GLenum -> IO ())
    -> GLenum -> GLint -> Ptr GLenum -> IO ()
    dyn458 FunPtr (GLenum -> GLint -> Ptr GLenum -> IO ())
    ptr_glGetUniformuivEXT GLenum
    v1 GLint
    v2 Ptr GLenum
    v3

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

    -- glGetUnsignedBytei_vEXT -----------------------------------------------------

    glGetUnsignedBytei_vEXT
      :: MonadIO m
      => GLenum -- ^ @target@.
      -> GLuint -- ^ @index@.
      -> Ptr GLubyte -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLubyte@.
      -> m ()
    glGetUnsignedBytei_vEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLubyte -> m ()
    glGetUnsignedBytei_vEXT 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 ()
    dyn459 FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ())
    ptr_glGetUnsignedBytei_vEXT GLenum
    v1 GLenum
    v2 Ptr GLubyte
    v3

    {-# NOINLINE ptr_glGetUnsignedBytei_vEXT #-}
    ptr_glGetUnsignedBytei_vEXT :: FunPtr (GLenum -> GLuint -> Ptr GLubyte -> IO ())
    ptr_glGetUnsignedBytei_vEXT :: FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ())
    ptr_glGetUnsignedBytei_vEXT = 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
    "glGetUnsignedBytei_vEXT"

    -- glGetUnsignedBytevEXT -------------------------------------------------------

    glGetUnsignedBytevEXT
      :: MonadIO m
      => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
      -> Ptr GLubyte -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type @GLubyte@.
      -> m ()
    glGetUnsignedBytevEXT :: forall (m :: * -> *). MonadIO m => GLenum -> Ptr GLubyte -> m ()
    glGetUnsignedBytevEXT GLenum
    v1 Ptr GLubyte
    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 GLubyte -> IO ())
    -> GLenum -> Ptr GLubyte -> IO ()
    dyn460 FunPtr (GLenum -> Ptr GLubyte -> IO ())
    ptr_glGetUnsignedBytevEXT GLenum
    v1 Ptr GLubyte
    v2

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

    -- glGetVariantArrayObjectfvATI ------------------------------------------------

    glGetVariantArrayObjectfvATI
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
      -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
      -> m ()
    glGetVariantArrayObjectfvATI :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetVariantArrayObjectfvATI 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_glGetVariantArrayObjectfvATI GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetVariantArrayObjectfvATI #-}
    ptr_glGetVariantArrayObjectfvATI :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVariantArrayObjectfvATI :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVariantArrayObjectfvATI = 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
    "glGetVariantArrayObjectfvATI"

    -- glGetVariantArrayObjectivATI ------------------------------------------------

    glGetVariantArrayObjectivATI
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
      -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetVariantArrayObjectivATI :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVariantArrayObjectivATI 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_glGetVariantArrayObjectivATI GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVariantArrayObjectivATI #-}
    ptr_glGetVariantArrayObjectivATI :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVariantArrayObjectivATI :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVariantArrayObjectivATI = 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
    "glGetVariantArrayObjectivATI"

    -- glGetVariantBooleanvEXT -----------------------------------------------------

    glGetVariantBooleanvEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
      -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
      -> m ()
    glGetVariantBooleanvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLubyte -> m ()
    glGetVariantBooleanvEXT 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 ()
    dyn363 FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ())
    ptr_glGetVariantBooleanvEXT GLenum
    v1 GLenum
    v2 Ptr GLubyte
    v3

    {-# NOINLINE ptr_glGetVariantBooleanvEXT #-}
    ptr_glGetVariantBooleanvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
    ptr_glGetVariantBooleanvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLubyte -> IO ())
    ptr_glGetVariantBooleanvEXT = 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
    "glGetVariantBooleanvEXT"

    -- glGetVariantFloatvEXT -------------------------------------------------------

    glGetVariantFloatvEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
      -> Ptr GLfloat -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @GLfloat@.
      -> m ()
    glGetVariantFloatvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetVariantFloatvEXT 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_glGetVariantFloatvEXT GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetVariantFloatvEXT #-}
    ptr_glGetVariantFloatvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVariantFloatvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVariantFloatvEXT = 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
    "glGetVariantFloatvEXT"

    -- glGetVariantIntegervEXT -----------------------------------------------------

    glGetVariantIntegervEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
      -> Ptr GLint -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @GLint@.
      -> m ()
    glGetVariantIntegervEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVariantIntegervEXT 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_glGetVariantIntegervEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVariantIntegervEXT #-}
    ptr_glGetVariantIntegervEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVariantIntegervEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVariantIntegervEXT = 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
    "glGetVariantIntegervEXT"

    -- glGetVariantPointervEXT -----------------------------------------------------

    glGetVariantPointervEXT
      :: MonadIO m
      => GLuint -- ^ @id@.
      -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
      -> Ptr (Ptr a) -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @Ptr a@.
      -> m ()
    glGetVariantPointervEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLenum -> Ptr (Ptr a) -> m ()
    glGetVariantPointervEXT GLenum
    v1 GLenum
    v2 Ptr (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 (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    dyn377 FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    forall a. FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    ptr_glGetVariantPointervEXT GLenum
    v1 GLenum
    v2 Ptr (Ptr a)
    v3

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

    -- glGetVaryingLocationNV ------------------------------------------------------

    glGetVaryingLocationNV
      :: MonadIO m
      => GLuint -- ^ @program@.
      -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
      -> m GLint
    glGetVaryingLocationNV :: forall (m :: * -> *). MonadIO m => GLenum -> Ptr GLchar -> m GLint
    glGetVaryingLocationNV GLenum
    v1 Ptr GLchar
    v2 = 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 -> Ptr GLchar -> IO GLint)
    -> GLenum -> Ptr GLchar -> IO GLint
    dyn324 FunPtr (GLenum -> Ptr GLchar -> IO GLint)
    ptr_glGetVaryingLocationNV GLenum
    v1 Ptr GLchar
    v2

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

    -- glGetVertexArrayIndexed64iv -------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetVertexArrayIndexed.xhtml OpenGL 4.x>.
    glGetVertexArrayIndexed64iv
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
      -> Ptr GLint64 -- ^ @param@.
      -> m ()
    glGetVertexArrayIndexed64iv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint64 -> m ()
    glGetVertexArrayIndexed64iv GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint64
    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 GLint64 -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr GLint64 -> IO ()
    dyn461 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetVertexArrayIndexed64iv GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint64
    v4

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

    -- glGetVertexArrayIndexediv ---------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetVertexArrayIndexed.xhtml OpenGL 4.x>.
    glGetVertexArrayIndexediv
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
      -> Ptr GLint -- ^ @param@.
      -> m ()
    glGetVertexArrayIndexediv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexArrayIndexediv 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 ()
    dyn314 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayIndexediv GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetVertexArrayIndexediv #-}
    ptr_glGetVertexArrayIndexediv :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayIndexediv :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayIndexediv = 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
    "glGetVertexArrayIndexediv"

    -- glGetVertexArrayIntegeri_vEXT -----------------------------------------------

    glGetVertexArrayIntegeri_vEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
      -> Ptr GLint -- ^ @param@.
      -> m ()
    glGetVertexArrayIntegeri_vEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexArrayIntegeri_vEXT 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 ()
    dyn314 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayIntegeri_vEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetVertexArrayIntegeri_vEXT #-}
    ptr_glGetVertexArrayIntegeri_vEXT :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayIntegeri_vEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayIntegeri_vEXT = 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
    "glGetVertexArrayIntegeri_vEXT"

    -- glGetVertexArrayIntegervEXT -------------------------------------------------

    glGetVertexArrayIntegervEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
      -> Ptr GLint -- ^ @param@.
      -> m ()
    glGetVertexArrayIntegervEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexArrayIntegervEXT 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_glGetVertexArrayIntegervEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVertexArrayIntegervEXT #-}
    ptr_glGetVertexArrayIntegervEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayIntegervEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayIntegervEXT = 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
    "glGetVertexArrayIntegervEXT"

    -- glGetVertexArrayPointeri_vEXT -----------------------------------------------

    glGetVertexArrayPointeri_vEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
      -> Ptr (Ptr a) -- ^ @param@.
      -> m ()
    glGetVertexArrayPointeri_vEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr (Ptr a) -> m ()
    glGetVertexArrayPointeri_vEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr (Ptr a)
    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 (Ptr a) -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLenum -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    -> GLenum -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    dyn462 FunPtr (GLenum -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    forall a.
    FunPtr (GLenum -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    ptr_glGetVertexArrayPointeri_vEXT GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr (Ptr a)
    v4

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

    -- glGetVertexArrayPointervEXT -------------------------------------------------

    glGetVertexArrayPointervEXT
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
      -> Ptr (Ptr a) -- ^ @param@ pointing to @1@ element of type @Ptr a@.
      -> m ()
    glGetVertexArrayPointervEXT :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLenum -> Ptr (Ptr a) -> m ()
    glGetVertexArrayPointervEXT GLenum
    v1 GLenum
    v2 Ptr (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 (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    dyn377 FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    forall a. FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    ptr_glGetVertexArrayPointervEXT GLenum
    v1 GLenum
    v2 Ptr (Ptr a)
    v3

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

    -- glGetVertexArrayiv ----------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetVertexArrayiv.xhtml OpenGL 4.x>.
    glGetVertexArrayiv
      :: MonadIO m
      => GLuint -- ^ @vaobj@.
      -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
      -> Ptr GLint -- ^ @param@.
      -> m ()
    glGetVertexArrayiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexArrayiv 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_glGetVertexArrayiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVertexArrayiv #-}
    ptr_glGetVertexArrayiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexArrayiv = 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
    "glGetVertexArrayiv"

    -- glGetVertexAttribArrayObjectfvATI -------------------------------------------

    glGetVertexAttribArrayObjectfvATI
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetVertexAttribArrayObjectfvATI :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetVertexAttribArrayObjectfvATI 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_glGetVertexAttribArrayObjectfvATI GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetVertexAttribArrayObjectfvATI #-}
    ptr_glGetVertexAttribArrayObjectfvATI :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVertexAttribArrayObjectfvATI :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVertexAttribArrayObjectfvATI = 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
    "glGetVertexAttribArrayObjectfvATI"

    -- glGetVertexAttribArrayObjectivATI -------------------------------------------

    glGetVertexAttribArrayObjectivATI
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetVertexAttribArrayObjectivATI :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexAttribArrayObjectivATI 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_glGetVertexAttribArrayObjectivATI GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVertexAttribArrayObjectivATI #-}
    ptr_glGetVertexAttribArrayObjectivATI :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribArrayObjectivATI :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribArrayObjectivATI = 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
    "glGetVertexAttribArrayObjectivATI"

    -- glGetVertexAttribIiv --------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
    glGetVertexAttribIiv
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
      -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetVertexAttribIiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexAttribIiv 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_glGetVertexAttribIiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVertexAttribIiv #-}
    ptr_glGetVertexAttribIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribIiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribIiv = 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
    "glGetVertexAttribIiv"

    -- glGetVertexAttribIivEXT -----------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribIiv'.
    glGetVertexAttribIivEXT
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
      -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetVertexAttribIivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexAttribIivEXT 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_glGetVertexAttribIivEXT GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVertexAttribIivEXT #-}
    ptr_glGetVertexAttribIivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribIivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribIivEXT = 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
    "glGetVertexAttribIivEXT"

    -- glGetVertexAttribIuiv -------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
    glGetVertexAttribIuiv
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
      -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
      -> m ()
    glGetVertexAttribIuiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetVertexAttribIuiv 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_glGetVertexAttribIuiv GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetVertexAttribIuiv #-}
    ptr_glGetVertexAttribIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetVertexAttribIuiv :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetVertexAttribIuiv = 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
    "glGetVertexAttribIuiv"

    -- glGetVertexAttribIuivEXT ----------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribIuiv'.
    glGetVertexAttribIuivEXT
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
      -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
      -> m ()
    glGetVertexAttribIuivEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLenum -> m ()
    glGetVertexAttribIuivEXT 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_glGetVertexAttribIuivEXT GLenum
    v1 GLenum
    v2 Ptr GLenum
    v3

    {-# NOINLINE ptr_glGetVertexAttribIuivEXT #-}
    ptr_glGetVertexAttribIuivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
    ptr_glGetVertexAttribIuivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
    ptr_glGetVertexAttribIuivEXT = 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
    "glGetVertexAttribIuivEXT"

    -- glGetVertexAttribLdv --------------------------------------------------------

    -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
    glGetVertexAttribLdv
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
      -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
      -> m ()
    glGetVertexAttribLdv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetVertexAttribLdv 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 ()
    dyn463 FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribLdv GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3

    {-# NOINLINE ptr_glGetVertexAttribLdv #-}
    ptr_glGetVertexAttribLdv :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribLdv :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribLdv = 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
    "glGetVertexAttribLdv"

    -- glGetVertexAttribLdvEXT -----------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribLdv'.
    glGetVertexAttribLdvEXT
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
      -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
      -> m ()
    glGetVertexAttribLdvEXT :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetVertexAttribLdvEXT 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 ()
    dyn463 FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribLdvEXT GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3

    {-# NOINLINE ptr_glGetVertexAttribLdvEXT #-}
    ptr_glGetVertexAttribLdvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribLdvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribLdvEXT = 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
    "glGetVertexAttribLdvEXT"

    -- glGetVertexAttribLi64vNV ----------------------------------------------------

    glGetVertexAttribLi64vNV
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
      -> Ptr GLint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64EXT@.
      -> m ()
    glGetVertexAttribLi64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint64 -> m ()
    glGetVertexAttribLi64vNV 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 ()
    dyn464 FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetVertexAttribLi64vNV GLenum
    v1 GLenum
    v2 Ptr GLint64
    v3

    {-# NOINLINE ptr_glGetVertexAttribLi64vNV #-}
    ptr_glGetVertexAttribLi64vNV :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ())
    ptr_glGetVertexAttribLi64vNV :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetVertexAttribLi64vNV = 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
    "glGetVertexAttribLi64vNV"

    -- glGetVertexAttribLui64vARB --------------------------------------------------

    glGetVertexAttribLui64vARB
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
      -> Ptr GLuint64EXT -- ^ @params@.
      -> m ()
    glGetVertexAttribLui64vARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLuint64 -> m ()
    glGetVertexAttribLui64vARB 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 ()
    dyn376 FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetVertexAttribLui64vARB GLenum
    v1 GLenum
    v2 Ptr GLuint64
    v3

    {-# NOINLINE ptr_glGetVertexAttribLui64vARB #-}
    ptr_glGetVertexAttribLui64vARB :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
    ptr_glGetVertexAttribLui64vARB :: FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetVertexAttribLui64vARB = 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
    "glGetVertexAttribLui64vARB"

    -- glGetVertexAttribLui64vNV ---------------------------------------------------

    glGetVertexAttribLui64vNV
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
      -> Ptr GLuint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64EXT@.
      -> m ()
    glGetVertexAttribLui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLuint64 -> m ()
    glGetVertexAttribLui64vNV 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 ()
    dyn376 FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetVertexAttribLui64vNV GLenum
    v1 GLenum
    v2 Ptr GLuint64
    v3

    {-# NOINLINE ptr_glGetVertexAttribLui64vNV #-}
    ptr_glGetVertexAttribLui64vNV :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
    ptr_glGetVertexAttribLui64vNV :: FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetVertexAttribLui64vNV = 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
    "glGetVertexAttribLui64vNV"

    -- glGetVertexAttribPointerv ---------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetVertexAttribPointerv.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribPointerv.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttribPointerv.xhtml OpenGL 4.x>.
    glGetVertexAttribPointerv
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribPointerPropertyARB](Graphics-GL-Groups.html#VertexAttribPointerPropertyARB).
      -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ element of type @Ptr a@.
      -> m ()
    glGetVertexAttribPointerv :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLenum -> Ptr (Ptr a) -> m ()
    glGetVertexAttribPointerv GLenum
    v1 GLenum
    v2 Ptr (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 (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    dyn377 FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    forall a. FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    ptr_glGetVertexAttribPointerv GLenum
    v1 GLenum
    v2 Ptr (Ptr a)
    v3

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

    -- glGetVertexAttribPointervARB ------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribPointerv'.
    glGetVertexAttribPointervARB
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribPointerPropertyARB](Graphics-GL-Groups.html#VertexAttribPointerPropertyARB).
      -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ element of type @Ptr a@.
      -> m ()
    glGetVertexAttribPointervARB :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLenum -> Ptr (Ptr a) -> m ()
    glGetVertexAttribPointervARB GLenum
    v1 GLenum
    v2 Ptr (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 (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    dyn377 FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    forall a. FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    ptr_glGetVertexAttribPointervARB GLenum
    v1 GLenum
    v2 Ptr (Ptr a)
    v3

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

    -- glGetVertexAttribPointervNV -------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribPointerv'.
    glGetVertexAttribPointervNV
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ element of type @Ptr a@.
      -> m ()
    glGetVertexAttribPointervNV :: forall (m :: * -> *) a.
    MonadIO m =>
    GLenum -> GLenum -> Ptr (Ptr a) -> m ()
    glGetVertexAttribPointervNV GLenum
    v1 GLenum
    v2 Ptr (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 (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    forall a.
    FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    -> GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
    dyn377 FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    forall a. FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
    ptr_glGetVertexAttribPointervNV GLenum
    v1 GLenum
    v2 Ptr (Ptr a)
    v3

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

    -- glGetVertexAttribdv ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
    glGetVertexAttribdv
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
      -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
      -> m ()
    glGetVertexAttribdv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetVertexAttribdv 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 ()
    dyn463 FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribdv GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3

    {-# NOINLINE ptr_glGetVertexAttribdv #-}
    ptr_glGetVertexAttribdv :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribdv :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribdv = 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
    "glGetVertexAttribdv"

    -- glGetVertexAttribdvARB ------------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribdv'.
    glGetVertexAttribdvARB
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
      -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
      -> m ()
    glGetVertexAttribdvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetVertexAttribdvARB 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 ()
    dyn463 FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribdvARB GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3

    {-# NOINLINE ptr_glGetVertexAttribdvARB #-}
    ptr_glGetVertexAttribdvARB :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribdvARB :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribdvARB = 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
    "glGetVertexAttribdvARB"

    -- glGetVertexAttribdvNV -------------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribdv'.
    glGetVertexAttribdvNV
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> Ptr GLdouble -- ^ @params@ pointing to @1@ element of type @GLdouble@.
      -> m ()
    glGetVertexAttribdvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetVertexAttribdvNV 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 ()
    dyn463 FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribdvNV GLenum
    v1 GLenum
    v2 Ptr GLdouble
    v3

    {-# NOINLINE ptr_glGetVertexAttribdvNV #-}
    ptr_glGetVertexAttribdvNV :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribdvNV :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVertexAttribdvNV = 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
    "glGetVertexAttribdvNV"

    -- glGetVertexAttribfv ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
    glGetVertexAttribfv
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
      -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glGetVertexAttribfv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetVertexAttribfv 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_glGetVertexAttribfv GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetVertexAttribfv #-}
    ptr_glGetVertexAttribfv :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVertexAttribfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVertexAttribfv = 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
    "glGetVertexAttribfv"

    -- glGetVertexAttribfvARB ------------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribfv'.
    glGetVertexAttribfvARB
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
      -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
      -> m ()
    glGetVertexAttribfvARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetVertexAttribfvARB 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_glGetVertexAttribfvARB GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetVertexAttribfvARB #-}
    ptr_glGetVertexAttribfvARB :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVertexAttribfvARB :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVertexAttribfvARB = 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
    "glGetVertexAttribfvARB"

    -- glGetVertexAttribfvNV -------------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribfv'.
    glGetVertexAttribfvNV
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
      -> m ()
    glGetVertexAttribfvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetVertexAttribfvNV 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_glGetVertexAttribfvNV GLenum
    v1 GLenum
    v2 Ptr GLfloat
    v3

    {-# NOINLINE ptr_glGetVertexAttribfvNV #-}
    ptr_glGetVertexAttribfvNV :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVertexAttribfvNV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVertexAttribfvNV = 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
    "glGetVertexAttribfvNV"

    -- glGetVertexAttribiv ---------------------------------------------------------

    -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
    glGetVertexAttribiv
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
      -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
      -> m ()
    glGetVertexAttribiv :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexAttribiv 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_glGetVertexAttribiv GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVertexAttribiv #-}
    ptr_glGetVertexAttribiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribiv = 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
    "glGetVertexAttribiv"

    -- glGetVertexAttribivARB ------------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribiv'.
    glGetVertexAttribivARB
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
      -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
      -> m ()
    glGetVertexAttribivARB :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexAttribivARB 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_glGetVertexAttribivARB GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVertexAttribivARB #-}
    ptr_glGetVertexAttribivARB :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribivARB :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribivARB = 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
    "glGetVertexAttribivARB"

    -- glGetVertexAttribivNV -------------------------------------------------------

    -- | This command is an alias for 'glGetVertexAttribiv'.
    glGetVertexAttribivNV
      :: MonadIO m
      => GLuint -- ^ @index@.
      -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
      -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
      -> m ()
    glGetVertexAttribivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVertexAttribivNV 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_glGetVertexAttribivNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVertexAttribivNV #-}
    ptr_glGetVertexAttribivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVertexAttribivNV = 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
    "glGetVertexAttribivNV"

    -- glGetVideoCaptureStreamdvNV -------------------------------------------------

    glGetVideoCaptureStreamdvNV
      :: MonadIO m
      => GLuint -- ^ @video_capture_slot@.
      -> GLuint -- ^ @stream@.
      -> GLenum -- ^ @pname@.
      -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
      -> m ()
    glGetVideoCaptureStreamdvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
    glGetVideoCaptureStreamdvNV 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 ()
    dyn465 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVideoCaptureStreamdvNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLdouble
    v4

    {-# NOINLINE ptr_glGetVideoCaptureStreamdvNV #-}
    ptr_glGetVideoCaptureStreamdvNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVideoCaptureStreamdvNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
    ptr_glGetVideoCaptureStreamdvNV = 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
    "glGetVideoCaptureStreamdvNV"

    -- glGetVideoCaptureStreamfvNV -------------------------------------------------

    glGetVideoCaptureStreamfvNV
      :: MonadIO m
      => GLuint -- ^ @video_capture_slot@.
      -> GLuint -- ^ @stream@.
      -> GLenum -- ^ @pname@.
      -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
      -> m ()
    glGetVideoCaptureStreamfvNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
    glGetVideoCaptureStreamfvNV 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 ()
    dyn466 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVideoCaptureStreamfvNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLfloat
    v4

    {-# NOINLINE ptr_glGetVideoCaptureStreamfvNV #-}
    ptr_glGetVideoCaptureStreamfvNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVideoCaptureStreamfvNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
    ptr_glGetVideoCaptureStreamfvNV = 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
    "glGetVideoCaptureStreamfvNV"

    -- glGetVideoCaptureStreamivNV -------------------------------------------------

    glGetVideoCaptureStreamivNV
      :: MonadIO m
      => GLuint -- ^ @video_capture_slot@.
      -> GLuint -- ^ @stream@.
      -> GLenum -- ^ @pname@.
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetVideoCaptureStreamivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVideoCaptureStreamivNV 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 ()
    dyn314 FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVideoCaptureStreamivNV GLenum
    v1 GLenum
    v2 GLenum
    v3 Ptr GLint
    v4

    {-# NOINLINE ptr_glGetVideoCaptureStreamivNV #-}
    ptr_glGetVideoCaptureStreamivNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVideoCaptureStreamivNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVideoCaptureStreamivNV = 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
    "glGetVideoCaptureStreamivNV"

    -- glGetVideoCaptureivNV -------------------------------------------------------

    glGetVideoCaptureivNV
      :: MonadIO m
      => GLuint -- ^ @video_capture_slot@.
      -> GLenum -- ^ @pname@.
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetVideoCaptureivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVideoCaptureivNV 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_glGetVideoCaptureivNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVideoCaptureivNV #-}
    ptr_glGetVideoCaptureivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVideoCaptureivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVideoCaptureivNV = 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
    "glGetVideoCaptureivNV"

    -- glGetVideoi64vNV ------------------------------------------------------------

    glGetVideoi64vNV
      :: MonadIO m
      => GLuint -- ^ @video_slot@.
      -> GLenum -- ^ @pname@.
      -> Ptr GLint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64EXT@.
      -> m ()
    glGetVideoi64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint64 -> m ()
    glGetVideoi64vNV 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 ()
    dyn464 FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetVideoi64vNV GLenum
    v1 GLenum
    v2 Ptr GLint64
    v3

    {-# NOINLINE ptr_glGetVideoi64vNV #-}
    ptr_glGetVideoi64vNV :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ())
    ptr_glGetVideoi64vNV :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
    ptr_glGetVideoi64vNV = 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
    "glGetVideoi64vNV"

    -- glGetVideoivNV --------------------------------------------------------------

    glGetVideoivNV
      :: MonadIO m
      => GLuint -- ^ @video_slot@.
      -> GLenum -- ^ @pname@.
      -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
      -> m ()
    glGetVideoivNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLint -> m ()
    glGetVideoivNV 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_glGetVideoivNV GLenum
    v1 GLenum
    v2 Ptr GLint
    v3

    {-# NOINLINE ptr_glGetVideoivNV #-}
    ptr_glGetVideoivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVideoivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
    ptr_glGetVideoivNV = 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
    "glGetVideoivNV"

    -- glGetVideoui64vNV -----------------------------------------------------------

    glGetVideoui64vNV
      :: MonadIO m
      => GLuint -- ^ @video_slot@.
      -> GLenum -- ^ @pname@.
      -> Ptr GLuint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64EXT@.
      -> m ()
    glGetVideoui64vNV :: forall (m :: * -> *).
    MonadIO m =>
    GLenum -> GLenum -> Ptr GLuint64 -> m ()
    glGetVideoui64vNV 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 ()
    dyn376 FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetVideoui64vNV GLenum
    v1 GLenum
    v2 Ptr GLuint64
    v3

    {-# NOINLINE ptr_glGetVideoui64vNV #-}
    ptr_glGetVideoui64vNV :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
    ptr_glGetVideoui64vNV :: FunPtr (GLenum -> GLenum -> Ptr GLuint64 -> IO ())
    ptr_glGetVideoui64vNV = 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
    "glGetVideoui64vNV"