-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.NV.DepthBufferFloat (
  -- * Extension Support
    gl_NV_depth_buffer_float

  -- * GL_NV_depth_buffer_float
  , glClearDepthdNV
  , glDepthBoundsdNV
  , glDepthRangedNV
  , pattern GL_DEPTH32F_STENCIL8_NV
  , pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV
  , pattern GL_DEPTH_COMPONENT32F_NV
  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV
) 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 <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/depth_buffer_float.txt GL_NV_depth_buffer_float> extension is available.

gl_NV_depth_buffer_float :: Bool
gl_NV_depth_buffer_float :: Bool
gl_NV_depth_buffer_float = String -> Set String -> Bool
forall a. Ord a => a -> Set a -> Bool
member String
"GL_NV_depth_buffer_float" Set String
extensions
{-# NOINLINE gl_NV_depth_buffer_float #-}

-- | Usage: @'glClearDepthdNV' depth@


glClearDepthdNV :: MonadIO m => GLdouble -> m ()
glClearDepthdNV :: forall (m :: * -> *). MonadIO m => GLdouble -> m ()
glClearDepthdNV = FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
ffidoubleIOV FunPtr (GLdouble -> IO ())
glClearDepthdNVFunPtr

glClearDepthdNVFunPtr :: FunPtr (GLdouble -> IO ())
glClearDepthdNVFunPtr :: FunPtr (GLdouble -> IO ())
glClearDepthdNVFunPtr = IO (FunPtr (GLdouble -> IO ())) -> FunPtr (GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glClearDepthdNV")

{-# NOINLINE glClearDepthdNVFunPtr #-}

-- | Usage: @'glDepthBoundsdNV' zmin zmax@


glDepthBoundsdNV :: MonadIO m => GLdouble -> GLdouble -> m ()
glDepthBoundsdNV :: forall (m :: * -> *). MonadIO m => GLdouble -> GLdouble -> m ()
glDepthBoundsdNV = FunPtr (GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> m ()
ffidoubledoubleIOV FunPtr (GLdouble -> GLdouble -> IO ())
glDepthBoundsdNVFunPtr

glDepthBoundsdNVFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
glDepthBoundsdNVFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
glDepthBoundsdNVFunPtr = IO (FunPtr (GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glDepthBoundsdNV")

{-# NOINLINE glDepthBoundsdNVFunPtr #-}

-- | Usage: @'glDepthRangedNV' zNear zFar@


glDepthRangedNV :: MonadIO m => GLdouble -> GLdouble -> m ()
glDepthRangedNV :: forall (m :: * -> *). MonadIO m => GLdouble -> GLdouble -> m ()
glDepthRangedNV = FunPtr (GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> GLdouble -> IO ())
-> GLdouble -> GLdouble -> m ()
ffidoubledoubleIOV FunPtr (GLdouble -> GLdouble -> IO ())
glDepthRangedNVFunPtr

glDepthRangedNVFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
glDepthRangedNVFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
glDepthRangedNVFunPtr = IO (FunPtr (GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glDepthRangedNV")

{-# NOINLINE glDepthRangedNVFunPtr #-}

pattern GL_DEPTH32F_STENCIL8_NV  :: (Eq a, Num a) => a

pattern $mGL_DEPTH32F_STENCIL8_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DEPTH32F_STENCIL8_NV :: forall a. (Eq a, Num a) => a
GL_DEPTH32F_STENCIL8_NV = 0x8DAC

pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV  :: (Eq a, Num a) => a

pattern $mGL_DEPTH_BUFFER_FLOAT_MODE_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DEPTH_BUFFER_FLOAT_MODE_NV :: forall a. (Eq a, Num a) => a
GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF

pattern GL_DEPTH_COMPONENT32F_NV  :: (Eq a, Num a) => a

pattern $mGL_DEPTH_COMPONENT32F_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DEPTH_COMPONENT32F_NV :: forall a. (Eq a, Num a) => a
GL_DEPTH_COMPONENT32F_NV = 0x8DAB

pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV  :: (Eq a, Num a) => a

pattern $mGL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV :: forall a. (Eq a, Num a) => a
GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD