-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.QCOM.ExtendedGet2 (
  -- * Extension Support
    gl_QCOM_extended_get2

  -- * GL_QCOM_extended_get2
  , glExtGetProgramBinarySourceQCOM
  , glExtGetProgramsQCOM
  , glExtGetShadersQCOM
  , glExtIsProgramBinaryQCOM
) 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_QCOM_extended_get2 :: Bool
gl_QCOM_extended_get2 = member "GL_QCOM_extended_get2" extensions

glExtGetProgramBinarySourceQCOM :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> m ()
glExtGetProgramBinarySourceQCOM = ffiuintenumPtrcharPtrintIOV glExtGetProgramBinarySourceQCOMFunPtr

glExtGetProgramBinarySourceQCOMFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ())
glExtGetProgramBinarySourceQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetProgramBinarySourceQCOM")

{-# NOINLINE glExtGetProgramBinarySourceQCOMFunPtr #-}

glExtGetProgramsQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetProgramsQCOM = ffiPtruintintPtrintIOV glExtGetProgramsQCOMFunPtr

glExtGetProgramsQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
glExtGetProgramsQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetProgramsQCOM")

{-# NOINLINE glExtGetProgramsQCOMFunPtr #-}

glExtGetShadersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetShadersQCOM = ffiPtruintintPtrintIOV glExtGetShadersQCOMFunPtr

glExtGetShadersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
glExtGetShadersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetShadersQCOM")

{-# NOINLINE glExtGetShadersQCOMFunPtr #-}

glExtIsProgramBinaryQCOM :: MonadIO m => GLuint -> m GLboolean
glExtIsProgramBinaryQCOM = ffiuintIOboolean glExtIsProgramBinaryQCOMFunPtr

glExtIsProgramBinaryQCOMFunPtr :: FunPtr (GLuint -> IO GLboolean)
glExtIsProgramBinaryQCOMFunPtr = unsafePerformIO (getProcAddress "glExtIsProgramBinaryQCOM")

{-# NOINLINE glExtIsProgramBinaryQCOMFunPtr #-}