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

  -- * GL_NV_transform_feedback
  , glActiveVaryingNV
  , glBeginTransformFeedbackNV
  , glBindBufferBaseNV
  , glBindBufferOffsetNV
  , glBindBufferRangeNV
  , glEndTransformFeedbackNV
  , glGetActiveVaryingNV
  , glGetTransformFeedbackVaryingNV
  , glGetVaryingLocationNV
  , glTransformFeedbackAttribsNV
  , glTransformFeedbackStreamAttribsNV
  , glTransformFeedbackVaryingsNV
  , pattern GL_ACTIVE_VARYINGS_NV
  , pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV
  , pattern GL_BACK_PRIMARY_COLOR_NV
  , pattern GL_BACK_SECONDARY_COLOR_NV
  , pattern GL_CLIP_DISTANCE_NV
  , pattern GL_GENERIC_ATTRIB_NV
  , pattern GL_INTERLEAVED_ATTRIBS_NV
  , pattern GL_LAYER_NV
  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV
  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV
  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV
  , pattern GL_NEXT_BUFFER_NV
  , pattern GL_PRIMITIVES_GENERATED_NV
  , pattern GL_PRIMITIVE_ID_NV
  , pattern GL_RASTERIZER_DISCARD_NV
  , pattern GL_SEPARATE_ATTRIBS_NV
  , pattern GL_SKIP_COMPONENTS1_NV
  , pattern GL_SKIP_COMPONENTS2_NV
  , pattern GL_SKIP_COMPONENTS3_NV
  , pattern GL_SKIP_COMPONENTS4_NV
  , pattern GL_TEXTURE_COORD_NV
  , pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV
  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV
  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV
  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV
  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV
  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV
  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV
  , pattern GL_TRANSFORM_FEEDBACK_RECORD_NV
  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV
  , pattern GL_VERTEX_ID_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/transform_feedback.txt GL_NV_transform_feedback> extension is available.

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

-- | Usage: @'glActiveVaryingNV' program name@
--
-- The length of @name@ should be @COMPSIZE(name)@.


glActiveVaryingNV :: MonadIO m => GLuint -> Ptr GLchar -> m ()
glActiveVaryingNV :: GLuint -> Ptr GLchar -> m ()
glActiveVaryingNV = FunPtr (GLuint -> Ptr GLchar -> IO ())
-> GLuint -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLchar -> IO ())
-> GLuint -> Ptr GLchar -> m ()
ffiuintPtrcharIOV FunPtr (GLuint -> Ptr GLchar -> IO ())
glActiveVaryingNVFunPtr

glActiveVaryingNVFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO ())
glActiveVaryingNVFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO ())
glActiveVaryingNVFunPtr = IO (FunPtr (GLuint -> Ptr GLchar -> IO ()))
-> FunPtr (GLuint -> Ptr GLchar -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLchar -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glActiveVaryingNV")

{-# NOINLINE glActiveVaryingNVFunPtr #-}

-- | Usage: @'glBeginTransformFeedbackNV' primitiveMode@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glBeginTransformFeedback'.


glBeginTransformFeedbackNV :: MonadIO m => GLenum -> m ()
glBeginTransformFeedbackNV :: GLuint -> m ()
glBeginTransformFeedbackNV = FunPtr (GLuint -> IO ()) -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> IO ()) -> GLuint -> m ()
ffienumIOV FunPtr (GLuint -> IO ())
glBeginTransformFeedbackNVFunPtr

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

{-# NOINLINE glBeginTransformFeedbackNVFunPtr #-}

-- | Usage: @'glBindBufferBaseNV' target index buffer@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferBase'.


glBindBufferBaseNV :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
glBindBufferBaseNV :: GLuint -> GLuint -> GLuint -> m ()
glBindBufferBaseNV = FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> m ()
ffienumuintuintIOV FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glBindBufferBaseNVFunPtr

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

{-# NOINLINE glBindBufferBaseNVFunPtr #-}

-- | Usage: @'glBindBufferOffsetNV' target index buffer offset@
--
-- The parameter @offset@ is a @BufferOffset@.
--
-- This command is an alias for 'Graphics.GL.Ext.EXT.TransformFeedback.glBindBufferOffsetEXT'.


glBindBufferOffsetNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()
glBindBufferOffsetNV :: GLuint -> GLuint -> GLuint -> GLintptr -> m ()
glBindBufferOffsetNV = FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> IO ())
-> GLuint -> GLuint -> GLuint -> GLintptr -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> IO ())
-> GLuint -> GLuint -> GLuint -> GLintptr -> m ()
ffienumuintuintintptrIOV FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> IO ())
glBindBufferOffsetNVFunPtr

glBindBufferOffsetNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
glBindBufferOffsetNVFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> IO ())
glBindBufferOffsetNVFunPtr = IO (FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glBindBufferOffsetNV")

{-# NOINLINE glBindBufferOffsetNVFunPtr #-}

-- | Usage: @'glBindBufferRangeNV' target index buffer offset size@
--
-- The parameter @offset@ is a @BufferOffset@.
--
-- The parameter @size@ is a @BufferSize@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferRange'.


glBindBufferRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
glBindBufferRangeNV :: GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> m ()
glBindBufferRangeNV = FunPtr
  (GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> IO ())
-> GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> IO ())
-> GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> m ()
ffienumuintuintintptrsizeiptrIOV FunPtr
  (GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> IO ())
glBindBufferRangeNVFunPtr

glBindBufferRangeNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
glBindBufferRangeNVFunPtr :: FunPtr
  (GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> IO ())
glBindBufferRangeNVFunPtr = IO
  (FunPtr
     (GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> IO ()))
-> FunPtr
     (GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLuint -> GLuint -> GLuint -> GLintptr -> GLintptr -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glBindBufferRangeNV")

{-# NOINLINE glBindBufferRangeNVFunPtr #-}

-- | Usage: @'glEndTransformFeedbackNV'@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glEndTransformFeedback'.


glEndTransformFeedbackNV :: MonadIO m => m ()
glEndTransformFeedbackNV :: m ()
glEndTransformFeedbackNV = FunPtr (IO ()) -> m ()
forall (m :: * -> *). MonadIO m => FunPtr (IO ()) -> m ()
ffiIOV FunPtr (IO ())
glEndTransformFeedbackNVFunPtr

glEndTransformFeedbackNVFunPtr :: FunPtr (IO ())
glEndTransformFeedbackNVFunPtr :: FunPtr (IO ())
glEndTransformFeedbackNVFunPtr = IO (FunPtr (IO ())) -> FunPtr (IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glEndTransformFeedbackNV")

{-# NOINLINE glEndTransformFeedbackNVFunPtr #-}

-- | Usage: @'glGetActiveVaryingNV' program index bufSize length size type name@
--
-- The length of @length@ should be @1@.
--
-- The length of @size@ should be @1@.
--
-- The length of @type@ should be @1@.
--
-- The length of @name@ should be @COMPSIZE(program,index,bufSize)@.


glGetActiveVaryingNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
glGetActiveVaryingNV :: GLuint
-> GLuint
-> GLsizei
-> Ptr GLsizei
-> Ptr GLsizei
-> Ptr GLuint
-> Ptr GLchar
-> m ()
glGetActiveVaryingNV = FunPtr
  (GLuint
   -> GLuint
   -> GLsizei
   -> Ptr GLsizei
   -> Ptr GLsizei
   -> Ptr GLuint
   -> Ptr GLchar
   -> IO ())
-> GLuint
-> GLuint
-> GLsizei
-> Ptr GLsizei
-> Ptr GLsizei
-> Ptr GLuint
-> Ptr GLchar
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint
   -> GLuint
   -> GLsizei
   -> Ptr GLsizei
   -> Ptr GLsizei
   -> Ptr GLuint
   -> Ptr GLchar
   -> IO ())
-> GLuint
-> GLuint
-> GLsizei
-> Ptr GLsizei
-> Ptr GLsizei
-> Ptr GLuint
-> Ptr GLchar
-> m ()
ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV FunPtr
  (GLuint
   -> GLuint
   -> GLsizei
   -> Ptr GLsizei
   -> Ptr GLsizei
   -> Ptr GLuint
   -> Ptr GLchar
   -> IO ())
glGetActiveVaryingNVFunPtr

glGetActiveVaryingNVFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
glGetActiveVaryingNVFunPtr :: FunPtr
  (GLuint
   -> GLuint
   -> GLsizei
   -> Ptr GLsizei
   -> Ptr GLsizei
   -> Ptr GLuint
   -> Ptr GLchar
   -> IO ())
glGetActiveVaryingNVFunPtr = IO
  (FunPtr
     (GLuint
      -> GLuint
      -> GLsizei
      -> Ptr GLsizei
      -> Ptr GLsizei
      -> Ptr GLuint
      -> Ptr GLchar
      -> IO ()))
-> FunPtr
     (GLuint
      -> GLuint
      -> GLsizei
      -> Ptr GLsizei
      -> Ptr GLsizei
      -> Ptr GLuint
      -> Ptr GLchar
      -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLuint
         -> GLuint
         -> GLsizei
         -> Ptr GLsizei
         -> Ptr GLsizei
         -> Ptr GLuint
         -> Ptr GLchar
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetActiveVaryingNV")

{-# NOINLINE glGetActiveVaryingNVFunPtr #-}

-- | Usage: @'glGetTransformFeedbackVaryingNV' program index location@
--
-- The length of @location@ should be @1@.


glGetTransformFeedbackVaryingNV :: MonadIO m => GLuint -> GLuint -> Ptr GLint -> m ()
glGetTransformFeedbackVaryingNV :: GLuint -> GLuint -> Ptr GLsizei -> m ()
glGetTransformFeedbackVaryingNV = 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 ()
ffiuintuintPtrintIOV FunPtr (GLuint -> GLuint -> Ptr GLsizei -> IO ())
glGetTransformFeedbackVaryingNVFunPtr

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

{-# NOINLINE glGetTransformFeedbackVaryingNVFunPtr #-}

-- | Usage: @'glGetVaryingLocationNV' program name@
--
-- The length of @name@ should be @COMPSIZE(name)@.


glGetVaryingLocationNV :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
glGetVaryingLocationNV :: GLuint -> Ptr GLchar -> m GLsizei
glGetVaryingLocationNV = FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
-> GLuint -> Ptr GLchar -> m GLsizei
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
-> GLuint -> Ptr GLchar -> m GLsizei
ffiuintPtrcharIOint FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
glGetVaryingLocationNVFunPtr

glGetVaryingLocationNVFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
glGetVaryingLocationNVFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
glGetVaryingLocationNVFunPtr = IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
-> FunPtr (GLuint -> Ptr GLchar -> IO GLsizei)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> Ptr GLchar -> IO GLsizei))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetVaryingLocationNV")

{-# NOINLINE glGetVaryingLocationNVFunPtr #-}

-- | Usage: @'glTransformFeedbackAttribsNV' count attribs bufferMode@
--
-- The length of @attribs@ should be @COMPSIZE(count)@.


glTransformFeedbackAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLenum -> m ()
glTransformFeedbackAttribsNV :: GLsizei -> Ptr GLsizei -> GLuint -> m ()
glTransformFeedbackAttribsNV = FunPtr (GLsizei -> Ptr GLsizei -> GLuint -> IO ())
-> GLsizei -> Ptr GLsizei -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLsizei -> GLuint -> IO ())
-> GLsizei -> Ptr GLsizei -> GLuint -> m ()
ffisizeiPtrintenumIOV FunPtr (GLsizei -> Ptr GLsizei -> GLuint -> IO ())
glTransformFeedbackAttribsNVFunPtr

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

{-# NOINLINE glTransformFeedbackAttribsNVFunPtr #-}

-- | Usage: @'glTransformFeedbackStreamAttribsNV' count attribs nbuffers bufstreams bufferMode@
--
-- The length of @attribs@ should be @count@.
--
-- The length of @bufstreams@ should be @nbuffers@.


glTransformFeedbackStreamAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()
glTransformFeedbackStreamAttribsNV :: GLsizei -> Ptr GLsizei -> GLsizei -> Ptr GLsizei -> GLuint -> m ()
glTransformFeedbackStreamAttribsNV = FunPtr
  (GLsizei
   -> Ptr GLsizei -> GLsizei -> Ptr GLsizei -> GLuint -> IO ())
-> GLsizei
-> Ptr GLsizei
-> GLsizei
-> Ptr GLsizei
-> GLuint
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLsizei
   -> Ptr GLsizei -> GLsizei -> Ptr GLsizei -> GLuint -> IO ())
-> GLsizei
-> Ptr GLsizei
-> GLsizei
-> Ptr GLsizei
-> GLuint
-> m ()
ffisizeiPtrintsizeiPtrintenumIOV FunPtr
  (GLsizei
   -> Ptr GLsizei -> GLsizei -> Ptr GLsizei -> GLuint -> IO ())
glTransformFeedbackStreamAttribsNVFunPtr

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

{-# NOINLINE glTransformFeedbackStreamAttribsNVFunPtr #-}

-- | Usage: @'glTransformFeedbackVaryingsNV' program count locations bufferMode@
--
-- The length of @locations@ should be @count@.


glTransformFeedbackVaryingsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()
glTransformFeedbackVaryingsNV :: GLuint -> GLsizei -> Ptr GLsizei -> GLuint -> m ()
glTransformFeedbackVaryingsNV = FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> GLuint -> IO ())
-> GLuint -> GLsizei -> Ptr GLsizei -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> GLuint -> IO ())
-> GLuint -> GLsizei -> Ptr GLsizei -> GLuint -> m ()
ffiuintsizeiPtrintenumIOV FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> GLuint -> IO ())
glTransformFeedbackVaryingsNVFunPtr

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

{-# NOINLINE glTransformFeedbackVaryingsNVFunPtr #-}

pattern $bGL_ACTIVE_VARYINGS_NV :: a
$mGL_ACTIVE_VARYINGS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ACTIVE_VARYINGS_NV = 0x8C81

pattern $bGL_ACTIVE_VARYING_MAX_LENGTH_NV :: a
$mGL_ACTIVE_VARYING_MAX_LENGTH_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82

pattern $bGL_BACK_PRIMARY_COLOR_NV :: a
$mGL_BACK_PRIMARY_COLOR_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_BACK_PRIMARY_COLOR_NV = 0x8C77

pattern $bGL_BACK_SECONDARY_COLOR_NV :: a
$mGL_BACK_SECONDARY_COLOR_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_BACK_SECONDARY_COLOR_NV = 0x8C78

pattern $bGL_CLIP_DISTANCE_NV :: a
$mGL_CLIP_DISTANCE_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CLIP_DISTANCE_NV = 0x8C7A

pattern $bGL_GENERIC_ATTRIB_NV :: a
$mGL_GENERIC_ATTRIB_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_GENERIC_ATTRIB_NV = 0x8C7D

pattern $bGL_INTERLEAVED_ATTRIBS_NV :: a
$mGL_INTERLEAVED_ATTRIBS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C

pattern $bGL_LAYER_NV :: a
$mGL_LAYER_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_LAYER_NV = 0x8DAA

pattern $bGL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV :: a
$mGL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A

pattern $bGL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV :: a
$mGL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B

pattern $bGL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV :: a
$mGL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80

pattern $bGL_NEXT_BUFFER_NV :: a
$mGL_NEXT_BUFFER_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_NEXT_BUFFER_NV = -2

pattern $bGL_PRIMITIVES_GENERATED_NV :: a
$mGL_PRIMITIVES_GENERATED_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PRIMITIVES_GENERATED_NV = 0x8C87

pattern $bGL_PRIMITIVE_ID_NV :: a
$mGL_PRIMITIVE_ID_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PRIMITIVE_ID_NV = 0x8C7C

pattern $bGL_RASTERIZER_DISCARD_NV :: a
$mGL_RASTERIZER_DISCARD_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RASTERIZER_DISCARD_NV = 0x8C89

pattern $bGL_SEPARATE_ATTRIBS_NV :: a
$mGL_SEPARATE_ATTRIBS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SEPARATE_ATTRIBS_NV = 0x8C8D

pattern $bGL_SKIP_COMPONENTS1_NV :: a
$mGL_SKIP_COMPONENTS1_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SKIP_COMPONENTS1_NV = -6

pattern $bGL_SKIP_COMPONENTS2_NV :: a
$mGL_SKIP_COMPONENTS2_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SKIP_COMPONENTS2_NV = -5

pattern $bGL_SKIP_COMPONENTS3_NV :: a
$mGL_SKIP_COMPONENTS3_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SKIP_COMPONENTS3_NV = -4

pattern $bGL_SKIP_COMPONENTS4_NV :: a
$mGL_SKIP_COMPONENTS4_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SKIP_COMPONENTS4_NV = -3

pattern $bGL_TEXTURE_COORD_NV :: a
$mGL_TEXTURE_COORD_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_COORD_NV = 0x8C79

pattern $bGL_TRANSFORM_FEEDBACK_ATTRIBS_NV :: a
$mGL_TRANSFORM_FEEDBACK_ATTRIBS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E

pattern $bGL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV :: a
$mGL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F

pattern $bGL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV :: a
$mGL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F

pattern $bGL_TRANSFORM_FEEDBACK_BUFFER_NV :: a
$mGL_TRANSFORM_FEEDBACK_BUFFER_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E

pattern $bGL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV :: a
$mGL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85

pattern $bGL_TRANSFORM_FEEDBACK_BUFFER_START_NV :: a
$mGL_TRANSFORM_FEEDBACK_BUFFER_START_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84

pattern $bGL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV :: a
$mGL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88

pattern $bGL_TRANSFORM_FEEDBACK_RECORD_NV :: a
$mGL_TRANSFORM_FEEDBACK_RECORD_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86

pattern $bGL_TRANSFORM_FEEDBACK_VARYINGS_NV :: a
$mGL_TRANSFORM_FEEDBACK_VARYINGS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83

pattern $bGL_VERTEX_ID_NV :: a
$mGL_VERTEX_ID_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VERTEX_ID_NV = 0x8C7B