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

  -- * GL_EXT_light_texture
  , glApplyTextureEXT
  , glTextureLightEXT
  , glTextureMaterialEXT
  , pattern GL_ATTENUATION_EXT
  , pattern GL_FRAGMENT_COLOR_EXT
  , pattern GL_FRAGMENT_DEPTH_EXT
  , pattern GL_FRAGMENT_MATERIAL_EXT
  , pattern GL_FRAGMENT_NORMAL_EXT
  , pattern GL_SHADOW_ATTENUATION_EXT
  , pattern GL_TEXTURE_APPLICATION_MODE_EXT
  , pattern GL_TEXTURE_LIGHT_EXT
  , pattern GL_TEXTURE_MATERIAL_FACE_EXT
  , pattern GL_TEXTURE_MATERIAL_PARAMETER_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.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/EXT/light_texture.txt GL_EXT_light_texture> extension is available.

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

-- | Usage: @'glApplyTextureEXT' mode@
--
-- The parameter @mode@ is a @LightTextureModeEXT@.


glApplyTextureEXT :: MonadIO m => GLenum -> m ()
glApplyTextureEXT :: GLenum -> m ()
glApplyTextureEXT = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffienumIOV FunPtr (GLenum -> IO ())
glApplyTextureEXTFunPtr

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

{-# NOINLINE glApplyTextureEXTFunPtr #-}

-- | Usage: @'glTextureLightEXT' pname@
--
-- The parameter @pname@ is a @LightTexturePNameEXT@.


glTextureLightEXT :: MonadIO m => GLenum -> m ()
glTextureLightEXT :: GLenum -> m ()
glTextureLightEXT = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffienumIOV FunPtr (GLenum -> IO ())
glTextureLightEXTFunPtr

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

{-# NOINLINE glTextureLightEXTFunPtr #-}

-- | Usage: @'glTextureMaterialEXT' 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'.


glTextureMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()
glTextureMaterialEXT :: GLenum -> GLenum -> m ()
glTextureMaterialEXT = FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
ffienumenumIOV FunPtr (GLenum -> GLenum -> IO ())
glTextureMaterialEXTFunPtr

glTextureMaterialEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glTextureMaterialEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glTextureMaterialEXTFunPtr = 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 "glTextureMaterialEXT")

{-# NOINLINE glTextureMaterialEXTFunPtr #-}

pattern $bGL_ATTENUATION_EXT :: a
$mGL_ATTENUATION_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ATTENUATION_EXT = 0x834D

pattern $bGL_FRAGMENT_COLOR_EXT :: a
$mGL_FRAGMENT_COLOR_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_COLOR_EXT = 0x834C

pattern $bGL_FRAGMENT_MATERIAL_EXT :: a
$mGL_FRAGMENT_MATERIAL_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_MATERIAL_EXT = 0x8349

pattern $bGL_FRAGMENT_NORMAL_EXT :: a
$mGL_FRAGMENT_NORMAL_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FRAGMENT_NORMAL_EXT = 0x834A

pattern $bGL_SHADOW_ATTENUATION_EXT :: a
$mGL_SHADOW_ATTENUATION_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SHADOW_ATTENUATION_EXT = 0x834E

pattern $bGL_TEXTURE_APPLICATION_MODE_EXT :: a
$mGL_TEXTURE_APPLICATION_MODE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F

pattern $bGL_TEXTURE_LIGHT_EXT :: a
$mGL_TEXTURE_LIGHT_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_LIGHT_EXT = 0x8350

pattern $bGL_TEXTURE_MATERIAL_FACE_EXT :: a
$mGL_TEXTURE_MATERIAL_FACE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351

pattern $bGL_TEXTURE_MATERIAL_PARAMETER_EXT :: a
$mGL_TEXTURE_MATERIAL_PARAMETER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352