-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.EXT.Texture3D (
  -- * Extension Support
    gl_EXT_texture3D

  -- * GL_EXT_texture3D
  , glTexImage3DEXT
  , glTexSubImage3DEXT
  , pattern GL_MAX_3D_TEXTURE_SIZE_EXT
  , pattern GL_PACK_IMAGE_HEIGHT_EXT
  , pattern GL_PACK_SKIP_IMAGES_EXT
  , pattern GL_PROXY_TEXTURE_3D_EXT
  , pattern GL_TEXTURE_3D_EXT
  , pattern GL_TEXTURE_DEPTH_EXT
  , pattern GL_TEXTURE_WRAP_R_EXT
  , pattern GL_UNPACK_IMAGE_HEIGHT_EXT
  , pattern GL_UNPACK_SKIP_IMAGES_EXT
) 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_EXT_texture3D :: Bool
gl_EXT_texture3D = member "GL_EXT_texture3D" extensions

glTexImage3DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
glTexImage3DEXT = ffienumintenumsizeisizeisizeiintenumenumPtrVIOV glTexImage3DEXTFunPtr

glTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
glTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTexImage3DEXT")

{-# NOINLINE glTexImage3DEXTFunPtr #-}

glTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
glTexSubImage3DEXT = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DEXTFunPtr

glTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
glTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3DEXT")

{-# NOINLINE glTexSubImage3DEXTFunPtr #-}

pattern GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073 :: GLenum

pattern GL_PACK_IMAGE_HEIGHT_EXT = 0x806C :: GLenum

pattern GL_PACK_SKIP_IMAGES_EXT = 0x806B :: GLenum

pattern GL_PROXY_TEXTURE_3D_EXT = 0x8070 :: GLenum

pattern GL_TEXTURE_3D_EXT = 0x806F :: GLenum

pattern GL_TEXTURE_DEPTH_EXT = 0x8071 :: GLenum

pattern GL_TEXTURE_WRAP_R_EXT = 0x8072 :: GLenum

pattern GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E :: GLenum

pattern GL_UNPACK_SKIP_IMAGES_EXT = 0x806D :: GLenum