module Graphics.GL.Ext.INTEL.PerformanceQuery (
gl_INTEL_performance_query
, glBeginPerfQueryINTEL
, glCreatePerfQueryINTEL
, glDeletePerfQueryINTEL
, glEndPerfQueryINTEL
, glGetFirstPerfQueryIdINTEL
, glGetNextPerfQueryIdINTEL
, glGetPerfCounterInfoINTEL
, glGetPerfQueryDataINTEL
, glGetPerfQueryIdByNameINTEL
, glGetPerfQueryInfoINTEL
, pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL
, pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL
, pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL
, pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL
, pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL
, pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL
, pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL
, pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL
, pattern GL_PERFQUERY_COUNTER_EVENT_INTEL
, pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL
, pattern GL_PERFQUERY_COUNTER_RAW_INTEL
, pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL
, pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL
, pattern GL_PERFQUERY_DONOT_FLUSH_INTEL
, pattern GL_PERFQUERY_FLUSH_INTEL
, pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL
, pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL
, pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL
, pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL
, pattern GL_PERFQUERY_WAIT_INTEL
) 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
gl_INTEL_performance_query :: Bool
gl_INTEL_performance_query = member "GL_INTEL_performance_query" extensions
glBeginPerfQueryINTEL :: MonadIO m => GLuint -> m ()
glBeginPerfQueryINTEL = ffiuintIOV glBeginPerfQueryINTELFunPtr
glBeginPerfQueryINTELFunPtr :: FunPtr (GLuint -> IO ())
glBeginPerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glBeginPerfQueryINTEL")
glCreatePerfQueryINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glCreatePerfQueryINTEL = ffiuintPtruintIOV glCreatePerfQueryINTELFunPtr
glCreatePerfQueryINTELFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glCreatePerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glCreatePerfQueryINTEL")
glDeletePerfQueryINTEL :: MonadIO m => GLuint -> m ()
glDeletePerfQueryINTEL = ffiuintIOV glDeletePerfQueryINTELFunPtr
glDeletePerfQueryINTELFunPtr :: FunPtr (GLuint -> IO ())
glDeletePerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glDeletePerfQueryINTEL")
glEndPerfQueryINTEL :: MonadIO m => GLuint -> m ()
glEndPerfQueryINTEL = ffiuintIOV glEndPerfQueryINTELFunPtr
glEndPerfQueryINTELFunPtr :: FunPtr (GLuint -> IO ())
glEndPerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glEndPerfQueryINTEL")
glGetFirstPerfQueryIdINTEL :: MonadIO m => Ptr GLuint -> m ()
glGetFirstPerfQueryIdINTEL = ffiPtruintIOV glGetFirstPerfQueryIdINTELFunPtr
glGetFirstPerfQueryIdINTELFunPtr :: FunPtr (Ptr GLuint -> IO ())
glGetFirstPerfQueryIdINTELFunPtr = unsafePerformIO (getProcAddress "glGetFirstPerfQueryIdINTEL")
glGetNextPerfQueryIdINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glGetNextPerfQueryIdINTEL = ffiuintPtruintIOV glGetNextPerfQueryIdINTELFunPtr
glGetNextPerfQueryIdINTELFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glGetNextPerfQueryIdINTELFunPtr = unsafePerformIO (getProcAddress "glGetNextPerfQueryIdINTEL")
glGetPerfCounterInfoINTEL :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()
glGetPerfCounterInfoINTEL = ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV glGetPerfCounterInfoINTELFunPtr
glGetPerfCounterInfoINTELFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ())
glGetPerfCounterInfoINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfCounterInfoINTEL")
glGetPerfQueryDataINTEL :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> m ()
glGetPerfQueryDataINTEL = ffiuintuintsizeiPtrVPtruintIOV glGetPerfQueryDataINTELFunPtr
glGetPerfQueryDataINTELFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ())
glGetPerfQueryDataINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryDataINTEL")
glGetPerfQueryIdByNameINTEL :: MonadIO m => Ptr GLchar -> Ptr GLuint -> m ()
glGetPerfQueryIdByNameINTEL = ffiPtrcharPtruintIOV glGetPerfQueryIdByNameINTELFunPtr
glGetPerfQueryIdByNameINTELFunPtr :: FunPtr (Ptr GLchar -> Ptr GLuint -> IO ())
glGetPerfQueryIdByNameINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryIdByNameINTEL")
glGetPerfQueryInfoINTEL :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
glGetPerfQueryInfoINTEL = ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV glGetPerfQueryInfoINTELFunPtr
glGetPerfQueryInfoINTELFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
glGetPerfQueryInfoINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryInfoINTEL")
pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC
pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB
pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA
pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8
pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9
pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF
pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1
pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2
pattern GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0
pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE
pattern GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4
pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3
pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5
pattern GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9
pattern GL_PERFQUERY_FLUSH_INTEL = 0x83FA
pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001
pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500
pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD
pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000
pattern GL_PERFQUERY_WAIT_INTEL = 0x83FB