-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.AMD.NameGenDelete (
  -- * Extension Support
    gl_AMD_name_gen_delete

  -- * GL_AMD_name_gen_delete
  , glDeleteNamesAMD
  , glGenNamesAMD
  , glIsNameAMD
  , pattern GL_DATA_BUFFER_AMD
  , pattern GL_PERFORMANCE_MONITOR_AMD
  , pattern GL_QUERY_OBJECT_AMD
  , pattern GL_SAMPLER_OBJECT_AMD
  , pattern GL_VERTEX_ARRAY_OBJECT_AMD
) 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_AMD_name_gen_delete :: Bool
gl_AMD_name_gen_delete = member "GL_AMD_name_gen_delete" extensions

glDeleteNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glDeleteNamesAMD = ffienumuintPtruintIOV glDeleteNamesAMDFunPtr

glDeleteNamesAMDFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
glDeleteNamesAMDFunPtr = unsafePerformIO (getProcAddress "glDeleteNamesAMD")

{-# NOINLINE glDeleteNamesAMDFunPtr #-}

glGenNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
glGenNamesAMD = ffienumuintPtruintIOV glGenNamesAMDFunPtr

glGenNamesAMDFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
glGenNamesAMDFunPtr = unsafePerformIO (getProcAddress "glGenNamesAMD")

{-# NOINLINE glGenNamesAMDFunPtr #-}

glIsNameAMD :: MonadIO m => GLenum -> GLuint -> m GLboolean
glIsNameAMD = ffienumuintIOboolean glIsNameAMDFunPtr

glIsNameAMDFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
glIsNameAMDFunPtr = unsafePerformIO (getProcAddress "glIsNameAMD")

{-# NOINLINE glIsNameAMDFunPtr #-}

pattern GL_DATA_BUFFER_AMD = 0x9151 :: GLenum

pattern GL_PERFORMANCE_MONITOR_AMD = 0x9152 :: GLenum

pattern GL_QUERY_OBJECT_AMD = 0x9153 :: GLenum

pattern GL_SAMPLER_OBJECT_AMD = 0x9155 :: GLenum

pattern GL_VERTEX_ARRAY_OBJECT_AMD = 0x9154 :: GLenum