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

gl_NV_texture_multisample :: Bool
gl_NV_texture_multisample = member "GL_NV_texture_multisample" extensions

glTexImage2DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage2DMultisampleCoverageNV = ffienumsizeisizeiintsizeisizeibooleanIOV glTexImage2DMultisampleCoverageNVFunPtr

glTexImage2DMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTexImage2DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisampleCoverageNV")

{-# NOINLINE glTexImage2DMultisampleCoverageNVFunPtr #-}

glTexImage3DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTexImage3DMultisampleCoverageNV = ffienumsizeisizeiintsizeisizeisizeibooleanIOV glTexImage3DMultisampleCoverageNVFunPtr

glTexImage3DMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTexImage3DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisampleCoverageNV")

{-# NOINLINE glTexImage3DMultisampleCoverageNVFunPtr #-}

glTextureImage2DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage2DMultisampleCoverageNV = ffiuintenumsizeisizeiintsizeisizeibooleanIOV glTextureImage2DMultisampleCoverageNVFunPtr

glTextureImage2DMultisampleCoverageNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTextureImage2DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DMultisampleCoverageNV")

{-# NOINLINE glTextureImage2DMultisampleCoverageNVFunPtr #-}

glTextureImage2DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage2DMultisampleNV = ffiuintenumsizeiintsizeisizeibooleanIOV glTextureImage2DMultisampleNVFunPtr

glTextureImage2DMultisampleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTextureImage2DMultisampleNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DMultisampleNV")

{-# NOINLINE glTextureImage2DMultisampleNVFunPtr #-}

glTextureImage3DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage3DMultisampleCoverageNV = ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV glTextureImage3DMultisampleCoverageNVFunPtr

glTextureImage3DMultisampleCoverageNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTextureImage3DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DMultisampleCoverageNV")

{-# NOINLINE glTextureImage3DMultisampleCoverageNVFunPtr #-}

glTextureImage3DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
glTextureImage3DMultisampleNV = ffiuintenumsizeiintsizeisizeisizeibooleanIOV glTextureImage3DMultisampleNVFunPtr

glTextureImage3DMultisampleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
glTextureImage3DMultisampleNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DMultisampleNV")

{-# NOINLINE glTextureImage3DMultisampleNVFunPtr #-}

pattern GL_TEXTURE_COLOR_SAMPLES_NV = 0x9046 :: GLenum

pattern GL_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045 :: GLenum