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

  -- * GL_NV_register_combiners
  , glCombinerInputNV
  , glCombinerOutputNV
  , glCombinerParameterfNV
  , glCombinerParameterfvNV
  , glCombinerParameteriNV
  , glCombinerParameterivNV
  , glFinalCombinerInputNV
  , glGetCombinerInputParameterfvNV
  , glGetCombinerInputParameterivNV
  , glGetCombinerOutputParameterfvNV
  , glGetCombinerOutputParameterivNV
  , glGetFinalCombinerInputParameterfvNV
  , glGetFinalCombinerInputParameterivNV
  , pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV
  , pattern GL_COLOR_SUM_CLAMP_NV
  , pattern GL_COMBINER0_NV
  , pattern GL_COMBINER1_NV
  , pattern GL_COMBINER2_NV
  , pattern GL_COMBINER3_NV
  , pattern GL_COMBINER4_NV
  , pattern GL_COMBINER5_NV
  , pattern GL_COMBINER6_NV
  , pattern GL_COMBINER7_NV
  , pattern GL_COMBINER_AB_DOT_PRODUCT_NV
  , pattern GL_COMBINER_AB_OUTPUT_NV
  , pattern GL_COMBINER_BIAS_NV
  , pattern GL_COMBINER_CD_DOT_PRODUCT_NV
  , pattern GL_COMBINER_CD_OUTPUT_NV
  , pattern GL_COMBINER_COMPONENT_USAGE_NV
  , pattern GL_COMBINER_INPUT_NV
  , pattern GL_COMBINER_MAPPING_NV
  , pattern GL_COMBINER_MUX_SUM_NV
  , pattern GL_COMBINER_SCALE_NV
  , pattern GL_COMBINER_SUM_OUTPUT_NV
  , pattern GL_CONSTANT_COLOR0_NV
  , pattern GL_CONSTANT_COLOR1_NV
  , pattern GL_DISCARD_NV
  , pattern GL_EXPAND_NEGATE_NV
  , pattern GL_EXPAND_NORMAL_NV
  , pattern GL_E_TIMES_F_NV
  , pattern GL_FOG
  , pattern GL_HALF_BIAS_NEGATE_NV
  , pattern GL_HALF_BIAS_NORMAL_NV
  , pattern GL_MAX_GENERAL_COMBINERS_NV
  , pattern GL_NONE
  , pattern GL_NUM_GENERAL_COMBINERS_NV
  , pattern GL_PRIMARY_COLOR_NV
  , pattern GL_REGISTER_COMBINERS_NV
  , pattern GL_SCALE_BY_FOUR_NV
  , pattern GL_SCALE_BY_ONE_HALF_NV
  , pattern GL_SCALE_BY_TWO_NV
  , pattern GL_SECONDARY_COLOR_NV
  , pattern GL_SIGNED_IDENTITY_NV
  , pattern GL_SIGNED_NEGATE_NV
  , pattern GL_SPARE0_NV
  , pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV
  , pattern GL_SPARE1_NV
  , pattern GL_TEXTURE0_ARB
  , pattern GL_TEXTURE1_ARB
  , pattern GL_UNSIGNED_IDENTITY_NV
  , pattern GL_UNSIGNED_INVERT_NV
  , pattern GL_VARIABLE_A_NV
  , pattern GL_VARIABLE_B_NV
  , pattern GL_VARIABLE_C_NV
  , pattern GL_VARIABLE_D_NV
  , pattern GL_VARIABLE_E_NV
  , pattern GL_VARIABLE_F_NV
  , pattern GL_VARIABLE_G_NV
  , pattern GL_ZERO
) 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.Internal.Shared
import Graphics.GL.Types
import System.IO.Unsafe

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

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

-- | Usage: @'glCombinerInputNV' stage portion variable input mapping componentUsage@
--
-- The parameter @stage@ is a @CombinerStageNV@.
--
-- The parameter @portion@ is a @CombinerPortionNV@.
--
-- The parameter @variable@ is a @CombinerVariableNV@.
--
-- The parameter @input@ is a @CombinerRegisterNV@.
--
-- The parameter @mapping@ is a @CombinerMappingNV@.
--
-- The parameter @componentUsage@ is a @CombinerComponentUsageNV@.


glCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glCombinerInputNV :: GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glCombinerInputNV = FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffienumenumenumenumenumenumIOV FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glCombinerInputNVFunPtr

glCombinerInputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glCombinerInputNVFunPtr :: FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glCombinerInputNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
-> FunPtr
     (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glCombinerInputNV")

{-# NOINLINE glCombinerInputNVFunPtr #-}

-- | Usage: @'glCombinerOutputNV' stage portion abOutput cdOutput sumOutput scale bias abDotProduct cdDotProduct muxSum@
--
-- The parameter @stage@ is a @CombinerStageNV@.
--
-- The parameter @portion@ is a @CombinerPortionNV@.
--
-- The parameter @abOutput@ is a @CombinerRegisterNV@.
--
-- The parameter @cdOutput@ is a @CombinerRegisterNV@.
--
-- The parameter @sumOutput@ is a @CombinerRegisterNV@.
--
-- The parameter @scale@ is a @CombinerScaleNV@.
--
-- The parameter @bias@ is a @CombinerBiasNV@.
--
-- The parameter @abDotProduct@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
--
-- The parameter @cdDotProduct@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
--
-- The parameter @muxSum@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.


glCombinerOutputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()
glCombinerOutputNV :: GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLboolean
-> GLboolean
-> GLboolean
-> m ()
glCombinerOutputNV = FunPtr
  (GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLboolean
   -> GLboolean
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLboolean
-> GLboolean
-> GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLboolean
   -> GLboolean
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLboolean
-> GLboolean
-> GLboolean
-> m ()
ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV FunPtr
  (GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLboolean
   -> GLboolean
   -> GLboolean
   -> IO ())
glCombinerOutputNVFunPtr

glCombinerOutputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ())
glCombinerOutputNVFunPtr :: FunPtr
  (GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLenum
   -> GLboolean
   -> GLboolean
   -> GLboolean
   -> IO ())
glCombinerOutputNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum
      -> GLenum
      -> GLenum
      -> GLenum
      -> GLenum
      -> GLenum
      -> GLboolean
      -> GLboolean
      -> GLboolean
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLenum
      -> GLenum
      -> GLenum
      -> GLenum
      -> GLenum
      -> GLenum
      -> GLboolean
      -> GLboolean
      -> GLboolean
      -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum
         -> GLenum
         -> GLenum
         -> GLenum
         -> GLenum
         -> GLenum
         -> GLboolean
         -> GLboolean
         -> GLboolean
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glCombinerOutputNV")

{-# NOINLINE glCombinerOutputNVFunPtr #-}

-- | Usage: @'glCombinerParameterfNV' pname param@
--
-- The parameter @pname@ is a @CombinerParameterNV@.


glCombinerParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()
glCombinerParameterfNV :: GLenum -> GLfloat -> m ()
glCombinerParameterfNV = FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
ffienumfloatIOV FunPtr (GLenum -> GLfloat -> IO ())
glCombinerParameterfNVFunPtr

glCombinerParameterfNVFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glCombinerParameterfNVFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glCombinerParameterfNVFunPtr = IO (FunPtr (GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glCombinerParameterfNV")

{-# NOINLINE glCombinerParameterfNVFunPtr #-}

-- | Usage: @'glCombinerParameterfvNV' pname params@
--
-- The parameter @pname@ is a @CombinerParameterNV@.
--
-- The parameter @params@ is a @CheckedFloat32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glCombinerParameterfvNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glCombinerParameterfvNV :: GLenum -> Ptr GLfloat -> m ()
glCombinerParameterfvNV = FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> Ptr GLfloat -> m ()
ffienumPtrfloatIOV FunPtr (GLenum -> Ptr GLfloat -> IO ())
glCombinerParameterfvNVFunPtr

glCombinerParameterfvNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glCombinerParameterfvNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glCombinerParameterfvNVFunPtr = IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glCombinerParameterfvNV")

{-# NOINLINE glCombinerParameterfvNVFunPtr #-}

-- | Usage: @'glCombinerParameteriNV' pname param@
--
-- The parameter @pname@ is a @CombinerParameterNV@.


glCombinerParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
glCombinerParameteriNV :: GLenum -> GLint -> m ()
glCombinerParameteriNV = FunPtr (GLenum -> GLint -> IO ()) -> GLenum -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLint -> IO ()) -> GLenum -> GLint -> m ()
ffienumintIOV FunPtr (GLenum -> GLint -> IO ())
glCombinerParameteriNVFunPtr

glCombinerParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glCombinerParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glCombinerParameteriNVFunPtr = IO (FunPtr (GLenum -> GLint -> IO ()))
-> FunPtr (GLenum -> GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glCombinerParameteriNV")

{-# NOINLINE glCombinerParameteriNVFunPtr #-}

-- | Usage: @'glCombinerParameterivNV' pname params@
--
-- The parameter @pname@ is a @CombinerParameterNV@.
--
-- The parameter @params@ is a @CheckedInt32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glCombinerParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
glCombinerParameterivNV :: GLenum -> Ptr GLint -> m ()
glCombinerParameterivNV = FunPtr (GLenum -> Ptr GLint -> IO ())
-> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr GLint -> IO ())
-> GLenum -> Ptr GLint -> m ()
ffienumPtrintIOV FunPtr (GLenum -> Ptr GLint -> IO ())
glCombinerParameterivNVFunPtr

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

{-# NOINLINE glCombinerParameterivNVFunPtr #-}

-- | Usage: @'glFinalCombinerInputNV' variable input mapping componentUsage@
--
-- The parameter @variable@ is a @CombinerVariableNV@.
--
-- The parameter @input@ is a @CombinerRegisterNV@.
--
-- The parameter @mapping@ is a @CombinerMappingNV@.
--
-- The parameter @componentUsage@ is a @CombinerComponentUsageNV@.


glFinalCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
glFinalCombinerInputNV :: GLenum -> GLenum -> GLenum -> GLenum -> m ()
glFinalCombinerInputNV = FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> m ()
ffienumenumenumenumIOV FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glFinalCombinerInputNVFunPtr

glFinalCombinerInputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glFinalCombinerInputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glFinalCombinerInputNVFunPtr = IO (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFinalCombinerInputNV")

{-# NOINLINE glFinalCombinerInputNVFunPtr #-}

-- | Usage: @'glGetCombinerInputParameterfvNV' stage portion variable pname params@
--
-- The parameter @stage@ is a @CombinerStageNV@.
--
-- The parameter @portion@ is a @CombinerPortionNV@.
--
-- The parameter @variable@ is a @CombinerVariableNV@.
--
-- The parameter @pname@ is a @CombinerParameterNV@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCombinerInputParameterfvNV :: GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCombinerInputParameterfvNV = FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumenumenumPtrfloatIOV FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetCombinerInputParameterfvNVFunPtr

glGetCombinerInputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetCombinerInputParameterfvNVFunPtr :: FunPtr
  (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetCombinerInputParameterfvNVFunPtr = IO
  (FunPtr
     (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr
     (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetCombinerInputParameterfvNV")

{-# NOINLINE glGetCombinerInputParameterfvNVFunPtr #-}

-- | Usage: @'glGetCombinerInputParameterivNV' stage portion variable pname params@
--
-- The parameter @stage@ is a @CombinerStageNV@.
--
-- The parameter @portion@ is a @CombinerPortionNV@.
--
-- The parameter @variable@ is a @CombinerVariableNV@.
--
-- The parameter @pname@ is a @CombinerParameterNV@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetCombinerInputParameterivNV :: GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetCombinerInputParameterivNV = FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumenumenumenumPtrintIOV FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
glGetCombinerInputParameterivNVFunPtr

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

{-# NOINLINE glGetCombinerInputParameterivNVFunPtr #-}

-- | Usage: @'glGetCombinerOutputParameterfvNV' stage portion pname params@
--
-- The parameter @stage@ is a @CombinerStageNV@.
--
-- The parameter @portion@ is a @CombinerPortionNV@.
--
-- The parameter @pname@ is a @CombinerParameterNV@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetCombinerOutputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCombinerOutputParameterfvNV :: GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetCombinerOutputParameterfvNV = FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetCombinerOutputParameterfvNVFunPtr

glGetCombinerOutputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetCombinerOutputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetCombinerOutputParameterfvNVFunPtr = IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetCombinerOutputParameterfvNV")

{-# NOINLINE glGetCombinerOutputParameterfvNVFunPtr #-}

-- | Usage: @'glGetCombinerOutputParameterivNV' stage portion pname params@
--
-- The parameter @stage@ is a @CombinerStageNV@.
--
-- The parameter @portion@ is a @CombinerPortionNV@.
--
-- The parameter @pname@ is a @CombinerParameterNV@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetCombinerOutputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetCombinerOutputParameterivNV :: GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
glGetCombinerOutputParameterivNV = FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumenumenumPtrintIOV FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
glGetCombinerOutputParameterivNVFunPtr

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

{-# NOINLINE glGetCombinerOutputParameterivNVFunPtr #-}

-- | Usage: @'glGetFinalCombinerInputParameterfvNV' variable pname params@
--
-- The parameter @variable@ is a @CombinerVariableNV@.
--
-- The parameter @pname@ is a @CombinerParameterNV@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetFinalCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFinalCombinerInputParameterfvNV :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFinalCombinerInputParameterfvNV = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetFinalCombinerInputParameterfvNVFunPtr

glGetFinalCombinerInputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetFinalCombinerInputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetFinalCombinerInputParameterfvNVFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetFinalCombinerInputParameterfvNV")

{-# NOINLINE glGetFinalCombinerInputParameterfvNVFunPtr #-}

-- | Usage: @'glGetFinalCombinerInputParameterivNV' variable pname params@
--
-- The parameter @variable@ is a @CombinerVariableNV@.
--
-- The parameter @pname@ is a @CombinerParameterNV@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetFinalCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFinalCombinerInputParameterivNV :: GLenum -> GLenum -> Ptr GLint -> m ()
glGetFinalCombinerInputParameterivNV = FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetFinalCombinerInputParameterivNVFunPtr

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

{-# NOINLINE glGetFinalCombinerInputParameterivNVFunPtr #-}

pattern $bGL_BIAS_BY_NEGATIVE_ONE_HALF_NV :: a
$mGL_BIAS_BY_NEGATIVE_ONE_HALF_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541

pattern $bGL_COLOR_SUM_CLAMP_NV :: a
$mGL_COLOR_SUM_CLAMP_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COLOR_SUM_CLAMP_NV = 0x854F

pattern $bGL_COMBINER0_NV :: a
$mGL_COMBINER0_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER0_NV = 0x8550

pattern $bGL_COMBINER1_NV :: a
$mGL_COMBINER1_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER1_NV = 0x8551

pattern $bGL_COMBINER2_NV :: a
$mGL_COMBINER2_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER2_NV = 0x8552

pattern $bGL_COMBINER3_NV :: a
$mGL_COMBINER3_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER3_NV = 0x8553

pattern $bGL_COMBINER4_NV :: a
$mGL_COMBINER4_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER4_NV = 0x8554

pattern $bGL_COMBINER5_NV :: a
$mGL_COMBINER5_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER5_NV = 0x8555

pattern $bGL_COMBINER6_NV :: a
$mGL_COMBINER6_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER6_NV = 0x8556

pattern $bGL_COMBINER7_NV :: a
$mGL_COMBINER7_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER7_NV = 0x8557

pattern $bGL_COMBINER_AB_DOT_PRODUCT_NV :: a
$mGL_COMBINER_AB_DOT_PRODUCT_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545

pattern $bGL_COMBINER_AB_OUTPUT_NV :: a
$mGL_COMBINER_AB_OUTPUT_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_AB_OUTPUT_NV = 0x854A

pattern $bGL_COMBINER_BIAS_NV :: a
$mGL_COMBINER_BIAS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_BIAS_NV = 0x8549

pattern $bGL_COMBINER_CD_DOT_PRODUCT_NV :: a
$mGL_COMBINER_CD_DOT_PRODUCT_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546

pattern $bGL_COMBINER_CD_OUTPUT_NV :: a
$mGL_COMBINER_CD_OUTPUT_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_CD_OUTPUT_NV = 0x854B

pattern $bGL_COMBINER_COMPONENT_USAGE_NV :: a
$mGL_COMBINER_COMPONENT_USAGE_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_COMPONENT_USAGE_NV = 0x8544

pattern $bGL_COMBINER_INPUT_NV :: a
$mGL_COMBINER_INPUT_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_INPUT_NV = 0x8542

pattern $bGL_COMBINER_MAPPING_NV :: a
$mGL_COMBINER_MAPPING_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_MAPPING_NV = 0x8543

pattern $bGL_COMBINER_MUX_SUM_NV :: a
$mGL_COMBINER_MUX_SUM_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_MUX_SUM_NV = 0x8547

pattern $bGL_COMBINER_SCALE_NV :: a
$mGL_COMBINER_SCALE_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_SCALE_NV = 0x8548

pattern $bGL_COMBINER_SUM_OUTPUT_NV :: a
$mGL_COMBINER_SUM_OUTPUT_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COMBINER_SUM_OUTPUT_NV = 0x854C

pattern $bGL_CONSTANT_COLOR0_NV :: a
$mGL_CONSTANT_COLOR0_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CONSTANT_COLOR0_NV = 0x852A

pattern $bGL_CONSTANT_COLOR1_NV :: a
$mGL_CONSTANT_COLOR1_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CONSTANT_COLOR1_NV = 0x852B

pattern $bGL_DISCARD_NV :: a
$mGL_DISCARD_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DISCARD_NV = 0x8530

pattern $bGL_EXPAND_NEGATE_NV :: a
$mGL_EXPAND_NEGATE_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_EXPAND_NEGATE_NV = 0x8539

pattern $bGL_EXPAND_NORMAL_NV :: a
$mGL_EXPAND_NORMAL_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_EXPAND_NORMAL_NV = 0x8538

pattern $bGL_E_TIMES_F_NV :: a
$mGL_E_TIMES_F_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_E_TIMES_F_NV = 0x8531

pattern $bGL_HALF_BIAS_NEGATE_NV :: a
$mGL_HALF_BIAS_NEGATE_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_HALF_BIAS_NEGATE_NV = 0x853B

pattern $bGL_HALF_BIAS_NORMAL_NV :: a
$mGL_HALF_BIAS_NORMAL_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_HALF_BIAS_NORMAL_NV = 0x853A

pattern $bGL_MAX_GENERAL_COMBINERS_NV :: a
$mGL_MAX_GENERAL_COMBINERS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_GENERAL_COMBINERS_NV = 0x854D

pattern $bGL_NUM_GENERAL_COMBINERS_NV :: a
$mGL_NUM_GENERAL_COMBINERS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_NUM_GENERAL_COMBINERS_NV = 0x854E

pattern $bGL_REGISTER_COMBINERS_NV :: a
$mGL_REGISTER_COMBINERS_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REGISTER_COMBINERS_NV = 0x8522

pattern $bGL_SCALE_BY_FOUR_NV :: a
$mGL_SCALE_BY_FOUR_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SCALE_BY_FOUR_NV = 0x853F

pattern $bGL_SCALE_BY_ONE_HALF_NV :: a
$mGL_SCALE_BY_ONE_HALF_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SCALE_BY_ONE_HALF_NV = 0x8540

pattern $bGL_SCALE_BY_TWO_NV :: a
$mGL_SCALE_BY_TWO_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SCALE_BY_TWO_NV = 0x853E

pattern $bGL_SIGNED_IDENTITY_NV :: a
$mGL_SIGNED_IDENTITY_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SIGNED_IDENTITY_NV = 0x853C

pattern $bGL_SIGNED_NEGATE_NV :: a
$mGL_SIGNED_NEGATE_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SIGNED_NEGATE_NV = 0x853D

pattern $bGL_SPARE0_NV :: a
$mGL_SPARE0_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SPARE0_NV = 0x852E

pattern $bGL_SPARE0_PLUS_SECONDARY_COLOR_NV :: a
$mGL_SPARE0_PLUS_SECONDARY_COLOR_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532

pattern $bGL_SPARE1_NV :: a
$mGL_SPARE1_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SPARE1_NV = 0x852F

pattern $bGL_UNSIGNED_IDENTITY_NV :: a
$mGL_UNSIGNED_IDENTITY_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_UNSIGNED_IDENTITY_NV = 0x8536

pattern $bGL_UNSIGNED_INVERT_NV :: a
$mGL_UNSIGNED_INVERT_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_UNSIGNED_INVERT_NV = 0x8537

pattern $bGL_VARIABLE_A_NV :: a
$mGL_VARIABLE_A_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VARIABLE_A_NV = 0x8523

pattern $bGL_VARIABLE_B_NV :: a
$mGL_VARIABLE_B_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VARIABLE_B_NV = 0x8524

pattern $bGL_VARIABLE_C_NV :: a
$mGL_VARIABLE_C_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VARIABLE_C_NV = 0x8525

pattern $bGL_VARIABLE_D_NV :: a
$mGL_VARIABLE_D_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VARIABLE_D_NV = 0x8526

pattern $bGL_VARIABLE_E_NV :: a
$mGL_VARIABLE_E_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VARIABLE_E_NV = 0x8527

pattern $bGL_VARIABLE_F_NV :: a
$mGL_VARIABLE_F_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VARIABLE_F_NV = 0x8528

pattern $bGL_VARIABLE_G_NV :: a
$mGL_VARIABLE_G_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VARIABLE_G_NV = 0x8529