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

-- | Checks that the GL_SGIX_fragment_lighting extension is available.

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

-- | Usage: @'glFragmentColorMaterialSGIX' face mode@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @mode@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.


glFragmentColorMaterialSGIX :: MonadIO m => GLenum -> GLenum -> m ()
glFragmentColorMaterialSGIX :: GLenum -> GLenum -> m ()
glFragmentColorMaterialSGIX = FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
ffienumenumIOV FunPtr (GLenum -> GLenum -> IO ())
glFragmentColorMaterialSGIXFunPtr

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

{-# NOINLINE glFragmentColorMaterialSGIXFunPtr #-}

-- | Usage: @'glFragmentLightModelfSGIX' pname param@
--
-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
--
-- The parameter @param@ is a @CheckedFloat32@.


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

glFragmentLightModelfSGIXFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glFragmentLightModelfSGIXFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
glFragmentLightModelfSGIXFunPtr = 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 "glFragmentLightModelfSGIX")

{-# NOINLINE glFragmentLightModelfSGIXFunPtr #-}

-- | Usage: @'glFragmentLightModelfvSGIX' pname params@
--
-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
--
-- The parameter @params@ is a @CheckedFloat32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glFragmentLightModelfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
glFragmentLightModelfvSGIX :: GLenum -> Ptr GLfloat -> m ()
glFragmentLightModelfvSGIX = 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 ())
glFragmentLightModelfvSGIXFunPtr

glFragmentLightModelfvSGIXFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glFragmentLightModelfvSGIXFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
glFragmentLightModelfvSGIXFunPtr = 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 "glFragmentLightModelfvSGIX")

{-# NOINLINE glFragmentLightModelfvSGIXFunPtr #-}

-- | Usage: @'glFragmentLightModeliSGIX' pname param@
--
-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
--
-- The parameter @param@ is a @CheckedInt32@.


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

glFragmentLightModeliSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glFragmentLightModeliSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glFragmentLightModeliSGIXFunPtr = 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 "glFragmentLightModeliSGIX")

{-# NOINLINE glFragmentLightModeliSGIXFunPtr #-}

-- | Usage: @'glFragmentLightModelivSGIX' pname params@
--
-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
--
-- The parameter @params@ is a @CheckedInt32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glFragmentLightModelivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
glFragmentLightModelivSGIX :: GLenum -> Ptr GLint -> m ()
glFragmentLightModelivSGIX = 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 ())
glFragmentLightModelivSGIXFunPtr

glFragmentLightModelivSGIXFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
glFragmentLightModelivSGIXFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
glFragmentLightModelivSGIXFunPtr = 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 "glFragmentLightModelivSGIX")

{-# NOINLINE glFragmentLightModelivSGIXFunPtr #-}

-- | Usage: @'glFragmentLightfSGIX' light pname param@
--
-- The parameter @light@ is a @FragmentLightNameSGIX@.
--
-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
--
-- The parameter @param@ is a @CheckedFloat32@.


glFragmentLightfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glFragmentLightfSGIX :: GLenum -> GLenum -> GLfloat -> m ()
glFragmentLightfSGIX = FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
ffienumenumfloatIOV FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glFragmentLightfSGIXFunPtr

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

{-# NOINLINE glFragmentLightfSGIXFunPtr #-}

-- | Usage: @'glFragmentLightfvSGIX' light pname params@
--
-- The parameter @light@ is a @FragmentLightNameSGIX@.
--
-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
--
-- The parameter @params@ is a @CheckedFloat32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentLightfvSGIX :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentLightfvSGIX = 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 ())
glFragmentLightfvSGIXFunPtr

glFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glFragmentLightfvSGIXFunPtr = 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 "glFragmentLightfvSGIX")

{-# NOINLINE glFragmentLightfvSGIXFunPtr #-}

-- | Usage: @'glFragmentLightiSGIX' light pname param@
--
-- The parameter @light@ is a @FragmentLightNameSGIX@.
--
-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
--
-- The parameter @param@ is a @CheckedInt32@.


glFragmentLightiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFragmentLightiSGIX :: GLenum -> GLenum -> GLint -> m ()
glFragmentLightiSGIX = FunPtr (GLenum -> GLenum -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> m ()
ffienumenumintIOV FunPtr (GLenum -> GLenum -> GLint -> IO ())
glFragmentLightiSGIXFunPtr

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

{-# NOINLINE glFragmentLightiSGIXFunPtr #-}

-- | Usage: @'glFragmentLightivSGIX' light pname params@
--
-- The parameter @light@ is a @FragmentLightNameSGIX@.
--
-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
--
-- The parameter @params@ is a @CheckedInt32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glFragmentLightivSGIX :: GLenum -> GLenum -> Ptr GLint -> m ()
glFragmentLightivSGIX = 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 ())
glFragmentLightivSGIXFunPtr

glFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glFragmentLightivSGIXFunPtr = 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 "glFragmentLightivSGIX")

{-# NOINLINE glFragmentLightivSGIXFunPtr #-}

-- | Usage: @'glFragmentMaterialfSGIX' face pname param@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The parameter @param@ is a @CheckedFloat32@.


glFragmentMaterialfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glFragmentMaterialfSGIX :: GLenum -> GLenum -> GLfloat -> m ()
glFragmentMaterialfSGIX = FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
ffienumenumfloatIOV FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glFragmentMaterialfSGIXFunPtr

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

{-# NOINLINE glFragmentMaterialfSGIXFunPtr #-}

-- | Usage: @'glFragmentMaterialfvSGIX' face pname params@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The parameter @params@ is a @CheckedFloat32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentMaterialfvSGIX :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glFragmentMaterialfvSGIX = 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 ())
glFragmentMaterialfvSGIXFunPtr

glFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glFragmentMaterialfvSGIXFunPtr = 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 "glFragmentMaterialfvSGIX")

{-# NOINLINE glFragmentMaterialfvSGIXFunPtr #-}

-- | Usage: @'glFragmentMaterialiSGIX' face pname param@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The parameter @param@ is a @CheckedInt32@.


glFragmentMaterialiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glFragmentMaterialiSGIX :: GLenum -> GLenum -> GLint -> m ()
glFragmentMaterialiSGIX = FunPtr (GLenum -> GLenum -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> m ()
ffienumenumintIOV FunPtr (GLenum -> GLenum -> GLint -> IO ())
glFragmentMaterialiSGIXFunPtr

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

{-# NOINLINE glFragmentMaterialiSGIXFunPtr #-}

-- | Usage: @'glFragmentMaterialivSGIX' face pname params@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The parameter @params@ is a @CheckedInt32@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glFragmentMaterialivSGIX :: GLenum -> GLenum -> Ptr GLint -> m ()
glFragmentMaterialivSGIX = 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 ())
glFragmentMaterialivSGIXFunPtr

glFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glFragmentMaterialivSGIXFunPtr = 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 "glFragmentMaterialivSGIX")

{-# NOINLINE glFragmentMaterialivSGIXFunPtr #-}

-- | Usage: @'glGetFragmentLightfvSGIX' light pname params@
--
-- The parameter @light@ is a @FragmentLightNameSGIX@.
--
-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentLightfvSGIX :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentLightfvSGIX = 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 ())
glGetFragmentLightfvSGIXFunPtr

glGetFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetFragmentLightfvSGIXFunPtr = 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 "glGetFragmentLightfvSGIX")

{-# NOINLINE glGetFragmentLightfvSGIXFunPtr #-}

-- | Usage: @'glGetFragmentLightivSGIX' light pname params@
--
-- The parameter @light@ is a @FragmentLightNameSGIX@.
--
-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFragmentLightivSGIX :: GLenum -> GLenum -> Ptr GLint -> m ()
glGetFragmentLightivSGIX = 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 ())
glGetFragmentLightivSGIXFunPtr

glGetFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetFragmentLightivSGIXFunPtr = 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 "glGetFragmentLightivSGIX")

{-# NOINLINE glGetFragmentLightivSGIXFunPtr #-}

-- | Usage: @'glGetFragmentMaterialfvSGIX' face pname params@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentMaterialfvSGIX :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetFragmentMaterialfvSGIX = 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 ())
glGetFragmentMaterialfvSGIXFunPtr

glGetFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetFragmentMaterialfvSGIXFunPtr = 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 "glGetFragmentMaterialfvSGIX")

{-# NOINLINE glGetFragmentMaterialfvSGIXFunPtr #-}

-- | Usage: @'glGetFragmentMaterialivSGIX' face pname params@
--
-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
--
-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetFragmentMaterialivSGIX :: GLenum -> GLenum -> Ptr GLint -> m ()
glGetFragmentMaterialivSGIX = 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 ())
glGetFragmentMaterialivSGIXFunPtr

glGetFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetFragmentMaterialivSGIXFunPtr = 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 "glGetFragmentMaterialivSGIX")

{-# NOINLINE glGetFragmentMaterialivSGIXFunPtr #-}

-- | Usage: @'glLightEnviSGIX' pname param@
--
-- The parameter @pname@ is a @LightEnvParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX'.
--
-- The parameter @param@ is a @CheckedInt32@.


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

glLightEnviSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glLightEnviSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glLightEnviSGIXFunPtr = 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 "glLightEnviSGIX")

{-# NOINLINE glLightEnviSGIXFunPtr #-}

pattern $bGL_CURRENT_RASTER_NORMAL_SGIX :: a
$mGL_CURRENT_RASTER_NORMAL_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406

pattern $bGL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX :: a
$mGL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402

pattern $bGL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX :: a
$mGL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403

pattern $bGL_FRAGMENT_COLOR_MATERIAL_SGIX :: a
$mGL_FRAGMENT_COLOR_MATERIAL_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401

pattern $bGL_FRAGMENT_LIGHT0_SGIX :: a
$mGL_FRAGMENT_LIGHT0_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT0_SGIX = 0x840C

pattern $bGL_FRAGMENT_LIGHT1_SGIX :: a
$mGL_FRAGMENT_LIGHT1_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT1_SGIX = 0x840D

pattern $bGL_FRAGMENT_LIGHT2_SGIX :: a
$mGL_FRAGMENT_LIGHT2_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT2_SGIX = 0x840E

pattern $bGL_FRAGMENT_LIGHT3_SGIX :: a
$mGL_FRAGMENT_LIGHT3_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT3_SGIX = 0x840F

pattern $bGL_FRAGMENT_LIGHT4_SGIX :: a
$mGL_FRAGMENT_LIGHT4_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT4_SGIX = 0x8410

pattern $bGL_FRAGMENT_LIGHT5_SGIX :: a
$mGL_FRAGMENT_LIGHT5_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT5_SGIX = 0x8411

pattern $bGL_FRAGMENT_LIGHT6_SGIX :: a
$mGL_FRAGMENT_LIGHT6_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT6_SGIX = 0x8412

pattern $bGL_FRAGMENT_LIGHT7_SGIX :: a
$mGL_FRAGMENT_LIGHT7_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT7_SGIX = 0x8413

pattern $bGL_FRAGMENT_LIGHTING_SGIX :: a
$mGL_FRAGMENT_LIGHTING_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHTING_SGIX = 0x8400

pattern $bGL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX :: a
$mGL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A

pattern $bGL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX :: a
$mGL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408

pattern $bGL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX :: a
$mGL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B

pattern $bGL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX :: a
$mGL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409

pattern $bGL_LIGHT_ENV_MODE_SGIX :: a
$mGL_LIGHT_ENV_MODE_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_LIGHT_ENV_MODE_SGIX = 0x8407

pattern $bGL_MAX_ACTIVE_LIGHTS_SGIX :: a
$mGL_MAX_ACTIVE_LIGHTS_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405

pattern $bGL_MAX_FRAGMENT_LIGHTS_SGIX :: a
$mGL_MAX_FRAGMENT_LIGHTS_SGIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404