-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.NV.ExplicitMultisample (
  -- * Extension Support
    gl_NV_explicit_multisample

  -- * GL_NV_explicit_multisample
  , glGetMultisamplefvNV
  , glSampleMaskIndexedNV
  , glTexRenderbufferNV
  , pattern GL_INT_SAMPLER_RENDERBUFFER_NV
  , pattern GL_MAX_SAMPLE_MASK_WORDS_NV
  , pattern GL_SAMPLER_RENDERBUFFER_NV
  , pattern GL_SAMPLE_MASK_NV
  , pattern GL_SAMPLE_MASK_VALUE_NV
  , pattern GL_SAMPLE_POSITION_NV
  , pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV
  , pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV
  , pattern GL_TEXTURE_RENDERBUFFER_NV
  , pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_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_explicit_multisample :: Bool
gl_NV_explicit_multisample = member "GL_NV_explicit_multisample" extensions

glGetMultisamplefvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
glGetMultisamplefvNV = ffienumuintPtrfloatIOV glGetMultisamplefvNVFunPtr

glGetMultisamplefvNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
glGetMultisamplefvNVFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefvNV")

{-# NOINLINE glGetMultisamplefvNVFunPtr #-}

glSampleMaskIndexedNV :: MonadIO m => GLuint -> GLbitfield -> m ()
glSampleMaskIndexedNV = ffiuintbitfieldIOV glSampleMaskIndexedNVFunPtr

glSampleMaskIndexedNVFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
glSampleMaskIndexedNVFunPtr = unsafePerformIO (getProcAddress "glSampleMaskIndexedNV")

{-# NOINLINE glSampleMaskIndexedNVFunPtr #-}

glTexRenderbufferNV :: MonadIO m => GLenum -> GLuint -> m ()
glTexRenderbufferNV = ffienumuintIOV glTexRenderbufferNVFunPtr

glTexRenderbufferNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
glTexRenderbufferNVFunPtr = unsafePerformIO (getProcAddress "glTexRenderbufferNV")

{-# NOINLINE glTexRenderbufferNVFunPtr #-}

pattern GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57 :: GLenum

pattern GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59 :: GLenum

pattern GL_SAMPLER_RENDERBUFFER_NV = 0x8E56 :: GLenum

pattern GL_SAMPLE_MASK_NV = 0x8E51 :: GLenum

pattern GL_SAMPLE_MASK_VALUE_NV = 0x8E52 :: GLenum

pattern GL_SAMPLE_POSITION_NV = 0x8E50 :: GLenum

pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53 :: GLenum

pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54 :: GLenum

pattern GL_TEXTURE_RENDERBUFFER_NV = 0x8E55 :: GLenum

pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58 :: GLenum