-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.EXT.FogCoord (
  -- * Extension Support
    gl_EXT_fog_coord

  -- * GL_EXT_fog_coord
  , glFogCoordPointerEXT
  , glFogCoorddEXT
  , glFogCoorddvEXT
  , glFogCoordfEXT
  , glFogCoordfvEXT
  , pattern GL_CURRENT_FOG_COORDINATE_EXT
  , pattern GL_FOG_COORDINATE_ARRAY_EXT
  , pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT
  , pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
  , pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT
  , pattern GL_FOG_COORDINATE_EXT
  , pattern GL_FOG_COORDINATE_SOURCE_EXT
  , pattern GL_FRAGMENT_DEPTH_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_fog_coord :: Bool
gl_EXT_fog_coord = member "GL_EXT_fog_coord" extensions

glFogCoordPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glFogCoordPointerEXT = ffienumsizeiPtrVIOV glFogCoordPointerEXTFunPtr

glFogCoordPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glFogCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointerEXT")

{-# NOINLINE glFogCoordPointerEXTFunPtr #-}

glFogCoorddEXT :: MonadIO m => GLdouble -> m ()
glFogCoorddEXT = ffidoubleIOV glFogCoorddEXTFunPtr

glFogCoorddEXTFunPtr :: FunPtr (GLdouble -> IO ())
glFogCoorddEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoorddEXT")

{-# NOINLINE glFogCoorddEXTFunPtr #-}

glFogCoorddvEXT :: MonadIO m => Ptr GLdouble -> m ()
glFogCoorddvEXT = ffiPtrdoubleIOV glFogCoorddvEXTFunPtr

glFogCoorddvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glFogCoorddvEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoorddvEXT")

{-# NOINLINE glFogCoorddvEXTFunPtr #-}

glFogCoordfEXT :: MonadIO m => GLfloat -> m ()
glFogCoordfEXT = ffifloatIOV glFogCoordfEXTFunPtr

glFogCoordfEXTFunPtr :: FunPtr (GLfloat -> IO ())
glFogCoordfEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordfEXT")

{-# NOINLINE glFogCoordfEXTFunPtr #-}

glFogCoordfvEXT :: MonadIO m => Ptr GLfloat -> m ()
glFogCoordfvEXT = ffiPtrfloatIOV glFogCoordfvEXTFunPtr

glFogCoordfvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glFogCoordfvEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordfvEXT")

{-# NOINLINE glFogCoordfvEXTFunPtr #-}

pattern GL_CURRENT_FOG_COORDINATE_EXT = 0x8453

pattern GL_FOG_COORDINATE_ARRAY_EXT = 0x8457

pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456

pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455

pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454

pattern GL_FOG_COORDINATE_EXT = 0x8451

pattern GL_FOG_COORDINATE_SOURCE_EXT = 0x8450