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

  -- * GL_NV_vertex_program
  , glAreProgramsResidentNV
  , glBindProgramNV
  , glDeleteProgramsNV
  , glExecuteProgramNV
  , glGenProgramsNV
  , glGetProgramParameterdvNV
  , glGetProgramParameterfvNV
  , glGetProgramStringNV
  , glGetProgramivNV
  , glGetTrackMatrixivNV
  , glGetVertexAttribPointervNV
  , glGetVertexAttribdvNV
  , glGetVertexAttribfvNV
  , glGetVertexAttribivNV
  , glIsProgramNV
  , glLoadProgramNV
  , glProgramParameter4dNV
  , glProgramParameter4dvNV
  , glProgramParameter4fNV
  , glProgramParameter4fvNV
  , glProgramParameters4dvNV
  , glProgramParameters4fvNV
  , glRequestResidentProgramsNV
  , glTrackMatrixNV
  , glVertexAttrib1dNV
  , glVertexAttrib1dvNV
  , glVertexAttrib1fNV
  , glVertexAttrib1fvNV
  , glVertexAttrib1sNV
  , glVertexAttrib1svNV
  , glVertexAttrib2dNV
  , glVertexAttrib2dvNV
  , glVertexAttrib2fNV
  , glVertexAttrib2fvNV
  , glVertexAttrib2sNV
  , glVertexAttrib2svNV
  , glVertexAttrib3dNV
  , glVertexAttrib3dvNV
  , glVertexAttrib3fNV
  , glVertexAttrib3fvNV
  , glVertexAttrib3sNV
  , glVertexAttrib3svNV
  , glVertexAttrib4dNV
  , glVertexAttrib4dvNV
  , glVertexAttrib4fNV
  , glVertexAttrib4fvNV
  , glVertexAttrib4sNV
  , glVertexAttrib4svNV
  , glVertexAttrib4ubNV
  , glVertexAttrib4ubvNV
  , glVertexAttribPointerNV
  , glVertexAttribs1dvNV
  , glVertexAttribs1fvNV
  , glVertexAttribs1svNV
  , glVertexAttribs2dvNV
  , glVertexAttribs2fvNV
  , glVertexAttribs2svNV
  , glVertexAttribs3dvNV
  , glVertexAttribs3fvNV
  , glVertexAttribs3svNV
  , glVertexAttribs4dvNV
  , glVertexAttribs4fvNV
  , glVertexAttribs4svNV
  , glVertexAttribs4ubvNV
  , pattern GL_ATTRIB_ARRAY_POINTER_NV
  , pattern GL_ATTRIB_ARRAY_SIZE_NV
  , pattern GL_ATTRIB_ARRAY_STRIDE_NV
  , pattern GL_ATTRIB_ARRAY_TYPE_NV
  , pattern GL_CURRENT_ATTRIB_NV
  , pattern GL_CURRENT_MATRIX_NV
  , pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV
  , pattern GL_IDENTITY_NV
  , pattern GL_INVERSE_NV
  , pattern GL_INVERSE_TRANSPOSE_NV
  , pattern GL_MAP1_VERTEX_ATTRIB0_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB10_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB11_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB12_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB13_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB14_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB15_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB1_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB2_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB3_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB4_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB5_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB6_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB7_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB8_4_NV
  , pattern GL_MAP1_VERTEX_ATTRIB9_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB0_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB10_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB11_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB12_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB13_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB14_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB15_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB1_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB2_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB3_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB4_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB5_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB6_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB7_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB8_4_NV
  , pattern GL_MAP2_VERTEX_ATTRIB9_4_NV
  , pattern GL_MATRIX0_NV
  , pattern GL_MATRIX1_NV
  , pattern GL_MATRIX2_NV
  , pattern GL_MATRIX3_NV
  , pattern GL_MATRIX4_NV
  , pattern GL_MATRIX5_NV
  , pattern GL_MATRIX6_NV
  , pattern GL_MATRIX7_NV
  , pattern GL_MAX_TRACK_MATRICES_NV
  , pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
  , pattern GL_MODELVIEW_PROJECTION_NV
  , pattern GL_PROGRAM_ERROR_POSITION_NV
  , pattern GL_PROGRAM_LENGTH_NV
  , pattern GL_PROGRAM_PARAMETER_NV
  , pattern GL_PROGRAM_RESIDENT_NV
  , pattern GL_PROGRAM_STRING_NV
  , pattern GL_PROGRAM_TARGET_NV
  , pattern GL_TRACK_MATRIX_NV
  , pattern GL_TRACK_MATRIX_TRANSFORM_NV
  , pattern GL_TRANSPOSE_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY0_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY10_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY11_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY12_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY13_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY14_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY15_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY1_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY2_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY3_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY4_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY5_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY6_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY7_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY8_NV
  , pattern GL_VERTEX_ATTRIB_ARRAY9_NV
  , pattern GL_VERTEX_PROGRAM_BINDING_NV
  , pattern GL_VERTEX_PROGRAM_NV
  , pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV
  , pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV
  , pattern GL_VERTEX_STATE_PROGRAM_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_program.txt GL_NV_vertex_program> extension is available.

gl_NV_vertex_program :: Bool
gl_NV_vertex_program :: Bool
gl_NV_vertex_program = String -> Set String -> Bool
forall a. Ord a => a -> Set a -> Bool
member String
"GL_NV_vertex_program" Set String
extensions
{-# NOINLINE gl_NV_vertex_program #-}

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


glAreProgramsResidentNV :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
glAreProgramsResidentNV :: forall (m :: * -> *).
MonadIO m =>
GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
glAreProgramsResidentNV = FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
-> GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
-> GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
ffisizeiPtruintPtrbooleanIOboolean FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
glAreProgramsResidentNVFunPtr

glAreProgramsResidentNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
glAreProgramsResidentNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
glAreProgramsResidentNVFunPtr = IO
  (FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean))
-> FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glAreProgramsResidentNV")

{-# NOINLINE glAreProgramsResidentNVFunPtr #-}

-- | Usage: @'glBindProgramNV' target id@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindProgramARB'.


glBindProgramNV :: MonadIO m => GLenum -> GLuint -> m ()
glBindProgramNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLuint -> m ()
glBindProgramNV = FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> m ()
ffienumuintIOV FunPtr (GLuint -> GLuint -> IO ())
glBindProgramNVFunPtr

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

{-# NOINLINE glBindProgramNVFunPtr #-}

-- | Usage: @'glDeleteProgramsNV' n programs@
--
-- The length of @programs@ should be @n@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteProgramsARB'.


glDeleteProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteProgramsNV :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteProgramsNV = FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
ffisizeiPtruintIOV FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteProgramsNVFunPtr

glDeleteProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteProgramsNVFunPtr = IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
-> FunPtr (GLsizei -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glDeleteProgramsNV")

{-# NOINLINE glDeleteProgramsNVFunPtr #-}

-- | Usage: @'glExecuteProgramNV' target id params@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The length of @params@ should be @4@.


glExecuteProgramNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glExecuteProgramNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr GLfloat -> m ()
glExecuteProgramNV = FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> Ptr GLfloat -> m ()
ffienumuintPtrfloatIOV FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
glExecuteProgramNVFunPtr

glExecuteProgramNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
glExecuteProgramNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
glExecuteProgramNVFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glExecuteProgramNV")

{-# NOINLINE glExecuteProgramNVFunPtr #-}

-- | Usage: @'glGenProgramsNV' n programs@
--
-- The length of @programs@ should be @n@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenProgramsARB'.


glGenProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenProgramsNV :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenProgramsNV = FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
ffisizeiPtruintIOV FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenProgramsNVFunPtr

glGenProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenProgramsNVFunPtr = IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
-> FunPtr (GLsizei -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGenProgramsNV")

{-# NOINLINE glGenProgramsNVFunPtr #-}

-- | Usage: @'glGetProgramParameterdvNV' target index pname params@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The parameter @pname@ is a @VertexAttribEnumNV@.
--
-- The length of @params@ should be @4@.


glGetProgramParameterdvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetProgramParameterdvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> GLuint -> Ptr GLdouble -> m ()
glGetProgramParameterdvNV = FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> GLuint -> Ptr GLdouble -> m ()
ffienumuintenumPtrdoubleIOV FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLdouble -> IO ())
glGetProgramParameterdvNVFunPtr

glGetProgramParameterdvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
glGetProgramParameterdvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLdouble -> IO ())
glGetProgramParameterdvNVFunPtr = IO (FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetProgramParameterdvNV")

{-# NOINLINE glGetProgramParameterdvNVFunPtr #-}

-- | Usage: @'glGetProgramParameterfvNV' target index pname params@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The parameter @pname@ is a @VertexAttribEnumNV@.
--
-- The length of @params@ should be @4@.


glGetProgramParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetProgramParameterfvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
glGetProgramParameterfvNV = FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
ffienumuintenumPtrfloatIOV FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
glGetProgramParameterfvNVFunPtr

glGetProgramParameterfvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetProgramParameterfvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
glGetProgramParameterfvNVFunPtr = IO (FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetProgramParameterfvNV")

{-# NOINLINE glGetProgramParameterfvNVFunPtr #-}

-- | Usage: @'glGetProgramStringNV' id pname program@
--
-- The parameter @pname@ is a @VertexAttribEnumNV@.
--
-- The parameter @program@ is a @ProgramCharacterNV@.
--
-- The length of @program@ should be @COMPSIZE(id,pname)@.


glGetProgramStringNV :: MonadIO m => GLuint -> GLenum -> Ptr GLubyte -> m ()
glGetProgramStringNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr GLboolean -> m ()
glGetProgramStringNV = FunPtr (GLuint -> GLuint -> Ptr GLboolean -> IO ())
-> GLuint -> GLuint -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLboolean -> IO ())
-> GLuint -> GLuint -> Ptr GLboolean -> m ()
ffiuintenumPtrubyteIOV FunPtr (GLuint -> GLuint -> Ptr GLboolean -> IO ())
glGetProgramStringNVFunPtr

glGetProgramStringNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ())
glGetProgramStringNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLboolean -> IO ())
glGetProgramStringNVFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLboolean -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetProgramStringNV")

{-# NOINLINE glGetProgramStringNVFunPtr #-}

-- | Usage: @'glGetProgramivNV' id pname params@
--
-- The parameter @pname@ is a @VertexAttribEnumNV@.
--
-- The length of @params@ should be @4@.


glGetProgramivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetProgramivNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr GLsizei -> m ()
glGetProgramivNV = FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
-> GLuint -> GLuint -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
-> GLuint -> GLuint -> Ptr GLsizei -> m ()
ffiuintenumPtrintIOV FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
glGetProgramivNVFunPtr

glGetProgramivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetProgramivNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
glGetProgramivNVFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetProgramivNV")

{-# NOINLINE glGetProgramivNVFunPtr #-}

-- | Usage: @'glGetTrackMatrixivNV' target address pname params@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The parameter @pname@ is a @VertexAttribEnumNV@.
--
-- The length of @params@ should be @1@.


glGetTrackMatrixivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetTrackMatrixivNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> GLuint -> Ptr GLsizei -> m ()
glGetTrackMatrixivNV = FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
-> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
-> GLuint -> GLuint -> GLuint -> Ptr GLsizei -> m ()
ffienumuintenumPtrintIOV FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
glGetTrackMatrixivNVFunPtr

glGetTrackMatrixivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
glGetTrackMatrixivNVFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
glGetTrackMatrixivNVFunPtr = IO (FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetTrackMatrixivNV")

{-# NOINLINE glGetTrackMatrixivNVFunPtr #-}

-- | Usage: @'glGetVertexAttribPointervNV' index pname pointer@
--
-- The parameter @pname@ is a @VertexAttribEnumNV@.
--
-- The length of @pointer@ should be @1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribPointerv'.


glGetVertexAttribPointervNV :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
glGetVertexAttribPointervNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr (Ptr ()) -> m ()
glGetVertexAttribPointervNV = FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> IO ())
-> GLuint -> GLuint -> Ptr (Ptr ()) -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> IO ())
-> GLuint -> GLuint -> Ptr (Ptr ()) -> m ()
ffiuintenumPtrPtrVIOV FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> IO ())
glGetVertexAttribPointervNVFunPtr

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

{-# NOINLINE glGetVertexAttribPointervNVFunPtr #-}

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


glGetVertexAttribdvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetVertexAttribdvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr GLdouble -> m ()
glGetVertexAttribdvNV = FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> Ptr GLdouble -> m ()
ffiuintenumPtrdoubleIOV FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
glGetVertexAttribdvNVFunPtr

glGetVertexAttribdvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
glGetVertexAttribdvNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
glGetVertexAttribdvNVFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetVertexAttribdvNV")

{-# NOINLINE glGetVertexAttribdvNVFunPtr #-}

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


glGetVertexAttribfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVertexAttribfvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr GLfloat -> m ()
glGetVertexAttribfvNV = FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> Ptr GLfloat -> m ()
ffiuintenumPtrfloatIOV FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
glGetVertexAttribfvNVFunPtr

glGetVertexAttribfvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetVertexAttribfvNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
glGetVertexAttribfvNVFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetVertexAttribfvNV")

{-# NOINLINE glGetVertexAttribfvNVFunPtr #-}

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


glGetVertexAttribivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexAttribivNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr GLsizei -> m ()
glGetVertexAttribivNV = FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
-> GLuint -> GLuint -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
-> GLuint -> GLuint -> Ptr GLsizei -> m ()
ffiuintenumPtrintIOV FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
glGetVertexAttribivNVFunPtr

glGetVertexAttribivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetVertexAttribivNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
glGetVertexAttribivNVFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetVertexAttribivNV")

{-# NOINLINE glGetVertexAttribivNVFunPtr #-}

-- | Usage: @'glIsProgramNV' id@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsProgramARB'.


glIsProgramNV :: MonadIO m => GLuint -> m GLboolean
glIsProgramNV :: forall (m :: * -> *). MonadIO m => GLuint -> m GLboolean
glIsProgramNV = FunPtr (GLuint -> IO GLboolean) -> GLuint -> m GLboolean
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> IO GLboolean) -> GLuint -> m GLboolean
ffiuintIOboolean FunPtr (GLuint -> IO GLboolean)
glIsProgramNVFunPtr

glIsProgramNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsProgramNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsProgramNVFunPtr = IO (FunPtr (GLuint -> IO GLboolean))
-> FunPtr (GLuint -> IO GLboolean)
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> IO GLboolean))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glIsProgramNV")

{-# NOINLINE glIsProgramNVFunPtr #-}

-- | Usage: @'glLoadProgramNV' target id len program@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The length of @program@ should be @len@.


glLoadProgramNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
glLoadProgramNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> GLsizei -> Ptr GLboolean -> m ()
glLoadProgramNV = FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLboolean -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLboolean -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLboolean -> m ()
ffienumuintsizeiPtrubyteIOV FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLboolean -> IO ())
glLoadProgramNVFunPtr

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

{-# NOINLINE glLoadProgramNVFunPtr #-}

-- | Usage: @'glProgramParameter4dNV' target index x y z w@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glProgramParameter4dvNV'.


glProgramParameter4dNV :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramParameter4dNV :: forall (m :: * -> *).
MonadIO m =>
GLuint
-> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramParameter4dNV = FunPtr
  (GLuint
   -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint
-> GLuint
-> GLdouble
-> GLdouble
-> GLdouble
-> GLdouble
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint
   -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint
-> GLuint
-> GLdouble
-> GLdouble
-> GLdouble
-> GLdouble
-> m ()
ffienumuintdoubledoubledoubledoubleIOV FunPtr
  (GLuint
   -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glProgramParameter4dNVFunPtr

glProgramParameter4dNVFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glProgramParameter4dNVFunPtr :: FunPtr
  (GLuint
   -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glProgramParameter4dNVFunPtr = IO
  (FunPtr
     (GLuint
      -> GLuint
      -> GLdouble
      -> GLdouble
      -> GLdouble
      -> GLdouble
      -> IO ()))
-> FunPtr
     (GLuint
      -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLuint
         -> GLuint
         -> GLdouble
         -> GLdouble
         -> GLdouble
         -> GLdouble
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glProgramParameter4dNV")

{-# NOINLINE glProgramParameter4dNVFunPtr #-}

-- | Usage: @'glProgramParameter4dvNV' target index v@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The length of @v@ should be @4@.


glProgramParameter4dvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
glProgramParameter4dvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr GLdouble -> m ()
glProgramParameter4dvNV = FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> Ptr GLdouble -> m ()
ffienumuintPtrdoubleIOV FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
glProgramParameter4dvNVFunPtr

glProgramParameter4dvNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
glProgramParameter4dvNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
glProgramParameter4dvNVFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glProgramParameter4dvNV")

{-# NOINLINE glProgramParameter4dvNVFunPtr #-}

-- | Usage: @'glProgramParameter4fNV' target index x y z w@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glProgramParameter4fvNV'.


glProgramParameter4fNV :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramParameter4fNV :: forall (m :: * -> *).
MonadIO m =>
GLuint
-> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramParameter4fNV = FunPtr
  (GLuint
   -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLuint
-> GLuint
-> GLfloat
-> GLfloat
-> GLfloat
-> GLfloat
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint
   -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLuint
-> GLuint
-> GLfloat
-> GLfloat
-> GLfloat
-> GLfloat
-> m ()
ffienumuintfloatfloatfloatfloatIOV FunPtr
  (GLuint
   -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glProgramParameter4fNVFunPtr

glProgramParameter4fNVFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glProgramParameter4fNVFunPtr :: FunPtr
  (GLuint
   -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glProgramParameter4fNVFunPtr = IO
  (FunPtr
     (GLuint
      -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr
     (GLuint
      -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLuint
         -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glProgramParameter4fNV")

{-# NOINLINE glProgramParameter4fNVFunPtr #-}

-- | Usage: @'glProgramParameter4fvNV' target index v@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The length of @v@ should be @4@.


glProgramParameter4fvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glProgramParameter4fvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr GLfloat -> m ()
glProgramParameter4fvNV = FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> Ptr GLfloat -> m ()
ffienumuintPtrfloatIOV FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
glProgramParameter4fvNVFunPtr

glProgramParameter4fvNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
glProgramParameter4fvNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
glProgramParameter4fvNVFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glProgramParameter4fvNV")

{-# NOINLINE glProgramParameter4fvNVFunPtr #-}

-- | Usage: @'glProgramParameters4dvNV' target index count v@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The length of @v@ should be @count*4@.


glProgramParameters4dvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
glProgramParameters4dvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
glProgramParameters4dvNV = FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
ffienumuintsizeiPtrdoubleIOV FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glProgramParameters4dvNVFunPtr

glProgramParameters4dvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glProgramParameters4dvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glProgramParameters4dvNVFunPtr = IO (FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glProgramParameters4dvNV")

{-# NOINLINE glProgramParameters4dvNVFunPtr #-}

-- | Usage: @'glProgramParameters4fvNV' target index count v@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The length of @v@ should be @count*4@.


glProgramParameters4fvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glProgramParameters4fvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
glProgramParameters4fvNV = FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffienumuintsizeiPtrfloatIOV FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glProgramParameters4fvNVFunPtr

glProgramParameters4fvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glProgramParameters4fvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glProgramParameters4fvNVFunPtr = IO (FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glProgramParameters4fvNV")

{-# NOINLINE glProgramParameters4fvNVFunPtr #-}

-- | Usage: @'glRequestResidentProgramsNV' n programs@
--
-- The length of @programs@ should be @n@.


glRequestResidentProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glRequestResidentProgramsNV :: forall (m :: * -> *). MonadIO m => GLsizei -> Ptr GLuint -> m ()
glRequestResidentProgramsNV = FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
ffisizeiPtruintIOV FunPtr (GLsizei -> Ptr GLuint -> IO ())
glRequestResidentProgramsNVFunPtr

glRequestResidentProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glRequestResidentProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glRequestResidentProgramsNVFunPtr = IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
-> FunPtr (GLsizei -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glRequestResidentProgramsNV")

{-# NOINLINE glRequestResidentProgramsNVFunPtr #-}

-- | Usage: @'glTrackMatrixNV' target address matrix transform@
--
-- The parameter @target@ is a @VertexAttribEnumNV@.
--
-- The parameter @matrix@ is a @VertexAttribEnumNV@.
--
-- The parameter @transform@ is a @VertexAttribEnumNV@.


glTrackMatrixNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLenum -> m ()
glTrackMatrixNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> GLuint -> GLuint -> m ()
glTrackMatrixNV = 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 ()
ffienumuintenumenumIOV FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glTrackMatrixNVFunPtr

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

{-# NOINLINE glTrackMatrixNVFunPtr #-}

-- | Usage: @'glVertexAttrib1dNV' index x@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1d'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib1dvNV'.


glVertexAttrib1dNV :: MonadIO m => GLuint -> GLdouble -> m ()
glVertexAttrib1dNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLdouble -> m ()
glVertexAttrib1dNV = FunPtr (GLuint -> GLdouble -> IO ()) -> GLuint -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLdouble -> IO ()) -> GLuint -> GLdouble -> m ()
ffiuintdoubleIOV FunPtr (GLuint -> GLdouble -> IO ())
glVertexAttrib1dNVFunPtr

glVertexAttrib1dNVFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
glVertexAttrib1dNVFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
glVertexAttrib1dNVFunPtr = IO (FunPtr (GLuint -> GLdouble -> IO ()))
-> FunPtr (GLuint -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib1dNV")

{-# NOINLINE glVertexAttrib1dNVFunPtr #-}

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


glVertexAttrib1dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib1dvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib1dvNV = FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
ffiuintPtrdoubleIOV FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib1dvNVFunPtr

glVertexAttrib1dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib1dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib1dvNVFunPtr = IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib1dvNV")

{-# NOINLINE glVertexAttrib1dvNVFunPtr #-}

-- | Usage: @'glVertexAttrib1fNV' index x@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1f'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib1fvNV'.


glVertexAttrib1fNV :: MonadIO m => GLuint -> GLfloat -> m ()
glVertexAttrib1fNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLfloat -> m ()
glVertexAttrib1fNV = FunPtr (GLuint -> GLfloat -> IO ()) -> GLuint -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLfloat -> IO ()) -> GLuint -> GLfloat -> m ()
ffiuintfloatIOV FunPtr (GLuint -> GLfloat -> IO ())
glVertexAttrib1fNVFunPtr

glVertexAttrib1fNVFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
glVertexAttrib1fNVFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
glVertexAttrib1fNVFunPtr = IO (FunPtr (GLuint -> GLfloat -> IO ()))
-> FunPtr (GLuint -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib1fNV")

{-# NOINLINE glVertexAttrib1fNVFunPtr #-}

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


glVertexAttrib1fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib1fvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib1fvNV = FunPtr (GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> Ptr GLfloat -> m ()
ffiuintPtrfloatIOV FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib1fvNVFunPtr

glVertexAttrib1fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib1fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib1fvNVFunPtr = IO (FunPtr (GLuint -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib1fvNV")

{-# NOINLINE glVertexAttrib1fvNVFunPtr #-}

-- | Usage: @'glVertexAttrib1sNV' index x@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1s'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib1svNV'.


glVertexAttrib1sNV :: MonadIO m => GLuint -> GLshort -> m ()
glVertexAttrib1sNV :: forall (m :: * -> *). MonadIO m => GLuint -> GLshort -> m ()
glVertexAttrib1sNV = FunPtr (GLuint -> GLshort -> IO ()) -> GLuint -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLshort -> IO ()) -> GLuint -> GLshort -> m ()
ffiuintshortIOV FunPtr (GLuint -> GLshort -> IO ())
glVertexAttrib1sNVFunPtr

glVertexAttrib1sNVFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
glVertexAttrib1sNVFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
glVertexAttrib1sNVFunPtr = IO (FunPtr (GLuint -> GLshort -> IO ()))
-> FunPtr (GLuint -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib1sNV")

{-# NOINLINE glVertexAttrib1sNVFunPtr #-}

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


glVertexAttrib1svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib1svNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib1svNV = 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 ())
glVertexAttrib1svNVFunPtr

glVertexAttrib1svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttrib1svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttrib1svNVFunPtr = IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
-> FunPtr (GLuint -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib1svNV")

{-# NOINLINE glVertexAttrib1svNVFunPtr #-}

-- | Usage: @'glVertexAttrib2dNV' index x y@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2d'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib2dvNV'.


glVertexAttrib2dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
glVertexAttrib2dNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLdouble -> GLdouble -> m ()
glVertexAttrib2dNV = FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> m ()
ffiuintdoubledoubleIOV FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
glVertexAttrib2dNVFunPtr

glVertexAttrib2dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
glVertexAttrib2dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
glVertexAttrib2dNVFunPtr = IO (FunPtr (GLuint -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib2dNV")

{-# NOINLINE glVertexAttrib2dNVFunPtr #-}

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


glVertexAttrib2dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib2dvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib2dvNV = FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
ffiuintPtrdoubleIOV FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib2dvNVFunPtr

glVertexAttrib2dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib2dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib2dvNVFunPtr = IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib2dvNV")

{-# NOINLINE glVertexAttrib2dvNVFunPtr #-}

-- | Usage: @'glVertexAttrib2fNV' index x y@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2f'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib2fvNV'.


glVertexAttrib2fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
glVertexAttrib2fNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLfloat -> GLfloat -> m ()
glVertexAttrib2fNV = FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-> GLuint -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-> GLuint -> GLfloat -> GLfloat -> m ()
ffiuintfloatfloatIOV FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
glVertexAttrib2fNVFunPtr

glVertexAttrib2fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
glVertexAttrib2fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
glVertexAttrib2fNVFunPtr = IO (FunPtr (GLuint -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib2fNV")

{-# NOINLINE glVertexAttrib2fNVFunPtr #-}

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


glVertexAttrib2fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib2fvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib2fvNV = FunPtr (GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> Ptr GLfloat -> m ()
ffiuintPtrfloatIOV FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib2fvNVFunPtr

glVertexAttrib2fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib2fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib2fvNVFunPtr = IO (FunPtr (GLuint -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib2fvNV")

{-# NOINLINE glVertexAttrib2fvNVFunPtr #-}

-- | Usage: @'glVertexAttrib2sNV' index x y@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2s'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib2svNV'.


glVertexAttrib2sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
glVertexAttrib2sNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLshort -> GLshort -> m ()
glVertexAttrib2sNV = FunPtr (GLuint -> GLshort -> GLshort -> IO ())
-> GLuint -> GLshort -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLshort -> GLshort -> IO ())
-> GLuint -> GLshort -> GLshort -> m ()
ffiuintshortshortIOV FunPtr (GLuint -> GLshort -> GLshort -> IO ())
glVertexAttrib2sNVFunPtr

glVertexAttrib2sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
glVertexAttrib2sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
glVertexAttrib2sNVFunPtr = IO (FunPtr (GLuint -> GLshort -> GLshort -> IO ()))
-> FunPtr (GLuint -> GLshort -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLshort -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib2sNV")

{-# NOINLINE glVertexAttrib2sNVFunPtr #-}

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


glVertexAttrib2svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib2svNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib2svNV = 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 ())
glVertexAttrib2svNVFunPtr

glVertexAttrib2svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttrib2svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttrib2svNVFunPtr = IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
-> FunPtr (GLuint -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib2svNV")

{-# NOINLINE glVertexAttrib2svNVFunPtr #-}

-- | Usage: @'glVertexAttrib3dNV' index x y z@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3d'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib3dvNV'.


glVertexAttrib3dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttrib3dNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttrib3dNV = FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuintdoubledoubledoubleIOV FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttrib3dNVFunPtr

glVertexAttrib3dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttrib3dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttrib3dNVFunPtr = IO (FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib3dNV")

{-# NOINLINE glVertexAttrib3dNVFunPtr #-}

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


glVertexAttrib3dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib3dvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib3dvNV = FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
ffiuintPtrdoubleIOV FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib3dvNVFunPtr

glVertexAttrib3dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib3dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib3dvNVFunPtr = IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib3dvNV")

{-# NOINLINE glVertexAttrib3dvNVFunPtr #-}

-- | Usage: @'glVertexAttrib3fNV' index x y z@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3f'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib3fvNV'.


glVertexAttrib3fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexAttrib3fNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexAttrib3fNV = FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiuintfloatfloatfloatIOV FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
glVertexAttrib3fNVFunPtr

glVertexAttrib3fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
glVertexAttrib3fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
glVertexAttrib3fNVFunPtr = IO (FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib3fNV")

{-# NOINLINE glVertexAttrib3fNVFunPtr #-}

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


glVertexAttrib3fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib3fvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib3fvNV = FunPtr (GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> Ptr GLfloat -> m ()
ffiuintPtrfloatIOV FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib3fvNVFunPtr

glVertexAttrib3fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib3fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib3fvNVFunPtr = IO (FunPtr (GLuint -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib3fvNV")

{-# NOINLINE glVertexAttrib3fvNVFunPtr #-}

-- | Usage: @'glVertexAttrib3sNV' index x y z@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3s'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib3svNV'.


glVertexAttrib3sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
glVertexAttrib3sNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLshort -> GLshort -> GLshort -> m ()
glVertexAttrib3sNV = FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-> GLuint -> GLshort -> GLshort -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-> GLuint -> GLshort -> GLshort -> GLshort -> m ()
ffiuintshortshortshortIOV FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
glVertexAttrib3sNVFunPtr

glVertexAttrib3sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
glVertexAttrib3sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
glVertexAttrib3sNVFunPtr = IO (FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ()))
-> FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib3sNV")

{-# NOINLINE glVertexAttrib3sNVFunPtr #-}

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


glVertexAttrib3svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib3svNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib3svNV = 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 ())
glVertexAttrib3svNVFunPtr

glVertexAttrib3svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttrib3svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttrib3svNVFunPtr = IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
-> FunPtr (GLuint -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib3svNV")

{-# NOINLINE glVertexAttrib3svNVFunPtr #-}

-- | Usage: @'glVertexAttrib4dNV' index x y z w@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4d'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4dvNV'.


glVertexAttrib4dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttrib4dNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttrib4dNV = FunPtr
  (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuintdoubledoubledoubledoubleIOV FunPtr
  (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttrib4dNVFunPtr

glVertexAttrib4dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttrib4dNVFunPtr :: FunPtr
  (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttrib4dNVFunPtr = IO
  (FunPtr
     (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()))
-> FunPtr
     (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib4dNV")

{-# NOINLINE glVertexAttrib4dNVFunPtr #-}

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


glVertexAttrib4dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib4dvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttrib4dvNV = FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
ffiuintPtrdoubleIOV FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib4dvNVFunPtr

glVertexAttrib4dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib4dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttrib4dvNVFunPtr = IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib4dvNV")

{-# NOINLINE glVertexAttrib4dvNVFunPtr #-}

-- | Usage: @'glVertexAttrib4fNV' index x y z w@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4f'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4fvNV'.


glVertexAttrib4fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexAttrib4fNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glVertexAttrib4fNV = FunPtr
  (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiuintfloatfloatfloatfloatIOV FunPtr
  (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glVertexAttrib4fNVFunPtr

glVertexAttrib4fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glVertexAttrib4fNVFunPtr :: FunPtr
  (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glVertexAttrib4fNVFunPtr = IO
  (FunPtr
     (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr
     (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib4fNV")

{-# NOINLINE glVertexAttrib4fNVFunPtr #-}

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


glVertexAttrib4fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib4fvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVertexAttrib4fvNV = FunPtr (GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> Ptr GLfloat -> m ()
ffiuintPtrfloatIOV FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib4fvNVFunPtr

glVertexAttrib4fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib4fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVertexAttrib4fvNVFunPtr = IO (FunPtr (GLuint -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib4fvNV")

{-# NOINLINE glVertexAttrib4fvNVFunPtr #-}

-- | Usage: @'glVertexAttrib4sNV' index x y z w@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4s'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4svNV'.


glVertexAttrib4sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glVertexAttrib4sNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
glVertexAttrib4sNV = FunPtr
  (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-> GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-> GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
ffiuintshortshortshortshortIOV FunPtr
  (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
glVertexAttrib4sNVFunPtr

glVertexAttrib4sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
glVertexAttrib4sNVFunPtr :: FunPtr
  (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
glVertexAttrib4sNVFunPtr = IO
  (FunPtr
     (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()))
-> FunPtr
     (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib4sNV")

{-# NOINLINE glVertexAttrib4sNVFunPtr #-}

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


glVertexAttrib4svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib4svNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLshort -> m ()
glVertexAttrib4svNV = 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 ())
glVertexAttrib4svNVFunPtr

glVertexAttrib4svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttrib4svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVertexAttrib4svNVFunPtr = IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
-> FunPtr (GLuint -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib4svNV")

{-# NOINLINE glVertexAttrib4svNVFunPtr #-}

-- | Usage: @'glVertexAttrib4ubNV' index x y z w@
--
-- The parameter @x@ is a @ColorUB@.
--
-- The parameter @y@ is a @ColorUB@.
--
-- The parameter @z@ is a @ColorUB@.
--
-- The parameter @w@ is a @ColorUB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nub'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4ubvNV'.


glVertexAttrib4ubNV :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
glVertexAttrib4ubNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
glVertexAttrib4ubNV = FunPtr
  (GLuint
   -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-> GLuint
-> GLboolean
-> GLboolean
-> GLboolean
-> GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint
   -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-> GLuint
-> GLboolean
-> GLboolean
-> GLboolean
-> GLboolean
-> m ()
ffiuintubyteubyteubyteubyteIOV FunPtr
  (GLuint
   -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
glVertexAttrib4ubNVFunPtr

glVertexAttrib4ubNVFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
glVertexAttrib4ubNVFunPtr :: FunPtr
  (GLuint
   -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
glVertexAttrib4ubNVFunPtr = IO
  (FunPtr
     (GLuint
      -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()))
-> FunPtr
     (GLuint
      -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLuint
         -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib4ubNV")

{-# NOINLINE glVertexAttrib4ubNVFunPtr #-}

-- | Usage: @'glVertexAttrib4ubvNV' index v@
--
-- The parameter @v@ is a @ColorUB@.
--
-- The length of @v@ should be @4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nubv'.


glVertexAttrib4ubvNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVertexAttrib4ubvNV :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLboolean -> m ()
glVertexAttrib4ubvNV = FunPtr (GLuint -> Ptr GLboolean -> IO ())
-> GLuint -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLboolean -> IO ())
-> GLuint -> Ptr GLboolean -> m ()
ffiuintPtrubyteIOV FunPtr (GLuint -> Ptr GLboolean -> IO ())
glVertexAttrib4ubvNVFunPtr

glVertexAttrib4ubvNVFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
glVertexAttrib4ubvNVFunPtr :: FunPtr (GLuint -> Ptr GLboolean -> IO ())
glVertexAttrib4ubvNVFunPtr = IO (FunPtr (GLuint -> Ptr GLboolean -> IO ()))
-> FunPtr (GLuint -> Ptr GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttrib4ubvNV")

{-# NOINLINE glVertexAttrib4ubvNVFunPtr #-}

-- | Usage: @'glVertexAttribPointerNV' index fsize type stride pointer@
--
-- The parameter @type@ is a @VertexAttribEnumNV@.
--
-- The length of @pointer@ should be @COMPSIZE(fsize,type,stride)@.


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

glVertexAttribPointerNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
glVertexAttribPointerNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLuint -> GLsizei -> Ptr () -> IO ())
glVertexAttribPointerNVFunPtr = IO
  (FunPtr
     (GLuint -> GLsizei -> GLuint -> GLsizei -> Ptr () -> IO ()))
-> FunPtr
     (GLuint -> GLsizei -> GLuint -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLuint -> GLsizei -> GLuint -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribPointerNV")

{-# NOINLINE glVertexAttribPointerNVFunPtr #-}

-- | Usage: @'glVertexAttribs1dvNV' index count v@
--
-- The length of @v@ should be @count@.


glVertexAttribs1dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs1dvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs1dvNV = FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLsizei -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLsizei -> Ptr GLdouble -> m ()
ffiuintsizeiPtrdoubleIOV FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs1dvNVFunPtr

glVertexAttribs1dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs1dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs1dvNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs1dvNV")

{-# NOINLINE glVertexAttribs1dvNVFunPtr #-}

-- | Usage: @'glVertexAttribs1fvNV' index count v@
--
-- The length of @v@ should be @count@.


glVertexAttribs1fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs1fvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs1fvNV = FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffiuintsizeiPtrfloatIOV FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs1fvNVFunPtr

glVertexAttribs1fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs1fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs1fvNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs1fvNV")

{-# NOINLINE glVertexAttribs1fvNVFunPtr #-}

-- | Usage: @'glVertexAttribs1svNV' index count v@
--
-- The length of @v@ should be @count@.


glVertexAttribs1svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs1svNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs1svNV = FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-> GLuint -> GLsizei -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-> GLuint -> GLsizei -> Ptr GLshort -> m ()
ffiuintsizeiPtrshortIOV FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs1svNVFunPtr

glVertexAttribs1svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs1svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs1svNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs1svNV")

{-# NOINLINE glVertexAttribs1svNVFunPtr #-}

-- | Usage: @'glVertexAttribs2dvNV' index count v@
--
-- The length of @v@ should be @count*2@.


glVertexAttribs2dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs2dvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs2dvNV = FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLsizei -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLsizei -> Ptr GLdouble -> m ()
ffiuintsizeiPtrdoubleIOV FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs2dvNVFunPtr

glVertexAttribs2dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs2dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs2dvNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs2dvNV")

{-# NOINLINE glVertexAttribs2dvNVFunPtr #-}

-- | Usage: @'glVertexAttribs2fvNV' index count v@
--
-- The length of @v@ should be @count*2@.


glVertexAttribs2fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs2fvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs2fvNV = FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffiuintsizeiPtrfloatIOV FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs2fvNVFunPtr

glVertexAttribs2fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs2fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs2fvNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs2fvNV")

{-# NOINLINE glVertexAttribs2fvNVFunPtr #-}

-- | Usage: @'glVertexAttribs2svNV' index count v@
--
-- The length of @v@ should be @count*2@.


glVertexAttribs2svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs2svNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs2svNV = FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-> GLuint -> GLsizei -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-> GLuint -> GLsizei -> Ptr GLshort -> m ()
ffiuintsizeiPtrshortIOV FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs2svNVFunPtr

glVertexAttribs2svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs2svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs2svNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs2svNV")

{-# NOINLINE glVertexAttribs2svNVFunPtr #-}

-- | Usage: @'glVertexAttribs3dvNV' index count v@
--
-- The length of @v@ should be @count*3@.


glVertexAttribs3dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs3dvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs3dvNV = FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLsizei -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLsizei -> Ptr GLdouble -> m ()
ffiuintsizeiPtrdoubleIOV FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs3dvNVFunPtr

glVertexAttribs3dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs3dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs3dvNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs3dvNV")

{-# NOINLINE glVertexAttribs3dvNVFunPtr #-}

-- | Usage: @'glVertexAttribs3fvNV' index count v@
--
-- The length of @v@ should be @count*3@.


glVertexAttribs3fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs3fvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs3fvNV = FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffiuintsizeiPtrfloatIOV FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs3fvNVFunPtr

glVertexAttribs3fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs3fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs3fvNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs3fvNV")

{-# NOINLINE glVertexAttribs3fvNVFunPtr #-}

-- | Usage: @'glVertexAttribs3svNV' index count v@
--
-- The length of @v@ should be @count*3@.


glVertexAttribs3svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs3svNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs3svNV = FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-> GLuint -> GLsizei -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-> GLuint -> GLsizei -> Ptr GLshort -> m ()
ffiuintsizeiPtrshortIOV FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs3svNVFunPtr

glVertexAttribs3svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs3svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs3svNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs3svNV")

{-# NOINLINE glVertexAttribs3svNVFunPtr #-}

-- | Usage: @'glVertexAttribs4dvNV' index count v@
--
-- The length of @v@ should be @count*4@.


glVertexAttribs4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs4dvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLdouble -> m ()
glVertexAttribs4dvNV = FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLsizei -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-> GLuint -> GLsizei -> Ptr GLdouble -> m ()
ffiuintsizeiPtrdoubleIOV FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs4dvNVFunPtr

glVertexAttribs4dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs4dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
glVertexAttribs4dvNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs4dvNV")

{-# NOINLINE glVertexAttribs4dvNVFunPtr #-}

-- | Usage: @'glVertexAttribs4fvNV' index count v@
--
-- The length of @v@ should be @count*4@.


glVertexAttribs4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs4fvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLfloat -> m ()
glVertexAttribs4fvNV = FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-> GLuint -> GLsizei -> Ptr GLfloat -> m ()
ffiuintsizeiPtrfloatIOV FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs4fvNVFunPtr

glVertexAttribs4fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs4fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
glVertexAttribs4fvNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs4fvNV")

{-# NOINLINE glVertexAttribs4fvNVFunPtr #-}

-- | Usage: @'glVertexAttribs4svNV' index count v@
--
-- The length of @v@ should be @count*4@.


glVertexAttribs4svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs4svNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLshort -> m ()
glVertexAttribs4svNV = FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-> GLuint -> GLsizei -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-> GLuint -> GLsizei -> Ptr GLshort -> m ()
ffiuintsizeiPtrshortIOV FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs4svNVFunPtr

glVertexAttribs4svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs4svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
glVertexAttribs4svNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs4svNV")

{-# NOINLINE glVertexAttribs4svNVFunPtr #-}

-- | Usage: @'glVertexAttribs4ubvNV' index count v@
--
-- The parameter @v@ is a @ColorUB@.
--
-- The length of @v@ should be @count*4@.


glVertexAttribs4ubvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> m ()
glVertexAttribs4ubvNV :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLsizei -> Ptr GLboolean -> m ()
glVertexAttribs4ubvNV = FunPtr (GLuint -> GLsizei -> Ptr GLboolean -> IO ())
-> GLuint -> GLsizei -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLboolean -> IO ())
-> GLuint -> GLsizei -> Ptr GLboolean -> m ()
ffiuintsizeiPtrubyteIOV FunPtr (GLuint -> GLsizei -> Ptr GLboolean -> IO ())
glVertexAttribs4ubvNVFunPtr

glVertexAttribs4ubvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ())
glVertexAttribs4ubvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLboolean -> IO ())
glVertexAttribs4ubvNVFunPtr = IO (FunPtr (GLuint -> GLsizei -> Ptr GLboolean -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLsizei -> Ptr GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribs4ubvNV")

{-# NOINLINE glVertexAttribs4ubvNVFunPtr #-}

pattern GL_ATTRIB_ARRAY_POINTER_NV  :: (Eq a, Num a) => a

pattern $mGL_ATTRIB_ARRAY_POINTER_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_ATTRIB_ARRAY_POINTER_NV :: forall a. (Eq a, Num a) => a
GL_ATTRIB_ARRAY_POINTER_NV = 0x8645

pattern GL_ATTRIB_ARRAY_SIZE_NV  :: (Eq a, Num a) => a

pattern $mGL_ATTRIB_ARRAY_SIZE_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_ATTRIB_ARRAY_SIZE_NV :: forall a. (Eq a, Num a) => a
GL_ATTRIB_ARRAY_SIZE_NV = 0x8623

pattern GL_ATTRIB_ARRAY_STRIDE_NV  :: (Eq a, Num a) => a

pattern $mGL_ATTRIB_ARRAY_STRIDE_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_ATTRIB_ARRAY_STRIDE_NV :: forall a. (Eq a, Num a) => a
GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624

pattern GL_ATTRIB_ARRAY_TYPE_NV  :: (Eq a, Num a) => a

pattern $mGL_ATTRIB_ARRAY_TYPE_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_ATTRIB_ARRAY_TYPE_NV :: forall a. (Eq a, Num a) => a
GL_ATTRIB_ARRAY_TYPE_NV = 0x8625

pattern GL_CURRENT_ATTRIB_NV  :: (Eq a, Num a) => a

pattern $mGL_CURRENT_ATTRIB_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_CURRENT_ATTRIB_NV :: forall a. (Eq a, Num a) => a
GL_CURRENT_ATTRIB_NV = 0x8626

pattern GL_CURRENT_MATRIX_NV  :: (Eq a, Num a) => a

pattern $mGL_CURRENT_MATRIX_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_CURRENT_MATRIX_NV :: forall a. (Eq a, Num a) => a
GL_CURRENT_MATRIX_NV = 0x8641

pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV  :: (Eq a, Num a) => a

pattern $mGL_CURRENT_MATRIX_STACK_DEPTH_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_CURRENT_MATRIX_STACK_DEPTH_NV :: forall a. (Eq a, Num a) => a
GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640

pattern GL_IDENTITY_NV  :: (Eq a, Num a) => a

pattern $mGL_IDENTITY_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_IDENTITY_NV :: forall a. (Eq a, Num a) => a
GL_IDENTITY_NV = 0x862A

pattern GL_INVERSE_NV  :: (Eq a, Num a) => a

pattern $mGL_INVERSE_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_INVERSE_NV :: forall a. (Eq a, Num a) => a
GL_INVERSE_NV = 0x862B

pattern GL_INVERSE_TRANSPOSE_NV  :: (Eq a, Num a) => a

pattern $mGL_INVERSE_TRANSPOSE_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_INVERSE_TRANSPOSE_NV :: forall a. (Eq a, Num a) => a
GL_INVERSE_TRANSPOSE_NV = 0x862D

pattern GL_MAP1_VERTEX_ATTRIB0_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB0_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB0_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660

pattern GL_MAP1_VERTEX_ATTRIB10_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB10_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB10_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A

pattern GL_MAP1_VERTEX_ATTRIB11_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB11_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB11_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B

pattern GL_MAP1_VERTEX_ATTRIB12_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB12_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB12_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C

pattern GL_MAP1_VERTEX_ATTRIB13_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB13_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB13_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D

pattern GL_MAP1_VERTEX_ATTRIB14_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB14_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB14_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E

pattern GL_MAP1_VERTEX_ATTRIB15_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB15_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB15_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F

pattern GL_MAP1_VERTEX_ATTRIB1_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB1_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB1_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661

pattern GL_MAP1_VERTEX_ATTRIB2_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB2_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB2_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662

pattern GL_MAP1_VERTEX_ATTRIB3_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB3_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB3_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663

pattern GL_MAP1_VERTEX_ATTRIB4_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB4_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB4_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664

pattern GL_MAP1_VERTEX_ATTRIB5_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB5_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB5_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665

pattern GL_MAP1_VERTEX_ATTRIB6_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB6_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB6_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666

pattern GL_MAP1_VERTEX_ATTRIB7_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB7_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB7_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667

pattern GL_MAP1_VERTEX_ATTRIB8_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB8_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB8_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668

pattern GL_MAP1_VERTEX_ATTRIB9_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP1_VERTEX_ATTRIB9_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP1_VERTEX_ATTRIB9_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669

pattern GL_MAP2_VERTEX_ATTRIB0_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB0_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB0_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670

pattern GL_MAP2_VERTEX_ATTRIB10_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB10_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB10_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A

pattern GL_MAP2_VERTEX_ATTRIB11_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB11_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB11_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B

pattern GL_MAP2_VERTEX_ATTRIB12_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB12_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB12_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C

pattern GL_MAP2_VERTEX_ATTRIB13_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB13_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB13_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D

pattern GL_MAP2_VERTEX_ATTRIB14_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB14_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB14_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E

pattern GL_MAP2_VERTEX_ATTRIB15_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB15_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB15_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F

pattern GL_MAP2_VERTEX_ATTRIB1_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB1_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB1_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671

pattern GL_MAP2_VERTEX_ATTRIB2_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB2_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB2_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672

pattern GL_MAP2_VERTEX_ATTRIB3_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB3_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB3_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673

pattern GL_MAP2_VERTEX_ATTRIB4_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB4_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB4_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674

pattern GL_MAP2_VERTEX_ATTRIB5_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB5_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB5_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675

pattern GL_MAP2_VERTEX_ATTRIB6_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB6_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB6_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676

pattern GL_MAP2_VERTEX_ATTRIB7_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB7_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB7_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677

pattern GL_MAP2_VERTEX_ATTRIB8_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB8_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB8_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678

pattern GL_MAP2_VERTEX_ATTRIB9_4_NV  :: (Eq a, Num a) => a

pattern $mGL_MAP2_VERTEX_ATTRIB9_4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAP2_VERTEX_ATTRIB9_4_NV :: forall a. (Eq a, Num a) => a
GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679

pattern GL_MATRIX0_NV  :: (Eq a, Num a) => a

pattern $mGL_MATRIX0_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MATRIX0_NV :: forall a. (Eq a, Num a) => a
GL_MATRIX0_NV = 0x8630

pattern GL_MATRIX1_NV  :: (Eq a, Num a) => a

pattern $mGL_MATRIX1_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MATRIX1_NV :: forall a. (Eq a, Num a) => a
GL_MATRIX1_NV = 0x8631

pattern GL_MATRIX2_NV  :: (Eq a, Num a) => a

pattern $mGL_MATRIX2_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MATRIX2_NV :: forall a. (Eq a, Num a) => a
GL_MATRIX2_NV = 0x8632

pattern GL_MATRIX3_NV  :: (Eq a, Num a) => a

pattern $mGL_MATRIX3_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MATRIX3_NV :: forall a. (Eq a, Num a) => a
GL_MATRIX3_NV = 0x8633

pattern GL_MATRIX4_NV  :: (Eq a, Num a) => a

pattern $mGL_MATRIX4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MATRIX4_NV :: forall a. (Eq a, Num a) => a
GL_MATRIX4_NV = 0x8634

pattern GL_MATRIX5_NV  :: (Eq a, Num a) => a

pattern $mGL_MATRIX5_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MATRIX5_NV :: forall a. (Eq a, Num a) => a
GL_MATRIX5_NV = 0x8635

pattern GL_MATRIX6_NV  :: (Eq a, Num a) => a

pattern $mGL_MATRIX6_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MATRIX6_NV :: forall a. (Eq a, Num a) => a
GL_MATRIX6_NV = 0x8636

pattern GL_MATRIX7_NV  :: (Eq a, Num a) => a

pattern $mGL_MATRIX7_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MATRIX7_NV :: forall a. (Eq a, Num a) => a
GL_MATRIX7_NV = 0x8637

pattern GL_MAX_TRACK_MATRICES_NV  :: (Eq a, Num a) => a

pattern $mGL_MAX_TRACK_MATRICES_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAX_TRACK_MATRICES_NV :: forall a. (Eq a, Num a) => a
GL_MAX_TRACK_MATRICES_NV = 0x862F

pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV  :: (Eq a, Num a) => a

pattern $mGL_MAX_TRACK_MATRIX_STACK_DEPTH_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAX_TRACK_MATRIX_STACK_DEPTH_NV :: forall a. (Eq a, Num a) => a
GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E

pattern GL_MODELVIEW_PROJECTION_NV  :: (Eq a, Num a) => a

pattern $mGL_MODELVIEW_PROJECTION_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MODELVIEW_PROJECTION_NV :: forall a. (Eq a, Num a) => a
GL_MODELVIEW_PROJECTION_NV = 0x8629

pattern GL_PROGRAM_ERROR_POSITION_NV  :: (Eq a, Num a) => a

pattern $mGL_PROGRAM_ERROR_POSITION_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PROGRAM_ERROR_POSITION_NV :: forall a. (Eq a, Num a) => a
GL_PROGRAM_ERROR_POSITION_NV = 0x864B

pattern GL_PROGRAM_LENGTH_NV  :: (Eq a, Num a) => a

pattern $mGL_PROGRAM_LENGTH_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PROGRAM_LENGTH_NV :: forall a. (Eq a, Num a) => a
GL_PROGRAM_LENGTH_NV = 0x8627

pattern GL_PROGRAM_PARAMETER_NV  :: (Eq a, Num a) => a

pattern $mGL_PROGRAM_PARAMETER_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PROGRAM_PARAMETER_NV :: forall a. (Eq a, Num a) => a
GL_PROGRAM_PARAMETER_NV = 0x8644

pattern GL_PROGRAM_RESIDENT_NV  :: (Eq a, Num a) => a

pattern $mGL_PROGRAM_RESIDENT_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PROGRAM_RESIDENT_NV :: forall a. (Eq a, Num a) => a
GL_PROGRAM_RESIDENT_NV = 0x8647

pattern GL_PROGRAM_STRING_NV  :: (Eq a, Num a) => a

pattern $mGL_PROGRAM_STRING_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PROGRAM_STRING_NV :: forall a. (Eq a, Num a) => a
GL_PROGRAM_STRING_NV = 0x8628

pattern GL_PROGRAM_TARGET_NV  :: (Eq a, Num a) => a

pattern $mGL_PROGRAM_TARGET_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PROGRAM_TARGET_NV :: forall a. (Eq a, Num a) => a
GL_PROGRAM_TARGET_NV = 0x8646

pattern GL_TRACK_MATRIX_NV  :: (Eq a, Num a) => a

pattern $mGL_TRACK_MATRIX_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_TRACK_MATRIX_NV :: forall a. (Eq a, Num a) => a
GL_TRACK_MATRIX_NV = 0x8648

pattern GL_TRACK_MATRIX_TRANSFORM_NV  :: (Eq a, Num a) => a

pattern $mGL_TRACK_MATRIX_TRANSFORM_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_TRACK_MATRIX_TRANSFORM_NV :: forall a. (Eq a, Num a) => a
GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649

pattern GL_TRANSPOSE_NV  :: (Eq a, Num a) => a

pattern $mGL_TRANSPOSE_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_TRANSPOSE_NV :: forall a. (Eq a, Num a) => a
GL_TRANSPOSE_NV = 0x862C

pattern GL_VERTEX_ATTRIB_ARRAY0_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY0_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY0_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650

pattern GL_VERTEX_ATTRIB_ARRAY10_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY10_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY10_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A

pattern GL_VERTEX_ATTRIB_ARRAY11_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY11_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY11_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B

pattern GL_VERTEX_ATTRIB_ARRAY12_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY12_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY12_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C

pattern GL_VERTEX_ATTRIB_ARRAY13_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY13_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY13_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D

pattern GL_VERTEX_ATTRIB_ARRAY14_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY14_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY14_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E

pattern GL_VERTEX_ATTRIB_ARRAY15_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY15_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY15_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F

pattern GL_VERTEX_ATTRIB_ARRAY1_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY1_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY1_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651

pattern GL_VERTEX_ATTRIB_ARRAY2_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY2_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY2_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652

pattern GL_VERTEX_ATTRIB_ARRAY3_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY3_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY3_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653

pattern GL_VERTEX_ATTRIB_ARRAY4_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY4_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY4_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654

pattern GL_VERTEX_ATTRIB_ARRAY5_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY5_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY5_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655

pattern GL_VERTEX_ATTRIB_ARRAY6_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY6_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY6_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656

pattern GL_VERTEX_ATTRIB_ARRAY7_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY7_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY7_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657

pattern GL_VERTEX_ATTRIB_ARRAY8_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY8_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY8_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658

pattern GL_VERTEX_ATTRIB_ARRAY9_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY9_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY9_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659

pattern GL_VERTEX_PROGRAM_BINDING_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_PROGRAM_BINDING_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_PROGRAM_BINDING_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_PROGRAM_BINDING_NV = 0x864A

pattern GL_VERTEX_PROGRAM_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_PROGRAM_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_PROGRAM_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_PROGRAM_NV = 0x8620

pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_PROGRAM_POINT_SIZE_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_PROGRAM_POINT_SIZE_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642

pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_PROGRAM_TWO_SIDE_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_PROGRAM_TWO_SIDE_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643

pattern GL_VERTEX_STATE_PROGRAM_NV  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_STATE_PROGRAM_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_STATE_PROGRAM_NV :: forall a. (Eq a, Num a) => a
GL_VERTEX_STATE_PROGRAM_NV = 0x8621