-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.ARB.Robustness (
  -- * Extension Support
    gl_ARB_robustness

  -- * GL_ARB_robustness
  , glGetGraphicsResetStatusARB
  , glGetnColorTableARB
  , glGetnCompressedTexImageARB
  , glGetnConvolutionFilterARB
  , glGetnHistogramARB
  , glGetnMapdvARB
  , glGetnMapfvARB
  , glGetnMapivARB
  , glGetnMinmaxARB
  , glGetnPixelMapfvARB
  , glGetnPixelMapuivARB
  , glGetnPixelMapusvARB
  , glGetnPolygonStippleARB
  , glGetnSeparableFilterARB
  , glGetnTexImageARB
  , glGetnUniformdvARB
  , glGetnUniformfvARB
  , glGetnUniformivARB
  , glGetnUniformuivARB
  , glReadnPixelsARB
  , pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB
  , pattern GL_GUILTY_CONTEXT_RESET_ARB
  , pattern GL_INNOCENT_CONTEXT_RESET_ARB
  , pattern GL_LOSE_CONTEXT_ON_RESET_ARB
  , pattern GL_NO_ERROR
  , pattern GL_NO_RESET_NOTIFICATION_ARB
  , pattern GL_RESET_NOTIFICATION_STRATEGY_ARB
  , pattern GL_UNKNOWN_CONTEXT_RESET_ARB
) 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.Internal.Shared
import Graphics.GL.Raw.Types
import System.IO.Unsafe

gl_ARB_robustness :: Bool
gl_ARB_robustness = member "GL_ARB_robustness" extensions

glGetGraphicsResetStatusARB :: MonadIO m => m GLenum
glGetGraphicsResetStatusARB = ffiIOenum glGetGraphicsResetStatusARBFunPtr

glGetGraphicsResetStatusARBFunPtr :: FunPtr (IO GLenum)
glGetGraphicsResetStatusARBFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatusARB")

{-# NOINLINE glGetGraphicsResetStatusARBFunPtr #-}

glGetnColorTableARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnColorTableARB = ffienumenumenumsizeiPtrVIOV glGetnColorTableARBFunPtr

glGetnColorTableARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnColorTableARBFunPtr = unsafePerformIO (getProcAddress "glGetnColorTableARB")

{-# NOINLINE glGetnColorTableARBFunPtr #-}

glGetnCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr () -> m ()
glGetnCompressedTexImageARB = ffienumintsizeiPtrVIOV glGetnCompressedTexImageARBFunPtr

glGetnCompressedTexImageARBFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ())
glGetnCompressedTexImageARBFunPtr = unsafePerformIO (getProcAddress "glGetnCompressedTexImageARB")

{-# NOINLINE glGetnCompressedTexImageARBFunPtr #-}

glGetnConvolutionFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnConvolutionFilterARB = ffienumenumenumsizeiPtrVIOV glGetnConvolutionFilterARBFunPtr

glGetnConvolutionFilterARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnConvolutionFilterARBFunPtr = unsafePerformIO (getProcAddress "glGetnConvolutionFilterARB")

{-# NOINLINE glGetnConvolutionFilterARBFunPtr #-}

glGetnHistogramARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnHistogramARB = ffienumbooleanenumenumsizeiPtrVIOV glGetnHistogramARBFunPtr

glGetnHistogramARBFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnHistogramARBFunPtr = unsafePerformIO (getProcAddress "glGetnHistogramARB")

{-# NOINLINE glGetnHistogramARBFunPtr #-}

glGetnMapdvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
glGetnMapdvARB = ffienumenumsizeiPtrdoubleIOV glGetnMapdvARBFunPtr

glGetnMapdvARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
glGetnMapdvARBFunPtr = unsafePerformIO (getProcAddress "glGetnMapdvARB")

{-# NOINLINE glGetnMapdvARBFunPtr #-}

glGetnMapfvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnMapfvARB = ffienumenumsizeiPtrfloatIOV glGetnMapfvARBFunPtr

glGetnMapfvARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
glGetnMapfvARBFunPtr = unsafePerformIO (getProcAddress "glGetnMapfvARB")

{-# NOINLINE glGetnMapfvARBFunPtr #-}

glGetnMapivARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
glGetnMapivARB = ffienumenumsizeiPtrintIOV glGetnMapivARBFunPtr

glGetnMapivARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
glGetnMapivARBFunPtr = unsafePerformIO (getProcAddress "glGetnMapivARB")

{-# NOINLINE glGetnMapivARBFunPtr #-}

glGetnMinmaxARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnMinmaxARB = ffienumbooleanenumenumsizeiPtrVIOV glGetnMinmaxARBFunPtr

glGetnMinmaxARBFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnMinmaxARBFunPtr = unsafePerformIO (getProcAddress "glGetnMinmaxARB")

{-# NOINLINE glGetnMinmaxARBFunPtr #-}

glGetnPixelMapfvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnPixelMapfvARB = ffienumsizeiPtrfloatIOV glGetnPixelMapfvARBFunPtr

glGetnPixelMapfvARBFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
glGetnPixelMapfvARBFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapfvARB")

{-# NOINLINE glGetnPixelMapfvARBFunPtr #-}

glGetnPixelMapuivARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glGetnPixelMapuivARB = ffienumsizeiPtruintIOV glGetnPixelMapuivARBFunPtr

glGetnPixelMapuivARBFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
glGetnPixelMapuivARBFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapuivARB")

{-# NOINLINE glGetnPixelMapuivARBFunPtr #-}

glGetnPixelMapusvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
glGetnPixelMapusvARB = ffienumsizeiPtrushortIOV glGetnPixelMapusvARBFunPtr

glGetnPixelMapusvARBFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
glGetnPixelMapusvARBFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapusvARB")

{-# NOINLINE glGetnPixelMapusvARBFunPtr #-}

glGetnPolygonStippleARB :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
glGetnPolygonStippleARB = ffisizeiPtrubyteIOV glGetnPolygonStippleARBFunPtr

glGetnPolygonStippleARBFunPtr :: FunPtr (GLsizei -> Ptr GLubyte -> IO ())
glGetnPolygonStippleARBFunPtr = unsafePerformIO (getProcAddress "glGetnPolygonStippleARB")

{-# NOINLINE glGetnPolygonStippleARBFunPtr #-}

glGetnSeparableFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()
glGetnSeparableFilterARB = ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV glGetnSeparableFilterARBFunPtr

glGetnSeparableFilterARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ())
glGetnSeparableFilterARBFunPtr = unsafePerformIO (getProcAddress "glGetnSeparableFilterARB")

{-# NOINLINE glGetnSeparableFilterARBFunPtr #-}

glGetnTexImageARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnTexImageARB = ffienumintenumenumsizeiPtrVIOV glGetnTexImageARBFunPtr

glGetnTexImageARBFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnTexImageARBFunPtr = unsafePerformIO (getProcAddress "glGetnTexImageARB")

{-# NOINLINE glGetnTexImageARBFunPtr #-}

glGetnUniformdvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
glGetnUniformdvARB = ffiuintintsizeiPtrdoubleIOV glGetnUniformdvARBFunPtr

glGetnUniformdvARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
glGetnUniformdvARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformdvARB")

{-# NOINLINE glGetnUniformdvARBFunPtr #-}

glGetnUniformfvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glGetnUniformfvARB = ffiuintintsizeiPtrfloatIOV glGetnUniformfvARBFunPtr

glGetnUniformfvARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
glGetnUniformfvARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfvARB")

{-# NOINLINE glGetnUniformfvARBFunPtr #-}

glGetnUniformivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glGetnUniformivARB = ffiuintintsizeiPtrintIOV glGetnUniformivARBFunPtr

glGetnUniformivARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
glGetnUniformivARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformivARB")

{-# NOINLINE glGetnUniformivARBFunPtr #-}

glGetnUniformuivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glGetnUniformuivARB = ffiuintintsizeiPtruintIOV glGetnUniformuivARBFunPtr

glGetnUniformuivARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
glGetnUniformuivARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuivARB")

{-# NOINLINE glGetnUniformuivARBFunPtr #-}

glReadnPixelsARB :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glReadnPixelsARB = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsARBFunPtr

glReadnPixelsARBFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glReadnPixelsARBFunPtr = unsafePerformIO (getProcAddress "glReadnPixelsARB")

{-# NOINLINE glReadnPixelsARBFunPtr #-}

pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004 :: GLenum

pattern GL_GUILTY_CONTEXT_RESET_ARB = 0x8253 :: GLenum

pattern GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254 :: GLenum

pattern GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252 :: GLenum

pattern GL_NO_RESET_NOTIFICATION_ARB = 0x8261 :: GLenum

pattern GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256 :: GLenum

pattern GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255 :: GLenum