-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.EXT.SecondaryColor (
  -- * Extension Support
    gl_EXT_secondary_color

  -- * GL_EXT_secondary_color
  , glSecondaryColor3bEXT
  , glSecondaryColor3bvEXT
  , glSecondaryColor3dEXT
  , glSecondaryColor3dvEXT
  , glSecondaryColor3fEXT
  , glSecondaryColor3fvEXT
  , glSecondaryColor3iEXT
  , glSecondaryColor3ivEXT
  , glSecondaryColor3sEXT
  , glSecondaryColor3svEXT
  , glSecondaryColor3ubEXT
  , glSecondaryColor3ubvEXT
  , glSecondaryColor3uiEXT
  , glSecondaryColor3uivEXT
  , glSecondaryColor3usEXT
  , glSecondaryColor3usvEXT
  , glSecondaryColorPointerEXT
  , pattern GL_COLOR_SUM_EXT
  , pattern GL_CURRENT_SECONDARY_COLOR_EXT
  , pattern GL_SECONDARY_COLOR_ARRAY_EXT
  , pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT
  , pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
  , pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
  , pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
) 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/EXT/secondary_color.txt GL_EXT_secondary_color> extension is available.

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

-- | Usage: @'glSecondaryColor3bEXT' red green blue@
--
-- The parameter @red@ is a @ColorB@.
--
-- The parameter @green@ is a @ColorB@.
--
-- The parameter @blue@ is a @ColorB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3b'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3bvEXT'.


glSecondaryColor3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glSecondaryColor3bEXT :: GLbyte -> GLbyte -> GLbyte -> m ()
glSecondaryColor3bEXT = FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-> GLbyte -> GLbyte -> GLbyte -> m ()
ffibytebytebyteIOV FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glSecondaryColor3bEXTFunPtr

glSecondaryColor3bEXTFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glSecondaryColor3bEXTFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glSecondaryColor3bEXTFunPtr = IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
-> FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3bEXT")

{-# NOINLINE glSecondaryColor3bEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3bvEXT' v@
--
-- The parameter @v@ is a @ColorB@.
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3bv'.


glSecondaryColor3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
glSecondaryColor3bvEXT :: Ptr GLbyte -> m ()
glSecondaryColor3bvEXT = FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
ffiPtrbyteIOV FunPtr (Ptr GLbyte -> IO ())
glSecondaryColor3bvEXTFunPtr

glSecondaryColor3bvEXTFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glSecondaryColor3bvEXTFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glSecondaryColor3bvEXTFunPtr = IO (FunPtr (Ptr GLbyte -> IO ())) -> FunPtr (Ptr GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3bvEXT")

{-# NOINLINE glSecondaryColor3bvEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3dEXT' red green blue@
--
-- The parameter @red@ is a @ColorD@.
--
-- The parameter @green@ is a @ColorD@.
--
-- The parameter @blue@ is a @ColorD@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3d'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3dvEXT'.


glSecondaryColor3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glSecondaryColor3dEXT :: GLdouble -> GLdouble -> GLdouble -> m ()
glSecondaryColor3dEXT = FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> GLdouble -> m ()
ffidoubledoubledoubleIOV FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
glSecondaryColor3dEXTFunPtr

glSecondaryColor3dEXTFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
glSecondaryColor3dEXTFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
glSecondaryColor3dEXTFunPtr = IO (FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3dEXT")

{-# NOINLINE glSecondaryColor3dEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3dvEXT' v@
--
-- The parameter @v@ is a @ColorD@.
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3dv'.


glSecondaryColor3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
glSecondaryColor3dvEXT :: Ptr GLdouble -> m ()
glSecondaryColor3dvEXT = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glSecondaryColor3dvEXTFunPtr

glSecondaryColor3dvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glSecondaryColor3dvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glSecondaryColor3dvEXTFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3dvEXT")

{-# NOINLINE glSecondaryColor3dvEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3fEXT' red green blue@
--
-- The parameter @red@ is a @ColorF@.
--
-- The parameter @green@ is a @ColorF@.
--
-- The parameter @blue@ is a @ColorF@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3f'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3fvEXT'.


glSecondaryColor3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glSecondaryColor3fEXT :: GLfloat -> GLfloat -> GLfloat -> m ()
glSecondaryColor3fEXT = FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLfloat -> GLfloat -> GLfloat -> m ()
ffifloatfloatfloatIOV FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
glSecondaryColor3fEXTFunPtr

glSecondaryColor3fEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
glSecondaryColor3fEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
glSecondaryColor3fEXTFunPtr = IO (FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3fEXT")

{-# NOINLINE glSecondaryColor3fEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3fvEXT' v@
--
-- The parameter @v@ is a @ColorF@.
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3fv'.


glSecondaryColor3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
glSecondaryColor3fvEXT :: Ptr GLfloat -> m ()
glSecondaryColor3fvEXT = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glSecondaryColor3fvEXTFunPtr

glSecondaryColor3fvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glSecondaryColor3fvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glSecondaryColor3fvEXTFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3fvEXT")

{-# NOINLINE glSecondaryColor3fvEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3iEXT' red green blue@
--
-- The parameter @red@ is a @ColorI@.
--
-- The parameter @green@ is a @ColorI@.
--
-- The parameter @blue@ is a @ColorI@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3i'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3ivEXT'.


glSecondaryColor3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
glSecondaryColor3iEXT :: GLint -> GLint -> GLint -> m ()
glSecondaryColor3iEXT = FunPtr (GLint -> GLint -> GLint -> IO ())
-> GLint -> GLint -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLint -> GLint -> IO ())
-> GLint -> GLint -> GLint -> m ()
ffiintintintIOV FunPtr (GLint -> GLint -> GLint -> IO ())
glSecondaryColor3iEXTFunPtr

glSecondaryColor3iEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
glSecondaryColor3iEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
glSecondaryColor3iEXTFunPtr = IO (FunPtr (GLint -> GLint -> GLint -> IO ()))
-> FunPtr (GLint -> GLint -> GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLint -> GLint -> GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3iEXT")

{-# NOINLINE glSecondaryColor3iEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3ivEXT' v@
--
-- The parameter @v@ is a @ColorI@.
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3iv'.


glSecondaryColor3ivEXT :: MonadIO m => Ptr GLint -> m ()
glSecondaryColor3ivEXT :: Ptr GLint -> m ()
glSecondaryColor3ivEXT = FunPtr (Ptr GLint -> IO ()) -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLint -> IO ()) -> Ptr GLint -> m ()
ffiPtrintIOV FunPtr (Ptr GLint -> IO ())
glSecondaryColor3ivEXTFunPtr

glSecondaryColor3ivEXTFunPtr :: FunPtr (Ptr GLint -> IO ())
glSecondaryColor3ivEXTFunPtr :: FunPtr (Ptr GLint -> IO ())
glSecondaryColor3ivEXTFunPtr = IO (FunPtr (Ptr GLint -> IO ())) -> FunPtr (Ptr GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3ivEXT")

{-# NOINLINE glSecondaryColor3ivEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3sEXT' red green blue@
--
-- The parameter @red@ is a @ColorS@.
--
-- The parameter @green@ is a @ColorS@.
--
-- The parameter @blue@ is a @ColorS@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3s'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3svEXT'.


glSecondaryColor3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glSecondaryColor3sEXT :: GLshort -> GLshort -> GLshort -> m ()
glSecondaryColor3sEXT = FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-> GLshort -> GLshort -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-> GLshort -> GLshort -> GLshort -> m ()
ffishortshortshortIOV FunPtr (GLshort -> GLshort -> GLshort -> IO ())
glSecondaryColor3sEXTFunPtr

glSecondaryColor3sEXTFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
glSecondaryColor3sEXTFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
glSecondaryColor3sEXTFunPtr = IO (FunPtr (GLshort -> GLshort -> GLshort -> IO ()))
-> FunPtr (GLshort -> GLshort -> GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLshort -> GLshort -> GLshort -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3sEXT")

{-# NOINLINE glSecondaryColor3sEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3svEXT' v@
--
-- The parameter @v@ is a @ColorS@.
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3sv'.


glSecondaryColor3svEXT :: MonadIO m => Ptr GLshort -> m ()
glSecondaryColor3svEXT :: Ptr GLshort -> m ()
glSecondaryColor3svEXT = FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
ffiPtrshortIOV FunPtr (Ptr GLshort -> IO ())
glSecondaryColor3svEXTFunPtr

glSecondaryColor3svEXTFunPtr :: FunPtr (Ptr GLshort -> IO ())
glSecondaryColor3svEXTFunPtr :: FunPtr (Ptr GLshort -> IO ())
glSecondaryColor3svEXTFunPtr = IO (FunPtr (Ptr GLshort -> IO ())) -> FunPtr (Ptr GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLshort -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3svEXT")

{-# NOINLINE glSecondaryColor3svEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3ubEXT' red green blue@
--
-- The parameter @red@ is a @ColorUB@.
--
-- The parameter @green@ is a @ColorUB@.
--
-- The parameter @blue@ is a @ColorUB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3ub'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3ubvEXT'.


glSecondaryColor3ubEXT :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
glSecondaryColor3ubEXT :: GLubyte -> GLubyte -> GLubyte -> m ()
glSecondaryColor3ubEXT = FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
-> GLubyte -> GLubyte -> GLubyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
-> GLubyte -> GLubyte -> GLubyte -> m ()
ffiubyteubyteubyteIOV FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
glSecondaryColor3ubEXTFunPtr

glSecondaryColor3ubEXTFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
glSecondaryColor3ubEXTFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
glSecondaryColor3ubEXTFunPtr = IO (FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ()))
-> FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3ubEXT")

{-# NOINLINE glSecondaryColor3ubEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3ubvEXT' v@
--
-- The parameter @v@ is a @ColorUB@.
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3ubv'.


glSecondaryColor3ubvEXT :: MonadIO m => Ptr GLubyte -> m ()
glSecondaryColor3ubvEXT :: Ptr GLubyte -> m ()
glSecondaryColor3ubvEXT = FunPtr (Ptr GLubyte -> IO ()) -> Ptr GLubyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLubyte -> IO ()) -> Ptr GLubyte -> m ()
ffiPtrubyteIOV FunPtr (Ptr GLubyte -> IO ())
glSecondaryColor3ubvEXTFunPtr

glSecondaryColor3ubvEXTFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glSecondaryColor3ubvEXTFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glSecondaryColor3ubvEXTFunPtr = IO (FunPtr (Ptr GLubyte -> IO ())) -> FunPtr (Ptr GLubyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLubyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3ubvEXT")

{-# NOINLINE glSecondaryColor3ubvEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3uiEXT' red green blue@
--
-- The parameter @red@ is a @ColorUI@.
--
-- The parameter @green@ is a @ColorUI@.
--
-- The parameter @blue@ is a @ColorUI@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3ui'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3uivEXT'.


glSecondaryColor3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glSecondaryColor3uiEXT :: GLuint -> GLuint -> GLuint -> m ()
glSecondaryColor3uiEXT = FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-> GLuint -> GLuint -> GLuint -> m ()
ffiuintuintuintIOV FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glSecondaryColor3uiEXTFunPtr

glSecondaryColor3uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glSecondaryColor3uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glSecondaryColor3uiEXTFunPtr = 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 "glSecondaryColor3uiEXT")

{-# NOINLINE glSecondaryColor3uiEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3uivEXT' v@
--
-- The parameter @v@ is a @ColorUI@.
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3uiv'.


glSecondaryColor3uivEXT :: MonadIO m => Ptr GLuint -> m ()
glSecondaryColor3uivEXT :: Ptr GLuint -> m ()
glSecondaryColor3uivEXT = FunPtr (Ptr GLuint -> IO ()) -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLuint -> IO ()) -> Ptr GLuint -> m ()
ffiPtruintIOV FunPtr (Ptr GLuint -> IO ())
glSecondaryColor3uivEXTFunPtr

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

{-# NOINLINE glSecondaryColor3uivEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3usEXT' red green blue@
--
-- The parameter @red@ is a @ColorUS@.
--
-- The parameter @green@ is a @ColorUS@.
--
-- The parameter @blue@ is a @ColorUS@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3us'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3usvEXT'.


glSecondaryColor3usEXT :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
glSecondaryColor3usEXT :: GLushort -> GLushort -> GLushort -> m ()
glSecondaryColor3usEXT = FunPtr (GLushort -> GLushort -> GLushort -> IO ())
-> GLushort -> GLushort -> GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLushort -> GLushort -> GLushort -> IO ())
-> GLushort -> GLushort -> GLushort -> m ()
ffiushortushortushortIOV FunPtr (GLushort -> GLushort -> GLushort -> IO ())
glSecondaryColor3usEXTFunPtr

glSecondaryColor3usEXTFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
glSecondaryColor3usEXTFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
glSecondaryColor3usEXTFunPtr = IO (FunPtr (GLushort -> GLushort -> GLushort -> IO ()))
-> FunPtr (GLushort -> GLushort -> GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLushort -> GLushort -> GLushort -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3usEXT")

{-# NOINLINE glSecondaryColor3usEXTFunPtr #-}

-- | Usage: @'glSecondaryColor3usvEXT' v@
--
-- The parameter @v@ is a @ColorUS@.
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3usv'.


glSecondaryColor3usvEXT :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColor3usvEXT :: Ptr GLushort -> m ()
glSecondaryColor3usvEXT = FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
ffiPtrushortIOV FunPtr (Ptr GLushort -> IO ())
glSecondaryColor3usvEXTFunPtr

glSecondaryColor3usvEXTFunPtr :: FunPtr (Ptr GLushort -> IO ())
glSecondaryColor3usvEXTFunPtr :: FunPtr (Ptr GLushort -> IO ())
glSecondaryColor3usvEXTFunPtr = IO (FunPtr (Ptr GLushort -> IO ()))
-> FunPtr (Ptr GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLushort -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSecondaryColor3usvEXT")

{-# NOINLINE glSecondaryColor3usvEXTFunPtr #-}

-- | Usage: @'glSecondaryColorPointerEXT' size type stride pointer@
--
-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
--
-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColorPointer'.


glSecondaryColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glSecondaryColorPointerEXT :: GLint -> GLuint -> GLint -> Ptr () -> m ()
glSecondaryColorPointerEXT = FunPtr (GLint -> GLuint -> GLint -> Ptr () -> IO ())
-> GLint -> GLuint -> GLint -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLuint -> GLint -> Ptr () -> IO ())
-> GLint -> GLuint -> GLint -> Ptr () -> m ()
ffiintenumsizeiPtrVIOV FunPtr (GLint -> GLuint -> GLint -> Ptr () -> IO ())
glSecondaryColorPointerEXTFunPtr

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

{-# NOINLINE glSecondaryColorPointerEXTFunPtr #-}

pattern $bGL_COLOR_SUM_EXT :: a
$mGL_COLOR_SUM_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COLOR_SUM_EXT = 0x8458

pattern $bGL_CURRENT_SECONDARY_COLOR_EXT :: a
$mGL_CURRENT_SECONDARY_COLOR_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459

pattern $bGL_SECONDARY_COLOR_ARRAY_EXT :: a
$mGL_SECONDARY_COLOR_ARRAY_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E

pattern $bGL_SECONDARY_COLOR_ARRAY_POINTER_EXT :: a
$mGL_SECONDARY_COLOR_ARRAY_POINTER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D

pattern $bGL_SECONDARY_COLOR_ARRAY_SIZE_EXT :: a
$mGL_SECONDARY_COLOR_ARRAY_SIZE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A

pattern $bGL_SECONDARY_COLOR_ARRAY_STRIDE_EXT :: a
$mGL_SECONDARY_COLOR_ARRAY_STRIDE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C

pattern $bGL_SECONDARY_COLOR_ARRAY_TYPE_EXT :: a
$mGL_SECONDARY_COLOR_ARRAY_TYPE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B