module Graphics.GL.Ext.KHR.Debug (
  
    gl_KHR_debug
  
  , glDebugMessageCallback
  , glDebugMessageCallbackKHR
  , glDebugMessageControl
  , glDebugMessageControlKHR
  , glDebugMessageInsert
  , glDebugMessageInsertKHR
  , glGetDebugMessageLog
  , glGetDebugMessageLogKHR
  , glGetObjectLabel
  , glGetObjectLabelKHR
  , glGetObjectPtrLabel
  , glGetObjectPtrLabelKHR
  , glGetPointerv
  , glGetPointervKHR
  , glObjectLabel
  , glObjectLabelKHR
  , glObjectPtrLabel
  , glObjectPtrLabelKHR
  , glPopDebugGroup
  , glPopDebugGroupKHR
  , glPushDebugGroup
  , glPushDebugGroupKHR
  , pattern GL_BUFFER
  , pattern GL_BUFFER_KHR
  , pattern GL_CONTEXT_FLAG_DEBUG_BIT
  , pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR
  , pattern GL_DEBUG_CALLBACK_FUNCTION
  , pattern GL_DEBUG_CALLBACK_FUNCTION_KHR
  , pattern GL_DEBUG_CALLBACK_USER_PARAM
  , pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR
  , pattern GL_DEBUG_GROUP_STACK_DEPTH
  , pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR
  , pattern GL_DEBUG_LOGGED_MESSAGES
  , pattern GL_DEBUG_LOGGED_MESSAGES_KHR
  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR
  , pattern GL_DEBUG_OUTPUT
  , pattern GL_DEBUG_OUTPUT_KHR
  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS
  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR
  , pattern GL_DEBUG_SEVERITY_HIGH
  , pattern GL_DEBUG_SEVERITY_HIGH_KHR
  , pattern GL_DEBUG_SEVERITY_LOW
  , pattern GL_DEBUG_SEVERITY_LOW_KHR
  , pattern GL_DEBUG_SEVERITY_MEDIUM
  , pattern GL_DEBUG_SEVERITY_MEDIUM_KHR
  , pattern GL_DEBUG_SEVERITY_NOTIFICATION
  , pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR
  , pattern GL_DEBUG_SOURCE_API
  , pattern GL_DEBUG_SOURCE_API_KHR
  , pattern GL_DEBUG_SOURCE_APPLICATION
  , pattern GL_DEBUG_SOURCE_APPLICATION_KHR
  , pattern GL_DEBUG_SOURCE_OTHER
  , pattern GL_DEBUG_SOURCE_OTHER_KHR
  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER
  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR
  , pattern GL_DEBUG_SOURCE_THIRD_PARTY
  , pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR
  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM
  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR
  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR
  , pattern GL_DEBUG_TYPE_ERROR
  , pattern GL_DEBUG_TYPE_ERROR_KHR
  , pattern GL_DEBUG_TYPE_MARKER
  , pattern GL_DEBUG_TYPE_MARKER_KHR
  , pattern GL_DEBUG_TYPE_OTHER
  , pattern GL_DEBUG_TYPE_OTHER_KHR
  , pattern GL_DEBUG_TYPE_PERFORMANCE
  , pattern GL_DEBUG_TYPE_PERFORMANCE_KHR
  , pattern GL_DEBUG_TYPE_POP_GROUP
  , pattern GL_DEBUG_TYPE_POP_GROUP_KHR
  , pattern GL_DEBUG_TYPE_PORTABILITY
  , pattern GL_DEBUG_TYPE_PORTABILITY_KHR
  , pattern GL_DEBUG_TYPE_PUSH_GROUP
  , pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR
  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR
  , pattern GL_DISPLAY_LIST
  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH
  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR
  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES
  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR
  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH
  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR
  , pattern GL_MAX_LABEL_LENGTH
  , pattern GL_MAX_LABEL_LENGTH_KHR
  , pattern GL_PROGRAM
  , pattern GL_PROGRAM_KHR
  , pattern GL_PROGRAM_PIPELINE
  , pattern GL_PROGRAM_PIPELINE_KHR
  , pattern GL_QUERY
  , pattern GL_QUERY_KHR
  , pattern GL_SAMPLER
  , pattern GL_SAMPLER_KHR
  , pattern GL_SHADER
  , pattern GL_SHADER_KHR
  , pattern GL_STACK_OVERFLOW
  , pattern GL_STACK_OVERFLOW_KHR
  , pattern GL_STACK_UNDERFLOW
  , pattern GL_STACK_UNDERFLOW_KHR
  , pattern GL_VERTEX_ARRAY
  , pattern GL_VERTEX_ARRAY_KHR
) where
import Control.Monad.IO.Class
import Data.Set
import Foreign.Ptr
import Graphics.GL.Internal.FFI
import Graphics.GL.Internal.Proc
import Graphics.GL.Internal.Shared
import Graphics.GL.Types
import System.IO.Unsafe
gl_KHR_debug :: Bool
gl_KHR_debug = member "GL_KHR_debug" extensions
glDebugMessageCallbackKHR :: MonadIO m => GLDEBUGPROCKHR -> Ptr () -> m ()
glDebugMessageCallbackKHR = ffiDEBUGPROCKHRPtrVIOV glDebugMessageCallbackKHRFunPtr
glDebugMessageCallbackKHRFunPtr :: FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ())
glDebugMessageCallbackKHRFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallbackKHR")
glDebugMessageControlKHR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
glDebugMessageControlKHR = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlKHRFunPtr
glDebugMessageControlKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
glDebugMessageControlKHRFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControlKHR")
glDebugMessageInsertKHR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
glDebugMessageInsertKHR = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertKHRFunPtr
glDebugMessageInsertKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
glDebugMessageInsertKHRFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsertKHR")
glGetDebugMessageLogKHR :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
glGetDebugMessageLogKHR = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogKHRFunPtr
glGetDebugMessageLogKHRFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
glGetDebugMessageLogKHRFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLogKHR")
glGetObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectLabelKHR = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelKHRFunPtr
glGetObjectLabelKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetObjectLabelKHRFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabelKHR")
glGetObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectPtrLabelKHR = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelKHRFunPtr
glGetObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetObjectPtrLabelKHRFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabelKHR")
glGetPointervKHR :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
glGetPointervKHR = ffienumPtrPtrVIOV glGetPointervKHRFunPtr
glGetPointervKHRFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glGetPointervKHRFunPtr = unsafePerformIO (getProcAddress "glGetPointervKHR")
glObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
glObjectLabelKHR = ffienumuintsizeiPtrcharIOV glObjectLabelKHRFunPtr
glObjectLabelKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
glObjectLabelKHRFunPtr = unsafePerformIO (getProcAddress "glObjectLabelKHR")
glObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
glObjectPtrLabelKHR = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelKHRFunPtr
glObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
glObjectPtrLabelKHRFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabelKHR")
glPopDebugGroupKHR :: MonadIO m => m ()
glPopDebugGroupKHR = ffiIOV glPopDebugGroupKHRFunPtr
glPopDebugGroupKHRFunPtr :: FunPtr (IO ())
glPopDebugGroupKHRFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroupKHR")
glPushDebugGroupKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
glPushDebugGroupKHR = ffienumuintsizeiPtrcharIOV glPushDebugGroupKHRFunPtr
glPushDebugGroupKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
glPushDebugGroupKHRFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroupKHR")
pattern GL_BUFFER_KHR = 0x82E0
pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002
pattern GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244
pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245
pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D
pattern GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145
pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243
pattern GL_DEBUG_OUTPUT_KHR = 0x92E0
pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242
pattern GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146
pattern GL_DEBUG_SEVERITY_LOW_KHR = 0x9148
pattern GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147
pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B
pattern GL_DEBUG_SOURCE_API_KHR = 0x8246
pattern GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A
pattern GL_DEBUG_SOURCE_OTHER_KHR = 0x824B
pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248
pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249
pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247
pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D
pattern GL_DEBUG_TYPE_ERROR_KHR = 0x824C
pattern GL_DEBUG_TYPE_MARKER_KHR = 0x8268
pattern GL_DEBUG_TYPE_OTHER_KHR = 0x8251
pattern GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250
pattern GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A
pattern GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F
pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269
pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E
pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C
pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144
pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143
pattern GL_MAX_LABEL_LENGTH_KHR = 0x82E8
pattern GL_PROGRAM_KHR = 0x82E2
pattern GL_PROGRAM_PIPELINE_KHR = 0x82E4
pattern GL_QUERY_KHR = 0x82E3
pattern GL_SAMPLER_KHR = 0x82E6
pattern GL_SHADER_KHR = 0x82E1
pattern GL_STACK_OVERFLOW_KHR = 0x0503
pattern GL_STACK_UNDERFLOW_KHR = 0x0504
pattern GL_VERTEX_ARRAY_KHR = 0x8074