-- 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 = String -> Set String -> Bool
forall a. Ord a => a -> Set a -> Bool
member String
"GL_EXT_debug_marker" Set String
extensions
{-# NOINLINE gl_EXT_debug_marker #-}

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


glInsertEventMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
glInsertEventMarkerEXT :: forall (m :: * -> *). MonadIO m => 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 (String -> IO (FunPtr (GLsizei -> Ptr GLchar -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glInsertEventMarkerEXT")

{-# NOINLINE glInsertEventMarkerEXTFunPtr #-}

-- | Usage: @'glPopGroupMarkerEXT'@


glPopGroupMarkerEXT :: MonadIO m => m ()
glPopGroupMarkerEXT :: forall (m :: * -> *). MonadIO m => 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 (String -> IO (FunPtr (IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glPopGroupMarkerEXT")

{-# NOINLINE glPopGroupMarkerEXTFunPtr #-}

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


glPushGroupMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
glPushGroupMarkerEXT :: forall (m :: * -> *). MonadIO m => 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 (String -> IO (FunPtr (GLsizei -> Ptr GLchar -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glPushGroupMarkerEXT")

{-# NOINLINE glPushGroupMarkerEXTFunPtr #-}