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

  -- * GL_NV_texture_multisample
  , glTexImage2DMultisampleCoverageNV
  , glTexImage3DMultisampleCoverageNV
  , glTextureImage2DMultisampleCoverageNV
  , glTextureImage2DMultisampleNV
  , glTextureImage3DMultisampleCoverageNV
  , glTextureImage3DMultisampleNV
  , pattern GL_TEXTURE_COLOR_SAMPLES_NV
  , pattern GL_TEXTURE_COVERAGE_SAMPLES_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/texture_multisample.txt GL_NV_texture_multisample> extension is available.

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

-- | Usage: @'glTexImage2DMultisampleCoverageNV' target coverageSamples colorSamples internalFormat width height fixedSampleLocations@
--
-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.


glTexImage2DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage2DMultisampleCoverageNV :: GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
glTexImage2DMultisampleCoverageNV = FunPtr
  (GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
ffienumsizeisizeiintsizeisizeibooleanIOV FunPtr
  (GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTexImage2DMultisampleCoverageNVFunPtr

glTexImage2DMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTexImage2DMultisampleCoverageNVFunPtr :: FunPtr
  (GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTexImage2DMultisampleCoverageNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLboolean
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexImage2DMultisampleCoverageNV")

{-# NOINLINE glTexImage2DMultisampleCoverageNVFunPtr #-}

-- | Usage: @'glTexImage3DMultisampleCoverageNV' target coverageSamples colorSamples internalFormat width height depth fixedSampleLocations@
--
-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.


glTexImage3DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage3DMultisampleCoverageNV :: GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
glTexImage3DMultisampleCoverageNV = FunPtr
  (GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
ffienumsizeisizeiintsizeisizeisizeibooleanIOV FunPtr
  (GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTexImage3DMultisampleCoverageNVFunPtr

glTexImage3DMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTexImage3DMultisampleCoverageNVFunPtr :: FunPtr
  (GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTexImage3DMultisampleCoverageNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLboolean
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTexImage3DMultisampleCoverageNV")

{-# NOINLINE glTexImage3DMultisampleCoverageNVFunPtr #-}

-- | Usage: @'glTextureImage2DMultisampleCoverageNV' texture target coverageSamples colorSamples internalFormat width height fixedSampleLocations@
--
-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.


glTextureImage2DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage2DMultisampleCoverageNV :: GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
glTextureImage2DMultisampleCoverageNV = FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
ffiuintenumsizeisizeiintsizeisizeibooleanIOV FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTextureImage2DMultisampleCoverageNVFunPtr

glTextureImage2DMultisampleCoverageNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTextureImage2DMultisampleCoverageNVFunPtr :: FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTextureImage2DMultisampleCoverageNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLboolean
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTextureImage2DMultisampleCoverageNV")

{-# NOINLINE glTextureImage2DMultisampleCoverageNVFunPtr #-}

-- | Usage: @'glTextureImage2DMultisampleNV' texture target samples internalFormat width height fixedSampleLocations@
--
-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.


glTextureImage2DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage2DMultisampleNV :: GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
glTextureImage2DMultisampleNV = FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
ffiuintenumsizeiintsizeisizeibooleanIOV FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTextureImage2DMultisampleNVFunPtr

glTextureImage2DMultisampleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTextureImage2DMultisampleNVFunPtr :: FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTextureImage2DMultisampleNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLboolean
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTextureImage2DMultisampleNV")

{-# NOINLINE glTextureImage2DMultisampleNVFunPtr #-}

-- | Usage: @'glTextureImage3DMultisampleCoverageNV' texture target coverageSamples colorSamples internalFormat width height depth fixedSampleLocations@
--
-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.


glTextureImage3DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage3DMultisampleCoverageNV :: GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
glTextureImage3DMultisampleCoverageNV = FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTextureImage3DMultisampleCoverageNVFunPtr

glTextureImage3DMultisampleCoverageNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTextureImage3DMultisampleCoverageNVFunPtr :: FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTextureImage3DMultisampleCoverageNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLboolean
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTextureImage3DMultisampleCoverageNV")

{-# NOINLINE glTextureImage3DMultisampleCoverageNVFunPtr #-}

-- | Usage: @'glTextureImage3DMultisampleNV' texture target samples internalFormat width height depth fixedSampleLocations@
--
-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.


glTextureImage3DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage3DMultisampleNV :: GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
glTextureImage3DMultisampleNV = FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
-> GLenum
-> GLenum
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLsizei
-> GLboolean
-> m ()
ffiuintenumsizeiintsizeisizeisizeibooleanIOV FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTextureImage3DMultisampleNVFunPtr

glTextureImage3DMultisampleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTextureImage3DMultisampleNVFunPtr :: FunPtr
  (GLenum
   -> GLenum
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLsizei
   -> GLboolean
   -> IO ())
glTextureImage3DMultisampleNVFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLenum
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLsizei
      -> GLboolean
      -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLsizei
         -> GLboolean
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glTextureImage3DMultisampleNV")

{-# NOINLINE glTextureImage3DMultisampleNVFunPtr #-}

pattern $bGL_TEXTURE_COLOR_SAMPLES_NV :: a
$mGL_TEXTURE_COLOR_SAMPLES_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_COLOR_SAMPLES_NV = 0x9046

pattern $bGL_TEXTURE_COVERAGE_SAMPLES_NV :: a
$mGL_TEXTURE_COVERAGE_SAMPLES_NV :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045