-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.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.Raw.Internal.FFI
import Graphics.GL.Raw.Internal.Proc
import Graphics.GL.Raw.Types
import System.IO.Unsafe

gl_EXT_secondary_color :: Bool
gl_EXT_secondary_color = member "GL_EXT_secondary_color" extensions

glSecondaryColor3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
glSecondaryColor3bEXT = ffibytebytebyteIOV glSecondaryColor3bEXTFunPtr

glSecondaryColor3bEXTFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
glSecondaryColor3bEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bEXT")

{-# NOINLINE glSecondaryColor3bEXTFunPtr #-}

glSecondaryColor3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
glSecondaryColor3bvEXT = ffiPtrbyteIOV glSecondaryColor3bvEXTFunPtr

glSecondaryColor3bvEXTFunPtr :: FunPtr (Ptr GLbyte -> IO ())
glSecondaryColor3bvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bvEXT")

{-# NOINLINE glSecondaryColor3bvEXTFunPtr #-}

glSecondaryColor3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
glSecondaryColor3dEXT = ffidoubledoubledoubleIOV glSecondaryColor3dEXTFunPtr

glSecondaryColor3dEXTFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
glSecondaryColor3dEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dEXT")

{-# NOINLINE glSecondaryColor3dEXTFunPtr #-}

glSecondaryColor3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
glSecondaryColor3dvEXT = ffiPtrdoubleIOV glSecondaryColor3dvEXTFunPtr

glSecondaryColor3dvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glSecondaryColor3dvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dvEXT")

{-# NOINLINE glSecondaryColor3dvEXTFunPtr #-}

glSecondaryColor3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
glSecondaryColor3fEXT = ffifloatfloatfloatIOV glSecondaryColor3fEXTFunPtr

glSecondaryColor3fEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
glSecondaryColor3fEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fEXT")

{-# NOINLINE glSecondaryColor3fEXTFunPtr #-}

glSecondaryColor3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
glSecondaryColor3fvEXT = ffiPtrfloatIOV glSecondaryColor3fvEXTFunPtr

glSecondaryColor3fvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glSecondaryColor3fvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fvEXT")

{-# NOINLINE glSecondaryColor3fvEXTFunPtr #-}

glSecondaryColor3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
glSecondaryColor3iEXT = ffiintintintIOV glSecondaryColor3iEXTFunPtr

glSecondaryColor3iEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
glSecondaryColor3iEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3iEXT")

{-# NOINLINE glSecondaryColor3iEXTFunPtr #-}

glSecondaryColor3ivEXT :: MonadIO m => Ptr GLint -> m ()
glSecondaryColor3ivEXT = ffiPtrintIOV glSecondaryColor3ivEXTFunPtr

glSecondaryColor3ivEXTFunPtr :: FunPtr (Ptr GLint -> IO ())
glSecondaryColor3ivEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ivEXT")

{-# NOINLINE glSecondaryColor3ivEXTFunPtr #-}

glSecondaryColor3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
glSecondaryColor3sEXT = ffishortshortshortIOV glSecondaryColor3sEXTFunPtr

glSecondaryColor3sEXTFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
glSecondaryColor3sEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3sEXT")

{-# NOINLINE glSecondaryColor3sEXTFunPtr #-}

glSecondaryColor3svEXT :: MonadIO m => Ptr GLshort -> m ()
glSecondaryColor3svEXT = ffiPtrshortIOV glSecondaryColor3svEXTFunPtr

glSecondaryColor3svEXTFunPtr :: FunPtr (Ptr GLshort -> IO ())
glSecondaryColor3svEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3svEXT")

{-# NOINLINE glSecondaryColor3svEXTFunPtr #-}

glSecondaryColor3ubEXT :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
glSecondaryColor3ubEXT = ffiubyteubyteubyteIOV glSecondaryColor3ubEXTFunPtr

glSecondaryColor3ubEXTFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
glSecondaryColor3ubEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubEXT")

{-# NOINLINE glSecondaryColor3ubEXTFunPtr #-}

glSecondaryColor3ubvEXT :: MonadIO m => Ptr GLubyte -> m ()
glSecondaryColor3ubvEXT = ffiPtrubyteIOV glSecondaryColor3ubvEXTFunPtr

glSecondaryColor3ubvEXTFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glSecondaryColor3ubvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubvEXT")

{-# NOINLINE glSecondaryColor3ubvEXTFunPtr #-}

glSecondaryColor3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glSecondaryColor3uiEXT = ffiuintuintuintIOV glSecondaryColor3uiEXTFunPtr

glSecondaryColor3uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glSecondaryColor3uiEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uiEXT")

{-# NOINLINE glSecondaryColor3uiEXTFunPtr #-}

glSecondaryColor3uivEXT :: MonadIO m => Ptr GLuint -> m ()
glSecondaryColor3uivEXT = ffiPtruintIOV glSecondaryColor3uivEXTFunPtr

glSecondaryColor3uivEXTFunPtr :: FunPtr (Ptr GLuint -> IO ())
glSecondaryColor3uivEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uivEXT")

{-# NOINLINE glSecondaryColor3uivEXTFunPtr #-}

glSecondaryColor3usEXT :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
glSecondaryColor3usEXT = ffiushortushortushortIOV glSecondaryColor3usEXTFunPtr

glSecondaryColor3usEXTFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
glSecondaryColor3usEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usEXT")

{-# NOINLINE glSecondaryColor3usEXTFunPtr #-}

glSecondaryColor3usvEXT :: MonadIO m => Ptr GLushort -> m ()
glSecondaryColor3usvEXT = ffiPtrushortIOV glSecondaryColor3usvEXTFunPtr

glSecondaryColor3usvEXTFunPtr :: FunPtr (Ptr GLushort -> IO ())
glSecondaryColor3usvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usvEXT")

{-# NOINLINE glSecondaryColor3usvEXTFunPtr #-}

glSecondaryColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glSecondaryColorPointerEXT = ffiintenumsizeiPtrVIOV glSecondaryColorPointerEXTFunPtr

glSecondaryColorPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
glSecondaryColorPointerEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointerEXT")

{-# NOINLINE glSecondaryColorPointerEXTFunPtr #-}

pattern GL_COLOR_SUM_EXT = 0x8458

pattern GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459

pattern GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E

pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D

pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A

pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C

pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B