-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.AMD.OcclusionQueryEvent (
  -- * Extension Support
    gl_AMD_occlusion_query_event

  -- * GL_AMD_occlusion_query_event
  , glQueryObjectParameteruiAMD
  , pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD
  , pattern GL_QUERY_ALL_EVENT_BITS_AMD
  , pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD
  , pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD
  , pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD
  , pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD
) where

import Control.Monad.IO.Class
import Data.Set
import Foreign.Ptr
import Graphics.GL.Raw.Internal.FFI
import Graphics.GL.Raw.Internal.Proc
import Graphics.GL.Raw.Types
import System.IO.Unsafe

gl_AMD_occlusion_query_event :: Bool
gl_AMD_occlusion_query_event = member "GL_AMD_occlusion_query_event" extensions

glQueryObjectParameteruiAMD :: MonadIO m => GLenum -> GLuint -> GLenum -> GLuint -> m ()
glQueryObjectParameteruiAMD = ffienumuintenumuintIOV glQueryObjectParameteruiAMDFunPtr

glQueryObjectParameteruiAMDFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ())
glQueryObjectParameteruiAMDFunPtr = unsafePerformIO (getProcAddress "glQueryObjectParameteruiAMD")

{-# NOINLINE glQueryObjectParameteruiAMDFunPtr #-}

pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F :: GLenum

pattern GL_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF :: GLenum

pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008 :: GLenum

pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002 :: GLenum

pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001 :: GLenum

pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004 :: GLenum