{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.APPLE.Fence (
gl_APPLE_fence
, glDeleteFencesAPPLE
, glFinishFenceAPPLE
, glFinishObjectAPPLE
, glGenFencesAPPLE
, glIsFenceAPPLE
, glSetFenceAPPLE
, glTestFenceAPPLE
, glTestObjectAPPLE
, pattern GL_DRAW_PIXELS_APPLE
, pattern GL_FENCE_APPLE
) 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_APPLE_fence :: Bool
gl_APPLE_fence = member "GL_APPLE_fence" extensions
{-# NOINLINE gl_APPLE_fence #-}
glDeleteFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteFencesAPPLE = ffisizeiPtruintIOV glDeleteFencesAPPLEFunPtr
glDeleteFencesAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteFencesAPPLEFunPtr = unsafePerformIO (getProcAddress "glDeleteFencesAPPLE")
{-# NOINLINE glDeleteFencesAPPLEFunPtr #-}
glFinishFenceAPPLE :: MonadIO m => GLuint -> m ()
glFinishFenceAPPLE = ffiuintIOV glFinishFenceAPPLEFunPtr
glFinishFenceAPPLEFunPtr :: FunPtr (GLuint -> IO ())
glFinishFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glFinishFenceAPPLE")
{-# NOINLINE glFinishFenceAPPLEFunPtr #-}
glFinishObjectAPPLE :: MonadIO m => GLenum -> GLint -> m ()
glFinishObjectAPPLE = ffienumintIOV glFinishObjectAPPLEFunPtr
glFinishObjectAPPLEFunPtr :: FunPtr (GLenum -> GLint -> IO ())
glFinishObjectAPPLEFunPtr = unsafePerformIO (getProcAddress "glFinishObjectAPPLE")
{-# NOINLINE glFinishObjectAPPLEFunPtr #-}
glGenFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenFencesAPPLE = ffisizeiPtruintIOV glGenFencesAPPLEFunPtr
glGenFencesAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenFencesAPPLEFunPtr = unsafePerformIO (getProcAddress "glGenFencesAPPLE")
{-# NOINLINE glGenFencesAPPLEFunPtr #-}
glIsFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
glIsFenceAPPLE = ffiuintIOboolean glIsFenceAPPLEFunPtr
glIsFenceAPPLEFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsFenceAPPLE")
{-# NOINLINE glIsFenceAPPLEFunPtr #-}
glSetFenceAPPLE :: MonadIO m => GLuint -> m ()
glSetFenceAPPLE = ffiuintIOV glSetFenceAPPLEFunPtr
glSetFenceAPPLEFunPtr :: FunPtr (GLuint -> IO ())
glSetFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glSetFenceAPPLE")
{-# NOINLINE glSetFenceAPPLEFunPtr #-}
glTestFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
glTestFenceAPPLE = ffiuintIOboolean glTestFenceAPPLEFunPtr
glTestFenceAPPLEFunPtr :: FunPtr (GLuint -> IO GLboolean)
glTestFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glTestFenceAPPLE")
{-# NOINLINE glTestFenceAPPLEFunPtr #-}
glTestObjectAPPLE :: MonadIO m => GLenum -> GLuint -> m GLboolean
glTestObjectAPPLE = ffienumuintIOboolean glTestObjectAPPLEFunPtr
glTestObjectAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
glTestObjectAPPLEFunPtr = unsafePerformIO (getProcAddress "glTestObjectAPPLE")
{-# NOINLINE glTestObjectAPPLEFunPtr #-}
pattern GL_DRAW_PIXELS_APPLE = 0x8A0A
pattern GL_FENCE_APPLE = 0x8A0B