-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.EXT.DebugMarker (
  -- * Extension Support
    gl_EXT_debug_marker

  -- * GL_EXT_debug_marker
  , glInsertEventMarkerEXT
  , glPopGroupMarkerEXT
  , glPushGroupMarkerEXT
) 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.Types
import System.IO.Unsafe

-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt GL_EXT_debug_marker> extension is available.

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

-- | Usage: @'glInsertEventMarkerEXT' length marker@


glInsertEventMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
glInsertEventMarkerEXT :: GLsizei -> Ptr GLchar -> m ()
glInsertEventMarkerEXT = FunPtr (GLsizei -> Ptr GLchar -> IO ())
-> GLsizei -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLchar -> IO ())
-> GLsizei -> Ptr GLchar -> m ()
ffisizeiPtrcharIOV FunPtr (GLsizei -> Ptr GLchar -> IO ())
glInsertEventMarkerEXTFunPtr

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

{-# NOINLINE glInsertEventMarkerEXTFunPtr #-}

-- | Usage: @'glPopGroupMarkerEXT'@


glPopGroupMarkerEXT :: MonadIO m => m ()
glPopGroupMarkerEXT :: m ()
glPopGroupMarkerEXT = FunPtr (IO ()) -> m ()
forall (m :: * -> *). MonadIO m => FunPtr (IO ()) -> m ()
ffiIOV FunPtr (IO ())
glPopGroupMarkerEXTFunPtr

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

{-# NOINLINE glPopGroupMarkerEXTFunPtr #-}

-- | Usage: @'glPushGroupMarkerEXT' length marker@


glPushGroupMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
glPushGroupMarkerEXT :: GLsizei -> Ptr GLchar -> m ()
glPushGroupMarkerEXT = FunPtr (GLsizei -> Ptr GLchar -> IO ())
-> GLsizei -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLchar -> IO ())
-> GLsizei -> Ptr GLchar -> m ()
ffisizeiPtrcharIOV FunPtr (GLsizei -> Ptr GLchar -> IO ())
glPushGroupMarkerEXTFunPtr

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

{-# NOINLINE glPushGroupMarkerEXTFunPtr #-}