-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.NV.VertexProgram4 (
  -- * Extension Support
    gl_NV_vertex_program4

  -- * GL_NV_vertex_program4
  , glGetVertexAttribIivEXT
  , glGetVertexAttribIuivEXT
  , glVertexAttribI1iEXT
  , glVertexAttribI1ivEXT
  , glVertexAttribI1uiEXT
  , glVertexAttribI1uivEXT
  , glVertexAttribI2iEXT
  , glVertexAttribI2ivEXT
  , glVertexAttribI2uiEXT
  , glVertexAttribI2uivEXT
  , glVertexAttribI3iEXT
  , glVertexAttribI3ivEXT
  , glVertexAttribI3uiEXT
  , glVertexAttribI3uivEXT
  , glVertexAttribI4bvEXT
  , glVertexAttribI4iEXT
  , glVertexAttribI4ivEXT
  , glVertexAttribI4svEXT
  , glVertexAttribI4ubvEXT
  , glVertexAttribI4uiEXT
  , glVertexAttribI4uivEXT
  , glVertexAttribI4usvEXT
  , glVertexAttribIPointerEXT
  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV
) where

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

-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program4.txt GL_NV_vertex_program4> extension is available.

gl_NV_vertex_program4 :: Bool
gl_NV_vertex_program4 :: Bool
gl_NV_vertex_program4 = [Char] -> Set [Char] -> Bool
forall a. Ord a => a -> Set a -> Bool
member "GL_NV_vertex_program4" Set [Char]
extensions
{-# NOINLINE gl_NV_vertex_program4 #-}

-- | Usage: @'glGetVertexAttribIivEXT' index pname params@
--
-- The parameter @pname@ is a @VertexAttribEnum@.
--
-- The length of @params@ should be @1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribIiv'.


glGetVertexAttribIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexAttribIivEXT :: GLuint -> GLuint -> Ptr GLint -> m ()
glGetVertexAttribIivEXT = FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
-> GLuint -> GLuint -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
-> GLuint -> GLuint -> Ptr GLint -> m ()
ffiuintenumPtrintIOV FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
glGetVertexAttribIivEXTFunPtr

glGetVertexAttribIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetVertexAttribIivEXTFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
glGetVertexAttribIivEXTFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetVertexAttribIivEXT")

{-# NOINLINE glGetVertexAttribIivEXTFunPtr #-}

-- | Usage: @'glGetVertexAttribIuivEXT' index pname params@
--
-- The parameter @pname@ is a @VertexAttribEnum@.
--
-- The length of @params@ should be @1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribIuiv'.


glGetVertexAttribIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
glGetVertexAttribIuivEXT :: GLuint -> GLuint -> Ptr GLuint -> m ()
glGetVertexAttribIuivEXT = FunPtr (GLuint -> GLuint -> Ptr GLuint -> IO ())
-> GLuint -> GLuint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLuint -> IO ())
-> GLuint -> GLuint -> Ptr GLuint -> m ()
ffiuintenumPtruintIOV FunPtr (GLuint -> GLuint -> Ptr GLuint -> IO ())
glGetVertexAttribIuivEXTFunPtr

glGetVertexAttribIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
glGetVertexAttribIuivEXTFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLuint -> IO ())
glGetVertexAttribIuivEXTFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLuint -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> GLuint -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetVertexAttribIuivEXT")

{-# NOINLINE glGetVertexAttribIuivEXTFunPtr #-}

-- | Usage: @'glVertexAttribI1iEXT' index x@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1i'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI1ivEXT'.


glVertexAttribI1iEXT :: MonadIO m => GLuint -> GLint -> m ()
glVertexAttribI1iEXT :: GLuint -> GLint -> m ()
glVertexAttribI1iEXT = FunPtr (GLuint -> GLint -> IO ()) -> GLuint -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLint -> IO ()) -> GLuint -> GLint -> m ()
ffiuintintIOV FunPtr (GLuint -> GLint -> IO ())
glVertexAttribI1iEXTFunPtr

glVertexAttribI1iEXTFunPtr :: FunPtr (GLuint -> GLint -> IO ())
glVertexAttribI1iEXTFunPtr :: FunPtr (GLuint -> GLint -> IO ())
glVertexAttribI1iEXTFunPtr = IO (FunPtr (GLuint -> GLint -> IO ()))
-> FunPtr (GLuint -> GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI1iEXT")

{-# NOINLINE glVertexAttribI1iEXTFunPtr #-}

-- | Usage: @'glVertexAttribI1ivEXT' index v@
--
-- The length of @v@ should be @1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1iv'.


glVertexAttribI1ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttribI1ivEXT :: GLuint -> Ptr GLint -> m ()
glVertexAttribI1ivEXT = FunPtr (GLuint -> Ptr GLint -> IO ())
-> GLuint -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLint -> IO ())
-> GLuint -> Ptr GLint -> m ()
ffiuintPtrintIOV FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI1ivEXTFunPtr

glVertexAttribI1ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI1ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI1ivEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLint -> IO ()))
-> FunPtr (GLuint -> Ptr GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI1ivEXT")

{-# NOINLINE glVertexAttribI1ivEXTFunPtr #-}

-- | Usage: @'glVertexAttribI1uiEXT' index x@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1ui'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI1uivEXT'.


glVertexAttribI1uiEXT :: MonadIO m => GLuint -> GLuint -> m ()
glVertexAttribI1uiEXT :: GLuint -> GLuint -> m ()
glVertexAttribI1uiEXT = FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> m ()
ffiuintuintIOV FunPtr (GLuint -> GLuint -> IO ())
glVertexAttribI1uiEXTFunPtr

glVertexAttribI1uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
glVertexAttribI1uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
glVertexAttribI1uiEXTFunPtr = IO (FunPtr (GLuint -> GLuint -> IO ()))
-> FunPtr (GLuint -> GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI1uiEXT")

{-# NOINLINE glVertexAttribI1uiEXTFunPtr #-}

-- | Usage: @'glVertexAttribI1uivEXT' index v@
--
-- The length of @v@ should be @1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1uiv'.


glVertexAttribI1uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttribI1uivEXT :: GLuint -> Ptr GLuint -> m ()
glVertexAttribI1uivEXT = FunPtr (GLuint -> Ptr GLuint -> IO ())
-> GLuint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLuint -> IO ())
-> GLuint -> Ptr GLuint -> m ()
ffiuintPtruintIOV FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI1uivEXTFunPtr

glVertexAttribI1uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI1uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI1uivEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLuint -> IO ()))
-> FunPtr (GLuint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI1uivEXT")

{-# NOINLINE glVertexAttribI1uivEXTFunPtr #-}

-- | Usage: @'glVertexAttribI2iEXT' index x y@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2i'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI2ivEXT'.


glVertexAttribI2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
glVertexAttribI2iEXT :: GLuint -> GLint -> GLint -> m ()
glVertexAttribI2iEXT = FunPtr (GLuint -> GLint -> GLint -> IO ())
-> GLuint -> GLint -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLint -> GLint -> IO ())
-> GLuint -> GLint -> GLint -> m ()
ffiuintintintIOV FunPtr (GLuint -> GLint -> GLint -> IO ())
glVertexAttribI2iEXTFunPtr

glVertexAttribI2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
glVertexAttribI2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
glVertexAttribI2iEXTFunPtr = IO (FunPtr (GLuint -> GLint -> GLint -> IO ()))
-> FunPtr (GLuint -> GLint -> GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> GLint -> GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI2iEXT")

{-# NOINLINE glVertexAttribI2iEXTFunPtr #-}

-- | Usage: @'glVertexAttribI2ivEXT' index v@
--
-- The length of @v@ should be @2@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2iv'.


glVertexAttribI2ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttribI2ivEXT :: GLuint -> Ptr GLint -> m ()
glVertexAttribI2ivEXT = FunPtr (GLuint -> Ptr GLint -> IO ())
-> GLuint -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLint -> IO ())
-> GLuint -> Ptr GLint -> m ()
ffiuintPtrintIOV FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI2ivEXTFunPtr

glVertexAttribI2ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI2ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI2ivEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLint -> IO ()))
-> FunPtr (GLuint -> Ptr GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI2ivEXT")

{-# NOINLINE glVertexAttribI2ivEXTFunPtr #-}

-- | Usage: @'glVertexAttribI2uiEXT' index x y@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2ui'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI2uivEXT'.


glVertexAttribI2uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glVertexAttribI2uiEXT :: GLuint -> GLuint -> GLuint -> m ()
glVertexAttribI2uiEXT = FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> m ()
ffiuintuintuintIOV FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glVertexAttribI2uiEXTFunPtr

glVertexAttribI2uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glVertexAttribI2uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glVertexAttribI2uiEXTFunPtr = IO (FunPtr (GLuint -> GLuint -> GLuint -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> GLuint -> GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI2uiEXT")

{-# NOINLINE glVertexAttribI2uiEXTFunPtr #-}

-- | Usage: @'glVertexAttribI2uivEXT' index v@
--
-- The length of @v@ should be @2@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2uiv'.


glVertexAttribI2uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttribI2uivEXT :: GLuint -> Ptr GLuint -> m ()
glVertexAttribI2uivEXT = FunPtr (GLuint -> Ptr GLuint -> IO ())
-> GLuint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLuint -> IO ())
-> GLuint -> Ptr GLuint -> m ()
ffiuintPtruintIOV FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI2uivEXTFunPtr

glVertexAttribI2uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI2uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI2uivEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLuint -> IO ()))
-> FunPtr (GLuint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI2uivEXT")

{-# NOINLINE glVertexAttribI2uivEXTFunPtr #-}

-- | Usage: @'glVertexAttribI3iEXT' index x y z@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3i'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI3ivEXT'.


glVertexAttribI3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
glVertexAttribI3iEXT :: GLuint -> GLint -> GLint -> GLint -> m ()
glVertexAttribI3iEXT = FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-> GLuint -> GLint -> GLint -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-> GLuint -> GLint -> GLint -> GLint -> m ()
ffiuintintintintIOV FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
glVertexAttribI3iEXTFunPtr

glVertexAttribI3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
glVertexAttribI3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
glVertexAttribI3iEXTFunPtr = IO (FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ()))
-> FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI3iEXT")

{-# NOINLINE glVertexAttribI3iEXTFunPtr #-}

-- | Usage: @'glVertexAttribI3ivEXT' index v@
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3iv'.


glVertexAttribI3ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttribI3ivEXT :: GLuint -> Ptr GLint -> m ()
glVertexAttribI3ivEXT = FunPtr (GLuint -> Ptr GLint -> IO ())
-> GLuint -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLint -> IO ())
-> GLuint -> Ptr GLint -> m ()
ffiuintPtrintIOV FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI3ivEXTFunPtr

glVertexAttribI3ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI3ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI3ivEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLint -> IO ()))
-> FunPtr (GLuint -> Ptr GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI3ivEXT")

{-# NOINLINE glVertexAttribI3ivEXTFunPtr #-}

-- | Usage: @'glVertexAttribI3uiEXT' index x y z@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3ui'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI3uivEXT'.


glVertexAttribI3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
glVertexAttribI3uiEXT :: GLuint -> GLuint -> GLuint -> GLuint -> m ()
glVertexAttribI3uiEXT = FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffiuintuintuintuintIOV FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glVertexAttribI3uiEXTFunPtr

glVertexAttribI3uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glVertexAttribI3uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glVertexAttribI3uiEXTFunPtr = IO (FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI3uiEXT")

{-# NOINLINE glVertexAttribI3uiEXTFunPtr #-}

-- | Usage: @'glVertexAttribI3uivEXT' index v@
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3uiv'.


glVertexAttribI3uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttribI3uivEXT :: GLuint -> Ptr GLuint -> m ()
glVertexAttribI3uivEXT = FunPtr (GLuint -> Ptr GLuint -> IO ())
-> GLuint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLuint -> IO ())
-> GLuint -> Ptr GLuint -> m ()
ffiuintPtruintIOV FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI3uivEXTFunPtr

glVertexAttribI3uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI3uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI3uivEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLuint -> IO ()))
-> FunPtr (GLuint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI3uivEXT")

{-# NOINLINE glVertexAttribI3uivEXTFunPtr #-}

-- | Usage: @'glVertexAttribI4bvEXT' index v@
--
-- The length of @v@ should be @4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4bv'.


glVertexAttribI4bvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
glVertexAttribI4bvEXT :: GLuint -> Ptr GLbyte -> m ()
glVertexAttribI4bvEXT = FunPtr (GLuint -> Ptr GLbyte -> IO ())
-> GLuint -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLbyte -> IO ())
-> GLuint -> Ptr GLbyte -> m ()
ffiuintPtrbyteIOV FunPtr (GLuint -> Ptr GLbyte -> IO ())
glVertexAttribI4bvEXTFunPtr

glVertexAttribI4bvEXTFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
glVertexAttribI4bvEXTFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
glVertexAttribI4bvEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLbyte -> IO ()))
-> FunPtr (GLuint -> Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI4bvEXT")

{-# NOINLINE glVertexAttribI4bvEXTFunPtr #-}

-- | Usage: @'glVertexAttribI4iEXT' index x y z w@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4i'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI4ivEXT'.


glVertexAttribI4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glVertexAttribI4iEXT :: GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glVertexAttribI4iEXT = FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
ffiuintintintintintIOV FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
glVertexAttribI4iEXTFunPtr

glVertexAttribI4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
glVertexAttribI4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
glVertexAttribI4iEXTFunPtr = IO (FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()))
-> FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI4iEXT")

{-# NOINLINE glVertexAttribI4iEXTFunPtr #-}

-- | Usage: @'glVertexAttribI4ivEXT' index v@
--
-- The length of @v@ should be @4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4iv'.


glVertexAttribI4ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVertexAttribI4ivEXT :: GLuint -> Ptr GLint -> m ()
glVertexAttribI4ivEXT = FunPtr (GLuint -> Ptr GLint -> IO ())
-> GLuint -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLint -> IO ())
-> GLuint -> Ptr GLint -> m ()
ffiuintPtrintIOV FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI4ivEXTFunPtr

glVertexAttribI4ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI4ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
glVertexAttribI4ivEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLint -> IO ()))
-> FunPtr (GLuint -> Ptr GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI4ivEXT")

{-# NOINLINE glVertexAttribI4ivEXTFunPtr #-}

-- | Usage: @'glVertexAttribI4svEXT' index v@
--
-- The length of @v@ should be @4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4sv'.


glVertexAttribI4svEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttribI4svEXT :: GLuint -> Ptr GLshort -> m ()
glVertexAttribI4svEXT = FunPtr (GLuint -> Ptr GLshort -> IO ())
-> GLuint -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLshort -> IO ())
-> GLuint -> Ptr GLshort -> m ()
ffiuintPtrshortIOV FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttribI4svEXTFunPtr

glVertexAttribI4svEXTFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttribI4svEXTFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttribI4svEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
-> FunPtr (GLuint -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI4svEXT")

{-# NOINLINE glVertexAttribI4svEXTFunPtr #-}

-- | Usage: @'glVertexAttribI4ubvEXT' index v@
--
-- The length of @v@ should be @4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4ubv'.


glVertexAttribI4ubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVertexAttribI4ubvEXT :: GLuint -> Ptr GLubyte -> m ()
glVertexAttribI4ubvEXT = FunPtr (GLuint -> Ptr GLubyte -> IO ())
-> GLuint -> Ptr GLubyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLubyte -> IO ())
-> GLuint -> Ptr GLubyte -> m ()
ffiuintPtrubyteIOV FunPtr (GLuint -> Ptr GLubyte -> IO ())
glVertexAttribI4ubvEXTFunPtr

glVertexAttribI4ubvEXTFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
glVertexAttribI4ubvEXTFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
glVertexAttribI4ubvEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLubyte -> IO ()))
-> FunPtr (GLuint -> Ptr GLubyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLubyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI4ubvEXT")

{-# NOINLINE glVertexAttribI4ubvEXTFunPtr #-}

-- | Usage: @'glVertexAttribI4uiEXT' index x y z w@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4ui'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI4uivEXT'.


glVertexAttribI4uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glVertexAttribI4uiEXT :: GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glVertexAttribI4uiEXT = FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffiuintuintuintuintuintIOV FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glVertexAttribI4uiEXTFunPtr

glVertexAttribI4uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glVertexAttribI4uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glVertexAttribI4uiEXTFunPtr = IO
  (FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI4uiEXT")

{-# NOINLINE glVertexAttribI4uiEXTFunPtr #-}

-- | Usage: @'glVertexAttribI4uivEXT' index v@
--
-- The length of @v@ should be @4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4uiv'.


glVertexAttribI4uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVertexAttribI4uivEXT :: GLuint -> Ptr GLuint -> m ()
glVertexAttribI4uivEXT = FunPtr (GLuint -> Ptr GLuint -> IO ())
-> GLuint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLuint -> IO ())
-> GLuint -> Ptr GLuint -> m ()
ffiuintPtruintIOV FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI4uivEXTFunPtr

glVertexAttribI4uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI4uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glVertexAttribI4uivEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLuint -> IO ()))
-> FunPtr (GLuint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI4uivEXT")

{-# NOINLINE glVertexAttribI4uivEXTFunPtr #-}

-- | Usage: @'glVertexAttribI4usvEXT' index v@
--
-- The length of @v@ should be @4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4usv'.


glVertexAttribI4usvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glVertexAttribI4usvEXT :: GLuint -> Ptr GLushort -> m ()
glVertexAttribI4usvEXT = FunPtr (GLuint -> Ptr GLushort -> IO ())
-> GLuint -> Ptr GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLushort -> IO ())
-> GLuint -> Ptr GLushort -> m ()
ffiuintPtrushortIOV FunPtr (GLuint -> Ptr GLushort -> IO ())
glVertexAttribI4usvEXTFunPtr

glVertexAttribI4usvEXTFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
glVertexAttribI4usvEXTFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
glVertexAttribI4usvEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLushort -> IO ()))
-> FunPtr (GLuint -> Ptr GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLushort -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribI4usvEXT")

{-# NOINLINE glVertexAttribI4usvEXTFunPtr #-}

-- | Usage: @'glVertexAttribIPointerEXT' index size type stride pointer@
--
-- The parameter @type@ is a @VertexAttribEnum@.
--
-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribIPointer'.


glVertexAttribIPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glVertexAttribIPointerEXT :: GLuint -> GLint -> GLuint -> GLint -> Ptr () -> m ()
glVertexAttribIPointerEXT = FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
-> GLuint -> GLint -> GLuint -> GLint -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
-> GLuint -> GLint -> GLuint -> GLint -> Ptr () -> m ()
ffiuintintenumsizeiPtrVIOV FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
glVertexAttribIPointerEXTFunPtr

glVertexAttribIPointerEXTFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
glVertexAttribIPointerEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
glVertexAttribIPointerEXTFunPtr = IO (FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ()))
-> FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVertexAttribIPointerEXT")

{-# NOINLINE glVertexAttribIPointerEXTFunPtr #-}

pattern $bGL_VERTEX_ATTRIB_ARRAY_INTEGER_NV :: a
$mGL_VERTEX_ATTRIB_ARRAY_INTEGER_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD