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

gl_EXT_light_texture :: Bool
gl_EXT_light_texture = member "GL_EXT_light_texture" extensions

glApplyTextureEXT :: MonadIO m => GLenum -> m ()
glApplyTextureEXT = ffienumIOV glApplyTextureEXTFunPtr

glApplyTextureEXTFunPtr :: FunPtr (GLenum -> IO ())
glApplyTextureEXTFunPtr = unsafePerformIO (getProcAddress "glApplyTextureEXT")

{-# NOINLINE glApplyTextureEXTFunPtr #-}

glTextureLightEXT :: MonadIO m => GLenum -> m ()
glTextureLightEXT = ffienumIOV glTextureLightEXTFunPtr

glTextureLightEXTFunPtr :: FunPtr (GLenum -> IO ())
glTextureLightEXTFunPtr = unsafePerformIO (getProcAddress "glTextureLightEXT")

{-# NOINLINE glTextureLightEXTFunPtr #-}

glTextureMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()
glTextureMaterialEXT = ffienumenumIOV glTextureMaterialEXTFunPtr

glTextureMaterialEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glTextureMaterialEXTFunPtr = unsafePerformIO (getProcAddress "glTextureMaterialEXT")

{-# NOINLINE glTextureMaterialEXTFunPtr #-}

pattern GL_ATTENUATION_EXT = 0x834D :: GLenum

pattern GL_FRAGMENT_COLOR_EXT = 0x834C :: GLenum

pattern GL_FRAGMENT_MATERIAL_EXT = 0x8349 :: GLenum

pattern GL_FRAGMENT_NORMAL_EXT = 0x834A :: GLenum

pattern GL_SHADOW_ATTENUATION_EXT = 0x834E :: GLenum

pattern GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F :: GLenum

pattern GL_TEXTURE_LIGHT_EXT = 0x8350 :: GLenum

pattern GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351 :: GLenum

pattern GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352 :: GLenum