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

  -- * GL_NV_gpu_program4
  , glGetProgramEnvParameterIivNV
  , glGetProgramEnvParameterIuivNV
  , glGetProgramLocalParameterIivNV
  , glGetProgramLocalParameterIuivNV
  , glProgramEnvParameterI4iNV
  , glProgramEnvParameterI4ivNV
  , glProgramEnvParameterI4uiNV
  , glProgramEnvParameterI4uivNV
  , glProgramEnvParametersI4ivNV
  , glProgramEnvParametersI4uivNV
  , glProgramLocalParameterI4iNV
  , glProgramLocalParameterI4ivNV
  , glProgramLocalParameterI4uiNV
  , glProgramLocalParameterI4uivNV
  , glProgramLocalParametersI4ivNV
  , glProgramLocalParametersI4uivNV
  , pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV
  , pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV
  , pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV
  , pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV
  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV
  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV
  , pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV
  , pattern GL_PROGRAM_RESULT_COMPONENTS_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/gpu_program4.txt GL_NV_gpu_program4> extension is available.

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

-- | Usage: @'glGetProgramEnvParameterIivNV' target index params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @4@.


glGetProgramEnvParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetProgramEnvParameterIivNV :: GLenum -> GLenum -> Ptr GLint -> m ()
glGetProgramEnvParameterIivNV = FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumuintPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetProgramEnvParameterIivNVFunPtr

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

{-# NOINLINE glGetProgramEnvParameterIivNVFunPtr #-}

-- | Usage: @'glGetProgramEnvParameterIuivNV' target index params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @4@.


glGetProgramEnvParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glGetProgramEnvParameterIuivNV :: GLenum -> GLenum -> Ptr GLenum -> m ()
glGetProgramEnvParameterIuivNV = FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> Ptr GLenum -> m ()
ffienumuintPtruintIOV FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
glGetProgramEnvParameterIuivNVFunPtr

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

{-# NOINLINE glGetProgramEnvParameterIuivNVFunPtr #-}

-- | Usage: @'glGetProgramLocalParameterIivNV' target index params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @4@.


glGetProgramLocalParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glGetProgramLocalParameterIivNV :: GLenum -> GLenum -> Ptr GLint -> m ()
glGetProgramLocalParameterIivNV = FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumuintPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetProgramLocalParameterIivNVFunPtr

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

{-# NOINLINE glGetProgramLocalParameterIivNVFunPtr #-}

-- | Usage: @'glGetProgramLocalParameterIuivNV' target index params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @4@.


glGetProgramLocalParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glGetProgramLocalParameterIuivNV :: GLenum -> GLenum -> Ptr GLenum -> m ()
glGetProgramLocalParameterIuivNV = FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> Ptr GLenum -> m ()
ffienumuintPtruintIOV FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
glGetProgramLocalParameterIuivNVFunPtr

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

{-# NOINLINE glGetProgramLocalParameterIuivNVFunPtr #-}

-- | Usage: @'glProgramEnvParameterI4iNV' target index x y z w@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramEnvParameterI4ivNV'.


glProgramEnvParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramEnvParameterI4iNV :: GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramEnvParameterI4iNV = FunPtr
  (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
ffienumuintintintintintIOV FunPtr
  (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
glProgramEnvParameterI4iNVFunPtr

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

{-# NOINLINE glProgramEnvParameterI4iNVFunPtr #-}

-- | Usage: @'glProgramEnvParameterI4ivNV' target index params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @4@.


glProgramEnvParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glProgramEnvParameterI4ivNV :: GLenum -> GLenum -> Ptr GLint -> m ()
glProgramEnvParameterI4ivNV = FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumuintPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glProgramEnvParameterI4ivNVFunPtr

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

{-# NOINLINE glProgramEnvParameterI4ivNVFunPtr #-}

-- | Usage: @'glProgramEnvParameterI4uiNV' target index x y z w@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramEnvParameterI4uivNV'.


glProgramEnvParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glProgramEnvParameterI4uiNV :: GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glProgramEnvParameterI4uiNV = FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffienumuintuintuintuintuintIOV FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glProgramEnvParameterI4uiNVFunPtr

glProgramEnvParameterI4uiNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glProgramEnvParameterI4uiNVFunPtr :: FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glProgramEnvParameterI4uiNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
-> FunPtr
     (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glProgramEnvParameterI4uiNV")

{-# NOINLINE glProgramEnvParameterI4uiNVFunPtr #-}

-- | Usage: @'glProgramEnvParameterI4uivNV' target index params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @4@.


glProgramEnvParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glProgramEnvParameterI4uivNV :: GLenum -> GLenum -> Ptr GLenum -> m ()
glProgramEnvParameterI4uivNV = FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> Ptr GLenum -> m ()
ffienumuintPtruintIOV FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
glProgramEnvParameterI4uivNVFunPtr

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

{-# NOINLINE glProgramEnvParameterI4uivNVFunPtr #-}

-- | Usage: @'glProgramEnvParametersI4ivNV' target index count params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @count*4@.


glProgramEnvParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
glProgramEnvParametersI4ivNV :: GLenum -> GLenum -> GLint -> Ptr GLint -> m ()
glProgramEnvParametersI4ivNV = FunPtr (GLenum -> GLenum -> GLint -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr GLint -> m ()
ffienumuintsizeiPtrintIOV FunPtr (GLenum -> GLenum -> GLint -> Ptr GLint -> IO ())
glProgramEnvParametersI4ivNVFunPtr

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

{-# NOINLINE glProgramEnvParametersI4ivNVFunPtr #-}

-- | Usage: @'glProgramEnvParametersI4uivNV' target index count params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @count*4@.


glProgramEnvParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
glProgramEnvParametersI4uivNV :: GLenum -> GLenum -> GLint -> Ptr GLenum -> m ()
glProgramEnvParametersI4uivNV = FunPtr (GLenum -> GLenum -> GLint -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr GLenum -> m ()
ffienumuintsizeiPtruintIOV FunPtr (GLenum -> GLenum -> GLint -> Ptr GLenum -> IO ())
glProgramEnvParametersI4uivNVFunPtr

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

{-# NOINLINE glProgramEnvParametersI4uivNVFunPtr #-}

-- | Usage: @'glProgramLocalParameterI4iNV' target index x y z w@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramLocalParameterI4ivNV'.


glProgramLocalParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramLocalParameterI4iNV :: GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
glProgramLocalParameterI4iNV = FunPtr
  (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
ffienumuintintintintintIOV FunPtr
  (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
glProgramLocalParameterI4iNVFunPtr

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

{-# NOINLINE glProgramLocalParameterI4iNVFunPtr #-}

-- | Usage: @'glProgramLocalParameterI4ivNV' target index params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @4@.


glProgramLocalParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
glProgramLocalParameterI4ivNV :: GLenum -> GLenum -> Ptr GLint -> m ()
glProgramLocalParameterI4ivNV = FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumuintPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glProgramLocalParameterI4ivNVFunPtr

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

{-# NOINLINE glProgramLocalParameterI4ivNVFunPtr #-}

-- | Usage: @'glProgramLocalParameterI4uiNV' target index x y z w@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramLocalParameterI4uivNV'.


glProgramLocalParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glProgramLocalParameterI4uiNV :: GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glProgramLocalParameterI4uiNV = FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffienumuintuintuintuintuintIOV FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glProgramLocalParameterI4uiNVFunPtr

glProgramLocalParameterI4uiNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glProgramLocalParameterI4uiNVFunPtr :: FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glProgramLocalParameterI4uiNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
-> FunPtr
     (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glProgramLocalParameterI4uiNV")

{-# NOINLINE glProgramLocalParameterI4uiNVFunPtr #-}

-- | Usage: @'glProgramLocalParameterI4uivNV' target index params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @4@.


glProgramLocalParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glProgramLocalParameterI4uivNV :: GLenum -> GLenum -> Ptr GLenum -> m ()
glProgramLocalParameterI4uivNV = FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> Ptr GLenum -> m ()
ffienumuintPtruintIOV FunPtr (GLenum -> GLenum -> Ptr GLenum -> IO ())
glProgramLocalParameterI4uivNVFunPtr

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

{-# NOINLINE glProgramLocalParameterI4uivNVFunPtr #-}

-- | Usage: @'glProgramLocalParametersI4ivNV' target index count params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @count*4@.


glProgramLocalParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
glProgramLocalParametersI4ivNV :: GLenum -> GLenum -> GLint -> Ptr GLint -> m ()
glProgramLocalParametersI4ivNV = FunPtr (GLenum -> GLenum -> GLint -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr GLint -> m ()
ffienumuintsizeiPtrintIOV FunPtr (GLenum -> GLenum -> GLint -> Ptr GLint -> IO ())
glProgramLocalParametersI4ivNVFunPtr

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

{-# NOINLINE glProgramLocalParametersI4ivNVFunPtr #-}

-- | Usage: @'glProgramLocalParametersI4uivNV' target index count params@
--
-- The parameter @target@ is a @ProgramTarget@.
--
-- The length of @params@ should be @count*4@.


glProgramLocalParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
glProgramLocalParametersI4uivNV :: GLenum -> GLenum -> GLint -> Ptr GLenum -> m ()
glProgramLocalParametersI4uivNV = FunPtr (GLenum -> GLenum -> GLint -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> Ptr GLenum -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr GLenum -> m ()
ffienumuintsizeiPtruintIOV FunPtr (GLenum -> GLenum -> GLint -> Ptr GLenum -> IO ())
glProgramLocalParametersI4uivNVFunPtr

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

{-# NOINLINE glProgramLocalParametersI4uivNVFunPtr #-}

pattern $bGL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV :: a
$mGL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908

pattern $bGL_MAX_PROGRAM_GENERIC_ATTRIBS_NV :: a
$mGL_MAX_PROGRAM_GENERIC_ATTRIBS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5

pattern $bGL_MAX_PROGRAM_GENERIC_RESULTS_NV :: a
$mGL_MAX_PROGRAM_GENERIC_RESULTS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6

pattern $bGL_MAX_PROGRAM_RESULT_COMPONENTS_NV :: a
$mGL_MAX_PROGRAM_RESULT_COMPONENTS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909

pattern $bGL_MAX_PROGRAM_TEXEL_OFFSET_NV :: a
$mGL_MAX_PROGRAM_TEXEL_OFFSET_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905

pattern $bGL_MIN_PROGRAM_TEXEL_OFFSET_NV :: a
$mGL_MIN_PROGRAM_TEXEL_OFFSET_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904

pattern $bGL_PROGRAM_ATTRIB_COMPONENTS_NV :: a
$mGL_PROGRAM_ATTRIB_COMPONENTS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906

pattern $bGL_PROGRAM_RESULT_COMPONENTS_NV :: a
$mGL_PROGRAM_RESULT_COMPONENTS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907