-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.SGIX.FragmentLighting (
  -- * Extension Support
    gl_SGIX_fragment_lighting

  -- * GL_SGIX_fragment_lighting
  , glFragmentColorMaterialSGIX
  , glFragmentLightModelfSGIX
  , glFragmentLightModelfvSGIX
  , glFragmentLightModeliSGIX
  , glFragmentLightModelivSGIX
  , glFragmentLightfSGIX
  , glFragmentLightfvSGIX
  , glFragmentLightiSGIX
  , glFragmentLightivSGIX
  , glFragmentMaterialfSGIX
  , glFragmentMaterialfvSGIX
  , glFragmentMaterialiSGIX
  , glFragmentMaterialivSGIX
  , glGetFragmentLightfvSGIX
  , glGetFragmentLightivSGIX
  , glGetFragmentMaterialfvSGIX
  , glGetFragmentMaterialivSGIX
  , glLightEnviSGIX
  , pattern GL_CURRENT_RASTER_NORMAL_SGIX
  , pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX
  , pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX
  , pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX
  , pattern GL_FRAGMENT_LIGHT0_SGIX
  , pattern GL_FRAGMENT_LIGHT1_SGIX
  , pattern GL_FRAGMENT_LIGHT2_SGIX
  , pattern GL_FRAGMENT_LIGHT3_SGIX
  , pattern GL_FRAGMENT_LIGHT4_SGIX
  , pattern GL_FRAGMENT_LIGHT5_SGIX
  , pattern GL_FRAGMENT_LIGHT6_SGIX
  , pattern GL_FRAGMENT_LIGHT7_SGIX
  , pattern GL_FRAGMENT_LIGHTING_SGIX
  , pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX
  , pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX
  , pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX
  , pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX
  , pattern GL_LIGHT_ENV_MODE_SGIX
  , pattern GL_MAX_ACTIVE_LIGHTS_SGIX
  , pattern GL_MAX_FRAGMENT_LIGHTS_SGIX
) 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_SGIX_fragment_lighting :: Bool
gl_SGIX_fragment_lighting = member "GL_SGIX_fragment_lighting" extensions

glFragmentColorMaterialSGIX :: MonadIO m => GLenum -> GLenum -> m ()
glFragmentColorMaterialSGIX = ffienumenumIOV glFragmentColorMaterialSGIXFunPtr

glFragmentColorMaterialSGIXFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glFragmentColorMaterialSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentColorMaterialSGIX")

{-# NOINLINE glFragmentColorMaterialSGIXFunPtr #-}

glFragmentLightModelfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
glFragmentLightModelfSGIX = ffienumfloatIOV glFragmentLightModelfSGIXFunPtr

glFragmentLightModelfSGIXFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glFragmentLightModelfSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModelfSGIX")

{-# NOINLINE glFragmentLightModelfSGIXFunPtr #-}

glFragmentLightModelfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glFragmentLightModelfvSGIX = ffienumPtrfloatIOV glFragmentLightModelfvSGIXFunPtr

glFragmentLightModelfvSGIXFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glFragmentLightModelfvSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModelfvSGIX")

{-# NOINLINE glFragmentLightModelfvSGIXFunPtr #-}

glFragmentLightModeliSGIX :: MonadIO m => GLenum -> GLint -> m ()
glFragmentLightModeliSGIX = ffienumintIOV glFragmentLightModeliSGIXFunPtr

glFragmentLightModeliSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glFragmentLightModeliSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModeliSGIX")

{-# NOINLINE glFragmentLightModeliSGIXFunPtr #-}

glFragmentLightModelivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
glFragmentLightModelivSGIX = ffienumPtrintIOV glFragmentLightModelivSGIXFunPtr

glFragmentLightModelivSGIXFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
glFragmentLightModelivSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModelivSGIX")

{-# NOINLINE glFragmentLightModelivSGIXFunPtr #-}

glFragmentLightfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glFragmentLightfSGIX = ffienumenumfloatIOV glFragmentLightfSGIXFunPtr

glFragmentLightfSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glFragmentLightfSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightfSGIX")

{-# NOINLINE glFragmentLightfSGIXFunPtr #-}

glFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentLightfvSGIX = ffienumenumPtrfloatIOV glFragmentLightfvSGIXFunPtr

glFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glFragmentLightfvSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightfvSGIX")

{-# NOINLINE glFragmentLightfvSGIXFunPtr #-}

glFragmentLightiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFragmentLightiSGIX = ffienumenumintIOV glFragmentLightiSGIXFunPtr

glFragmentLightiSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glFragmentLightiSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightiSGIX")

{-# NOINLINE glFragmentLightiSGIXFunPtr #-}

glFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glFragmentLightivSGIX = ffienumenumPtrintIOV glFragmentLightivSGIXFunPtr

glFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glFragmentLightivSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightivSGIX")

{-# NOINLINE glFragmentLightivSGIXFunPtr #-}

glFragmentMaterialfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glFragmentMaterialfSGIX = ffienumenumfloatIOV glFragmentMaterialfSGIXFunPtr

glFragmentMaterialfSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glFragmentMaterialfSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialfSGIX")

{-# NOINLINE glFragmentMaterialfSGIXFunPtr #-}

glFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentMaterialfvSGIX = ffienumenumPtrfloatIOV glFragmentMaterialfvSGIXFunPtr

glFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glFragmentMaterialfvSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialfvSGIX")

{-# NOINLINE glFragmentMaterialfvSGIXFunPtr #-}

glFragmentMaterialiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFragmentMaterialiSGIX = ffienumenumintIOV glFragmentMaterialiSGIXFunPtr

glFragmentMaterialiSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glFragmentMaterialiSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialiSGIX")

{-# NOINLINE glFragmentMaterialiSGIXFunPtr #-}

glFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glFragmentMaterialivSGIX = ffienumenumPtrintIOV glFragmentMaterialivSGIXFunPtr

glFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glFragmentMaterialivSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialivSGIX")

{-# NOINLINE glFragmentMaterialivSGIXFunPtr #-}

glGetFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentLightfvSGIX = ffienumenumPtrfloatIOV glGetFragmentLightfvSGIXFunPtr

glGetFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetFragmentLightfvSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentLightfvSGIX")

{-# NOINLINE glGetFragmentLightfvSGIXFunPtr #-}

glGetFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFragmentLightivSGIX = ffienumenumPtrintIOV glGetFragmentLightivSGIXFunPtr

glGetFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetFragmentLightivSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentLightivSGIX")

{-# NOINLINE glGetFragmentLightivSGIXFunPtr #-}

glGetFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentMaterialfvSGIX = ffienumenumPtrfloatIOV glGetFragmentMaterialfvSGIXFunPtr

glGetFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetFragmentMaterialfvSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentMaterialfvSGIX")

{-# NOINLINE glGetFragmentMaterialfvSGIXFunPtr #-}

glGetFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFragmentMaterialivSGIX = ffienumenumPtrintIOV glGetFragmentMaterialivSGIXFunPtr

glGetFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetFragmentMaterialivSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentMaterialivSGIX")

{-# NOINLINE glGetFragmentMaterialivSGIXFunPtr #-}

glLightEnviSGIX :: MonadIO m => GLenum -> GLint -> m ()
glLightEnviSGIX = ffienumintIOV glLightEnviSGIXFunPtr

glLightEnviSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glLightEnviSGIXFunPtr = unsafePerformIO (getProcAddress "glLightEnviSGIX")

{-# NOINLINE glLightEnviSGIXFunPtr #-}

pattern GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406 :: GLenum

pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402 :: GLenum

pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403 :: GLenum

pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401 :: GLenum

pattern GL_FRAGMENT_LIGHT0_SGIX = 0x840C :: GLenum

pattern GL_FRAGMENT_LIGHT1_SGIX = 0x840D :: GLenum

pattern GL_FRAGMENT_LIGHT2_SGIX = 0x840E :: GLenum

pattern GL_FRAGMENT_LIGHT3_SGIX = 0x840F :: GLenum

pattern GL_FRAGMENT_LIGHT4_SGIX = 0x8410 :: GLenum

pattern GL_FRAGMENT_LIGHT5_SGIX = 0x8411 :: GLenum

pattern GL_FRAGMENT_LIGHT6_SGIX = 0x8412 :: GLenum

pattern GL_FRAGMENT_LIGHT7_SGIX = 0x8413 :: GLenum

pattern GL_FRAGMENT_LIGHTING_SGIX = 0x8400 :: GLenum

pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A :: GLenum

pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408 :: GLenum

pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B :: GLenum

pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409 :: GLenum

pattern GL_LIGHT_ENV_MODE_SGIX = 0x8407 :: GLenum

pattern GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405 :: GLenum

pattern GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404 :: GLenum