-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.KHR.Debug (
  -- * Extension Support
    gl_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

-- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/debug.txt GL_KHR_debug> extension is available.

gl_KHR_debug :: Bool
gl_KHR_debug :: Bool
gl_KHR_debug = [Char] -> Set [Char] -> Bool
forall a. Ord a => a -> Set a -> Bool
member "GL_KHR_debug" Set [Char]
extensions
{-# NOINLINE gl_KHR_debug #-}

-- | Usage: @'glDebugMessageCallbackKHR' callback userParam@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageCallback'.


glDebugMessageCallbackKHR :: MonadIO m => GLDEBUGPROCKHR -> Ptr () -> m ()
glDebugMessageCallbackKHR :: GLDEBUGPROCKHR -> Ptr () -> m ()
glDebugMessageCallbackKHR = FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ())
-> GLDEBUGPROCKHR -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ())
-> GLDEBUGPROCKHR -> Ptr () -> m ()
ffiDEBUGPROCKHRPtrVIOV FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ())
glDebugMessageCallbackKHRFunPtr

glDebugMessageCallbackKHRFunPtr :: FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ())
glDebugMessageCallbackKHRFunPtr :: FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ())
glDebugMessageCallbackKHRFunPtr = IO (FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ()))
-> FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glDebugMessageCallbackKHR")

{-# NOINLINE glDebugMessageCallbackKHRFunPtr #-}

-- | Usage: @'glDebugMessageControlKHR' source type severity count ids enabled@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageControl'.


glDebugMessageControlKHR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
glDebugMessageControlKHR :: GLenum
-> GLenum -> GLenum -> GLsizei -> Ptr GLenum -> GLboolean -> m ()
glDebugMessageControlKHR = FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLsizei -> Ptr GLenum -> GLboolean -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLsizei
-> Ptr GLenum
-> GLboolean
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLsizei -> Ptr GLenum -> GLboolean -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLsizei
-> Ptr GLenum
-> GLboolean
-> m ()
ffienumenumenumsizeiPtruintbooleanIOV FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLsizei -> Ptr GLenum -> GLboolean -> IO ())
glDebugMessageControlKHRFunPtr

glDebugMessageControlKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
glDebugMessageControlKHRFunPtr :: FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLsizei -> Ptr GLenum -> GLboolean -> IO ())
glDebugMessageControlKHRFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum
      -> GLenum
      -> GLsizei
      -> Ptr GLenum
      -> GLboolean
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLenum -> GLenum -> GLsizei -> Ptr GLenum -> GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum
         -> GLenum
         -> GLsizei
         -> Ptr GLenum
         -> GLboolean
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glDebugMessageControlKHR")

{-# NOINLINE glDebugMessageControlKHRFunPtr #-}

-- | Usage: @'glDebugMessageInsertKHR' source type id severity length buf@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageInsert'.


glDebugMessageInsertKHR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
glDebugMessageInsertKHR :: GLenum
-> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> m ()
glDebugMessageInsertKHR = FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLsizei
-> Ptr GLchar
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLenum
-> GLsizei
-> Ptr GLchar
-> m ()
ffienumenumuintenumsizeiPtrcharIOV FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
glDebugMessageInsertKHRFunPtr

glDebugMessageInsertKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
glDebugMessageInsertKHRFunPtr :: FunPtr
  (GLenum
   -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
glDebugMessageInsertKHRFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ()))
-> FunPtr
     (GLenum
      -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glDebugMessageInsertKHR")

{-# NOINLINE glDebugMessageInsertKHRFunPtr #-}

-- | Usage: @'glGetDebugMessageLogKHR' count bufSize sources types ids severities lengths messageLog@
--
-- The length of @sources@ should be @count@.
--
-- The length of @types@ should be @count@.
--
-- The length of @ids@ should be @count@.
--
-- The length of @severities@ should be @count@.
--
-- The length of @lengths@ should be @count@.
--
-- The length of @messageLog@ should be @bufSize@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetDebugMessageLog'.


glGetDebugMessageLogKHR :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
glGetDebugMessageLogKHR :: GLenum
-> GLsizei
-> Ptr GLenum
-> Ptr GLenum
-> Ptr GLenum
-> Ptr GLenum
-> Ptr GLsizei
-> Ptr GLchar
-> m GLenum
glGetDebugMessageLogKHR = FunPtr
  (GLenum
   -> GLsizei
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLsizei
   -> Ptr GLchar
   -> IO GLenum)
-> GLenum
-> GLsizei
-> Ptr GLenum
-> Ptr GLenum
-> Ptr GLenum
-> Ptr GLenum
-> Ptr GLsizei
-> Ptr GLchar
-> m GLenum
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLsizei
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLsizei
   -> Ptr GLchar
   -> IO GLenum)
-> GLenum
-> GLsizei
-> Ptr GLenum
-> Ptr GLenum
-> Ptr GLenum
-> Ptr GLenum
-> Ptr GLsizei
-> Ptr GLchar
-> m GLenum
ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint FunPtr
  (GLenum
   -> GLsizei
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLsizei
   -> Ptr GLchar
   -> IO GLenum)
glGetDebugMessageLogKHRFunPtr

glGetDebugMessageLogKHRFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
glGetDebugMessageLogKHRFunPtr :: FunPtr
  (GLenum
   -> GLsizei
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLenum
   -> Ptr GLsizei
   -> Ptr GLchar
   -> IO GLenum)
glGetDebugMessageLogKHRFunPtr = IO
  (FunPtr
     (GLenum
      -> GLsizei
      -> Ptr GLenum
      -> Ptr GLenum
      -> Ptr GLenum
      -> Ptr GLenum
      -> Ptr GLsizei
      -> Ptr GLchar
      -> IO GLenum))
-> FunPtr
     (GLenum
      -> GLsizei
      -> Ptr GLenum
      -> Ptr GLenum
      -> Ptr GLenum
      -> Ptr GLenum
      -> Ptr GLsizei
      -> Ptr GLchar
      -> IO GLenum)
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLsizei
         -> Ptr GLenum
         -> Ptr GLenum
         -> Ptr GLenum
         -> Ptr GLenum
         -> Ptr GLsizei
         -> Ptr GLchar
         -> IO GLenum))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetDebugMessageLogKHR")

{-# NOINLINE glGetDebugMessageLogKHRFunPtr #-}

-- | Usage: @'glGetObjectLabelKHR' identifier name bufSize length label@
--
-- The length of @label@ should be @bufSize@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetObjectLabel'.


glGetObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectLabelKHR :: GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectLabelKHR = FunPtr
  (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
ffienumuintsizeiPtrsizeiPtrcharIOV FunPtr
  (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetObjectLabelKHRFunPtr

glGetObjectLabelKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetObjectLabelKHRFunPtr :: FunPtr
  (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetObjectLabelKHRFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()))
-> FunPtr
     (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum
         -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetObjectLabelKHR")

{-# NOINLINE glGetObjectLabelKHRFunPtr #-}

-- | Usage: @'glGetObjectPtrLabelKHR' ptr bufSize length label@
--
-- The length of @length@ should be @1@.
--
-- The length of @label@ should be @bufSize@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetObjectPtrLabel'.


glGetObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectPtrLabelKHR :: Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetObjectPtrLabelKHR = FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-> Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-> Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
ffiPtrVsizeiPtrsizeiPtrcharIOV FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetObjectPtrLabelKHRFunPtr

glGetObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetObjectPtrLabelKHRFunPtr = IO
  (FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()))
-> FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetObjectPtrLabelKHR")

{-# NOINLINE glGetObjectPtrLabelKHRFunPtr #-}

-- | Usage: @'glGetPointervKHR' pname params@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetPointerv'.


glGetPointervKHR :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
glGetPointervKHR :: GLenum -> Ptr (Ptr ()) -> m ()
glGetPointervKHR = FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-> GLenum -> Ptr (Ptr ()) -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-> GLenum -> Ptr (Ptr ()) -> m ()
ffienumPtrPtrVIOV FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glGetPointervKHRFunPtr

glGetPointervKHRFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glGetPointervKHRFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glGetPointervKHRFunPtr = IO (FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()))
-> FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetPointervKHR")

{-# NOINLINE glGetPointervKHRFunPtr #-}

-- | Usage: @'glObjectLabelKHR' identifier name length label@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glObjectLabel'.


glObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
glObjectLabelKHR :: GLenum -> GLenum -> GLsizei -> Ptr GLchar -> m ()
glObjectLabelKHR = FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> m ()
ffienumuintsizeiPtrcharIOV FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
glObjectLabelKHRFunPtr

glObjectLabelKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
glObjectLabelKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
glObjectLabelKHRFunPtr = IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glObjectLabelKHR")

{-# NOINLINE glObjectLabelKHRFunPtr #-}

-- | Usage: @'glObjectPtrLabelKHR' ptr length label@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glObjectPtrLabel'.


glObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
glObjectPtrLabelKHR :: Ptr () -> GLsizei -> Ptr GLchar -> m ()
glObjectPtrLabelKHR = FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
-> Ptr () -> GLsizei -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
-> Ptr () -> GLsizei -> Ptr GLchar -> m ()
ffiPtrVsizeiPtrcharIOV FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
glObjectPtrLabelKHRFunPtr

glObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
glObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
glObjectPtrLabelKHRFunPtr = IO (FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ()))
-> FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glObjectPtrLabelKHR")

{-# NOINLINE glObjectPtrLabelKHRFunPtr #-}

-- | Usage: @'glPopDebugGroupKHR'@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glPopDebugGroup'.


glPopDebugGroupKHR :: MonadIO m => m ()
glPopDebugGroupKHR :: m ()
glPopDebugGroupKHR = FunPtr (IO ()) -> m ()
forall (m :: * -> *). MonadIO m => FunPtr (IO ()) -> m ()
ffiIOV FunPtr (IO ())
glPopDebugGroupKHRFunPtr

glPopDebugGroupKHRFunPtr :: FunPtr (IO ())
glPopDebugGroupKHRFunPtr :: FunPtr (IO ())
glPopDebugGroupKHRFunPtr = IO (FunPtr (IO ())) -> FunPtr (IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glPopDebugGroupKHR")

{-# NOINLINE glPopDebugGroupKHRFunPtr #-}

-- | Usage: @'glPushDebugGroupKHR' source id length message@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glPushDebugGroup'.


glPushDebugGroupKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
glPushDebugGroupKHR :: GLenum -> GLenum -> GLsizei -> Ptr GLchar -> m ()
glPushDebugGroupKHR = FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> m ()
ffienumuintsizeiPtrcharIOV FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
glPushDebugGroupKHRFunPtr

glPushDebugGroupKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
glPushDebugGroupKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
glPushDebugGroupKHRFunPtr = IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLchar -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glPushDebugGroupKHR")

{-# NOINLINE glPushDebugGroupKHRFunPtr #-}

pattern $bGL_BUFFER_KHR :: a
$mGL_BUFFER_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_BUFFER_KHR = 0x82E0

pattern $bGL_CONTEXT_FLAG_DEBUG_BIT_KHR :: a
$mGL_CONTEXT_FLAG_DEBUG_BIT_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002

pattern $bGL_DEBUG_CALLBACK_FUNCTION_KHR :: a
$mGL_DEBUG_CALLBACK_FUNCTION_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244

pattern $bGL_DEBUG_CALLBACK_USER_PARAM_KHR :: a
$mGL_DEBUG_CALLBACK_USER_PARAM_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245

pattern $bGL_DEBUG_GROUP_STACK_DEPTH_KHR :: a
$mGL_DEBUG_GROUP_STACK_DEPTH_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D

pattern $bGL_DEBUG_LOGGED_MESSAGES_KHR :: a
$mGL_DEBUG_LOGGED_MESSAGES_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145

pattern $bGL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR :: a
$mGL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243

pattern $bGL_DEBUG_OUTPUT_KHR :: a
$mGL_DEBUG_OUTPUT_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_OUTPUT_KHR = 0x92E0

pattern $bGL_DEBUG_OUTPUT_SYNCHRONOUS_KHR :: a
$mGL_DEBUG_OUTPUT_SYNCHRONOUS_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242

pattern $bGL_DEBUG_SEVERITY_HIGH_KHR :: a
$mGL_DEBUG_SEVERITY_HIGH_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146

pattern $bGL_DEBUG_SEVERITY_LOW_KHR :: a
$mGL_DEBUG_SEVERITY_LOW_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SEVERITY_LOW_KHR = 0x9148

pattern $bGL_DEBUG_SEVERITY_MEDIUM_KHR :: a
$mGL_DEBUG_SEVERITY_MEDIUM_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147

pattern $bGL_DEBUG_SEVERITY_NOTIFICATION_KHR :: a
$mGL_DEBUG_SEVERITY_NOTIFICATION_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B

pattern $bGL_DEBUG_SOURCE_API_KHR :: a
$mGL_DEBUG_SOURCE_API_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SOURCE_API_KHR = 0x8246

pattern $bGL_DEBUG_SOURCE_APPLICATION_KHR :: a
$mGL_DEBUG_SOURCE_APPLICATION_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A

pattern $bGL_DEBUG_SOURCE_OTHER_KHR :: a
$mGL_DEBUG_SOURCE_OTHER_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SOURCE_OTHER_KHR = 0x824B

pattern $bGL_DEBUG_SOURCE_SHADER_COMPILER_KHR :: a
$mGL_DEBUG_SOURCE_SHADER_COMPILER_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248

pattern $bGL_DEBUG_SOURCE_THIRD_PARTY_KHR :: a
$mGL_DEBUG_SOURCE_THIRD_PARTY_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249

pattern $bGL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR :: a
$mGL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247

pattern $bGL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR :: a
$mGL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D

pattern $bGL_DEBUG_TYPE_ERROR_KHR :: a
$mGL_DEBUG_TYPE_ERROR_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_TYPE_ERROR_KHR = 0x824C

pattern $bGL_DEBUG_TYPE_MARKER_KHR :: a
$mGL_DEBUG_TYPE_MARKER_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_TYPE_MARKER_KHR = 0x8268

pattern $bGL_DEBUG_TYPE_OTHER_KHR :: a
$mGL_DEBUG_TYPE_OTHER_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_TYPE_OTHER_KHR = 0x8251

pattern $bGL_DEBUG_TYPE_PERFORMANCE_KHR :: a
$mGL_DEBUG_TYPE_PERFORMANCE_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250

pattern $bGL_DEBUG_TYPE_POP_GROUP_KHR :: a
$mGL_DEBUG_TYPE_POP_GROUP_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A

pattern $bGL_DEBUG_TYPE_PORTABILITY_KHR :: a
$mGL_DEBUG_TYPE_PORTABILITY_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F

pattern $bGL_DEBUG_TYPE_PUSH_GROUP_KHR :: a
$mGL_DEBUG_TYPE_PUSH_GROUP_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269

pattern $bGL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR :: a
$mGL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E

pattern $bGL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR :: a
$mGL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C

pattern $bGL_MAX_DEBUG_LOGGED_MESSAGES_KHR :: a
$mGL_MAX_DEBUG_LOGGED_MESSAGES_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144

pattern $bGL_MAX_DEBUG_MESSAGE_LENGTH_KHR :: a
$mGL_MAX_DEBUG_MESSAGE_LENGTH_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143

pattern $bGL_MAX_LABEL_LENGTH_KHR :: a
$mGL_MAX_LABEL_LENGTH_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_MAX_LABEL_LENGTH_KHR = 0x82E8

pattern $bGL_PROGRAM_KHR :: a
$mGL_PROGRAM_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PROGRAM_KHR = 0x82E2

pattern $bGL_PROGRAM_PIPELINE_KHR :: a
$mGL_PROGRAM_PIPELINE_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PROGRAM_PIPELINE_KHR = 0x82E4

pattern $bGL_QUERY_KHR :: a
$mGL_QUERY_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_QUERY_KHR = 0x82E3

pattern $bGL_SAMPLER_KHR :: a
$mGL_SAMPLER_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SAMPLER_KHR = 0x82E6

pattern $bGL_SHADER_KHR :: a
$mGL_SHADER_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SHADER_KHR = 0x82E1

pattern $bGL_STACK_OVERFLOW_KHR :: a
$mGL_STACK_OVERFLOW_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STACK_OVERFLOW_KHR = 0x0503

pattern $bGL_STACK_UNDERFLOW_KHR :: a
$mGL_STACK_UNDERFLOW_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STACK_UNDERFLOW_KHR = 0x0504

pattern $bGL_VERTEX_ARRAY_KHR :: a
$mGL_VERTEX_ARRAY_KHR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VERTEX_ARRAY_KHR = 0x8074