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

  -- * GL_QCOM_extended_get
  , glExtGetBufferPointervQCOM
  , glExtGetBuffersQCOM
  , glExtGetFramebuffersQCOM
  , glExtGetRenderbuffersQCOM
  , glExtGetTexLevelParameterivQCOM
  , glExtGetTexSubImageQCOM
  , glExtGetTexturesQCOM
  , glExtTexObjectStateOverrideiQCOM
  , pattern GL_STATE_RESTORE
  , pattern GL_TEXTURE_DEPTH_QCOM
  , pattern GL_TEXTURE_FORMAT_QCOM
  , pattern GL_TEXTURE_HEIGHT_QCOM
  , pattern GL_TEXTURE_IMAGE_VALID_QCOM
  , pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM
  , pattern GL_TEXTURE_NUM_LEVELS_QCOM
  , pattern GL_TEXTURE_OBJECT_VALID_QCOM
  , pattern GL_TEXTURE_TARGET_QCOM
  , pattern GL_TEXTURE_TYPE_QCOM
  , pattern GL_TEXTURE_WIDTH_QCOM
) 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_get :: Bool
gl_QCOM_extended_get = member "GL_QCOM_extended_get" extensions

glExtGetBufferPointervQCOM :: MonadIO m => GLenum -> Ptr () -> m ()
glExtGetBufferPointervQCOM = ffienumPtrVIOV glExtGetBufferPointervQCOMFunPtr

glExtGetBufferPointervQCOMFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
glExtGetBufferPointervQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetBufferPointervQCOM")

{-# NOINLINE glExtGetBufferPointervQCOMFunPtr #-}

glExtGetBuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetBuffersQCOM = ffiPtruintintPtrintIOV glExtGetBuffersQCOMFunPtr

glExtGetBuffersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
glExtGetBuffersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetBuffersQCOM")

{-# NOINLINE glExtGetBuffersQCOMFunPtr #-}

glExtGetFramebuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetFramebuffersQCOM = ffiPtruintintPtrintIOV glExtGetFramebuffersQCOMFunPtr

glExtGetFramebuffersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
glExtGetFramebuffersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetFramebuffersQCOM")

{-# NOINLINE glExtGetFramebuffersQCOMFunPtr #-}

glExtGetRenderbuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetRenderbuffersQCOM = ffiPtruintintPtrintIOV glExtGetRenderbuffersQCOMFunPtr

glExtGetRenderbuffersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
glExtGetRenderbuffersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetRenderbuffersQCOM")

{-# NOINLINE glExtGetRenderbuffersQCOMFunPtr #-}

glExtGetTexLevelParameterivQCOM :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
glExtGetTexLevelParameterivQCOM = ffiuintenumintenumPtrintIOV glExtGetTexLevelParameterivQCOMFunPtr

glExtGetTexLevelParameterivQCOMFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
glExtGetTexLevelParameterivQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexLevelParameterivQCOM")

{-# NOINLINE glExtGetTexLevelParameterivQCOMFunPtr #-}

glExtGetTexSubImageQCOM :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glExtGetTexSubImageQCOM = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glExtGetTexSubImageQCOMFunPtr

glExtGetTexSubImageQCOMFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
glExtGetTexSubImageQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexSubImageQCOM")

{-# NOINLINE glExtGetTexSubImageQCOMFunPtr #-}

glExtGetTexturesQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
glExtGetTexturesQCOM = ffiPtruintintPtrintIOV glExtGetTexturesQCOMFunPtr

glExtGetTexturesQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
glExtGetTexturesQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexturesQCOM")

{-# NOINLINE glExtGetTexturesQCOMFunPtr #-}

glExtTexObjectStateOverrideiQCOM :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glExtTexObjectStateOverrideiQCOM = ffienumenumintIOV glExtTexObjectStateOverrideiQCOMFunPtr

glExtTexObjectStateOverrideiQCOMFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glExtTexObjectStateOverrideiQCOMFunPtr = unsafePerformIO (getProcAddress "glExtTexObjectStateOverrideiQCOM")

{-# NOINLINE glExtTexObjectStateOverrideiQCOMFunPtr #-}

pattern GL_STATE_RESTORE = 0x8BDC

pattern GL_TEXTURE_DEPTH_QCOM = 0x8BD4

pattern GL_TEXTURE_FORMAT_QCOM = 0x8BD6

pattern GL_TEXTURE_HEIGHT_QCOM = 0x8BD3

pattern GL_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8

pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5

pattern GL_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9

pattern GL_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB

pattern GL_TEXTURE_TARGET_QCOM = 0x8BDA

pattern GL_TEXTURE_TYPE_QCOM = 0x8BD7

pattern GL_TEXTURE_WIDTH_QCOM = 0x8BD2