-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.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.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/fog_coord.txt GL_EXT_fog_coord> extension is available.

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

-- | Usage: @'glFogCoordPointerEXT' type stride pointer@
--
-- The parameter @type@ is a @FogPointerTypeEXT@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
--
-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordPointer'.


glFogCoordPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glFogCoordPointerEXT :: GLenum -> GLsizei -> Ptr () -> m ()
glFogCoordPointerEXT = FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
ffienumsizeiPtrVIOV FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glFogCoordPointerEXTFunPtr

glFogCoordPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glFogCoordPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glFogCoordPointerEXTFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFogCoordPointerEXT")

{-# NOINLINE glFogCoordPointerEXTFunPtr #-}

-- | Usage: @'glFogCoorddEXT' coord@
--
-- The parameter @coord@ is a @CoordD@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordd'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.FogCoord.glFogCoorddvEXT'.


glFogCoorddEXT :: MonadIO m => GLdouble -> m ()
glFogCoorddEXT :: GLdouble -> m ()
glFogCoorddEXT = FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
ffidoubleIOV FunPtr (GLdouble -> IO ())
glFogCoorddEXTFunPtr

glFogCoorddEXTFunPtr :: FunPtr (GLdouble -> IO ())
glFogCoorddEXTFunPtr :: FunPtr (GLdouble -> IO ())
glFogCoorddEXTFunPtr = IO (FunPtr (GLdouble -> IO ())) -> FunPtr (GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLdouble -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFogCoorddEXT")

{-# NOINLINE glFogCoorddEXTFunPtr #-}

-- | Usage: @'glFogCoorddvEXT' coord@
--
-- The parameter @coord@ is a @CoordD@.
--
-- The length of @coord@ should be @1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoorddv'.


glFogCoorddvEXT :: MonadIO m => Ptr GLdouble -> m ()
glFogCoorddvEXT :: Ptr GLdouble -> m ()
glFogCoorddvEXT = FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
ffiPtrdoubleIOV FunPtr (Ptr GLdouble -> IO ())
glFogCoorddvEXTFunPtr

glFogCoorddvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glFogCoorddvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
glFogCoorddvEXTFunPtr = IO (FunPtr (Ptr GLdouble -> IO ()))
-> FunPtr (Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLdouble -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFogCoorddvEXT")

{-# NOINLINE glFogCoorddvEXTFunPtr #-}

-- | Usage: @'glFogCoordfEXT' coord@
--
-- The parameter @coord@ is a @CoordF@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordf'.
--
-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.FogCoord.glFogCoordfvEXT'.


glFogCoordfEXT :: MonadIO m => GLfloat -> m ()
glFogCoordfEXT :: GLfloat -> m ()
glFogCoordfEXT = FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
ffifloatIOV FunPtr (GLfloat -> IO ())
glFogCoordfEXTFunPtr

glFogCoordfEXTFunPtr :: FunPtr (GLfloat -> IO ())
glFogCoordfEXTFunPtr :: FunPtr (GLfloat -> IO ())
glFogCoordfEXTFunPtr = IO (FunPtr (GLfloat -> IO ())) -> FunPtr (GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFogCoordfEXT")

{-# NOINLINE glFogCoordfEXTFunPtr #-}

-- | Usage: @'glFogCoordfvEXT' coord@
--
-- The parameter @coord@ is a @CoordF@.
--
-- The length of @coord@ should be @1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordfv'.


glFogCoordfvEXT :: MonadIO m => Ptr GLfloat -> m ()
glFogCoordfvEXT :: Ptr GLfloat -> m ()
glFogCoordfvEXT = FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
ffiPtrfloatIOV FunPtr (Ptr GLfloat -> IO ())
glFogCoordfvEXTFunPtr

glFogCoordfvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glFogCoordfvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
glFogCoordfvEXTFunPtr = IO (FunPtr (Ptr GLfloat -> IO ())) -> FunPtr (Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFogCoordfvEXT")

{-# NOINLINE glFogCoordfvEXTFunPtr #-}

pattern $bGL_CURRENT_FOG_COORDINATE_EXT :: a
$mGL_CURRENT_FOG_COORDINATE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CURRENT_FOG_COORDINATE_EXT = 0x8453

pattern $bGL_FOG_COORDINATE_ARRAY_EXT :: a
$mGL_FOG_COORDINATE_ARRAY_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FOG_COORDINATE_ARRAY_EXT = 0x8457

pattern $bGL_FOG_COORDINATE_ARRAY_POINTER_EXT :: a
$mGL_FOG_COORDINATE_ARRAY_POINTER_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456

pattern $bGL_FOG_COORDINATE_ARRAY_STRIDE_EXT :: a
$mGL_FOG_COORDINATE_ARRAY_STRIDE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455

pattern $bGL_FOG_COORDINATE_ARRAY_TYPE_EXT :: a
$mGL_FOG_COORDINATE_ARRAY_TYPE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454

pattern $bGL_FOG_COORDINATE_EXT :: a
$mGL_FOG_COORDINATE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FOG_COORDINATE_EXT = 0x8451

pattern $bGL_FOG_COORDINATE_SOURCE_EXT :: a
$mGL_FOG_COORDINATE_SOURCE_EXT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_FOG_COORDINATE_SOURCE_EXT = 0x8450