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

  -- * GL_KHR_robustness
  , glGetGraphicsResetStatus
  , glGetGraphicsResetStatusKHR
  , glGetnUniformfv
  , glGetnUniformfvKHR
  , glGetnUniformiv
  , glGetnUniformivKHR
  , glGetnUniformuiv
  , glGetnUniformuivKHR
  , glReadnPixels
  , glReadnPixelsKHR
  , pattern GL_CONTEXT_LOST
  , pattern GL_CONTEXT_LOST_KHR
  , pattern GL_CONTEXT_ROBUST_ACCESS
  , pattern GL_CONTEXT_ROBUST_ACCESS_KHR
  , pattern GL_GUILTY_CONTEXT_RESET
  , pattern GL_GUILTY_CONTEXT_RESET_KHR
  , pattern GL_INNOCENT_CONTEXT_RESET
  , pattern GL_INNOCENT_CONTEXT_RESET_KHR
  , pattern GL_LOSE_CONTEXT_ON_RESET
  , pattern GL_LOSE_CONTEXT_ON_RESET_KHR
  , pattern GL_NO_ERROR
  , pattern GL_NO_RESET_NOTIFICATION
  , pattern GL_NO_RESET_NOTIFICATION_KHR
  , pattern GL_RESET_NOTIFICATION_STRATEGY
  , pattern GL_RESET_NOTIFICATION_STRATEGY_KHR
  , pattern GL_UNKNOWN_CONTEXT_RESET
  , pattern GL_UNKNOWN_CONTEXT_RESET_KHR
) 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_KHR_robustness :: Bool
gl_KHR_robustness = member "GL_KHR_robustness" extensions

glGetGraphicsResetStatusKHR :: MonadIO m => m GLenum
glGetGraphicsResetStatusKHR = ffiIOenum glGetGraphicsResetStatusKHRFunPtr

glGetGraphicsResetStatusKHRFunPtr :: FunPtr (IO GLenum)
glGetGraphicsResetStatusKHRFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatusKHR")

{-# NOINLINE glGetGraphicsResetStatusKHRFunPtr #-}

glGetnUniformfvKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
glGetnUniformfvKHR = ffiuintintsizeiPtrfloatIOV glGetnUniformfvKHRFunPtr

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

{-# NOINLINE glGetnUniformfvKHRFunPtr #-}

glGetnUniformivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
glGetnUniformivKHR = ffiuintintsizeiPtrintIOV glGetnUniformivKHRFunPtr

glGetnUniformivKHRFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
glGetnUniformivKHRFunPtr = unsafePerformIO (getProcAddress "glGetnUniformivKHR")

{-# NOINLINE glGetnUniformivKHRFunPtr #-}

glGetnUniformuivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
glGetnUniformuivKHR = ffiuintintsizeiPtruintIOV glGetnUniformuivKHRFunPtr

glGetnUniformuivKHRFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
glGetnUniformuivKHRFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuivKHR")

{-# NOINLINE glGetnUniformuivKHRFunPtr #-}

glReadnPixelsKHR :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glReadnPixelsKHR = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsKHRFunPtr

glReadnPixelsKHRFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glReadnPixelsKHRFunPtr = unsafePerformIO (getProcAddress "glReadnPixelsKHR")

{-# NOINLINE glReadnPixelsKHRFunPtr #-}

pattern GL_CONTEXT_LOST_KHR = 0x0507 :: GLenum

pattern GL_CONTEXT_ROBUST_ACCESS = 0x90F3 :: GLenum

pattern GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3 :: GLenum

pattern GL_GUILTY_CONTEXT_RESET_KHR = 0x8253 :: GLenum

pattern GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254 :: GLenum

pattern GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252 :: GLenum

pattern GL_NO_RESET_NOTIFICATION_KHR = 0x8261 :: GLenum

pattern GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256 :: GLenum

pattern GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255 :: GLenum