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

  -- * GL_EXT_copy_texture
  , glCopyTexImage1DEXT
  , glCopyTexImage2DEXT
  , glCopyTexSubImage1DEXT
  , glCopyTexSubImage2DEXT
  , glCopyTexSubImage3DEXT
) 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_copy_texture :: Bool
gl_EXT_copy_texture = member "GL_EXT_copy_texture" extensions

glCopyTexImage1DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
glCopyTexImage1DEXT = ffienumintenumintintsizeiintIOV glCopyTexImage1DEXTFunPtr

glCopyTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
glCopyTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1DEXT")

{-# NOINLINE glCopyTexImage1DEXTFunPtr #-}

glCopyTexImage2DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
glCopyTexImage2DEXT = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DEXTFunPtr

glCopyTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
glCopyTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2DEXT")

{-# NOINLINE glCopyTexImage2DEXTFunPtr #-}

glCopyTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
glCopyTexSubImage1DEXT = ffienumintintintintsizeiIOV glCopyTexSubImage1DEXTFunPtr

glCopyTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
glCopyTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1DEXT")

{-# NOINLINE glCopyTexSubImage1DEXTFunPtr #-}

glCopyTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTexSubImage2DEXT = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DEXTFunPtr

glCopyTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
glCopyTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2DEXT")

{-# NOINLINE glCopyTexSubImage2DEXTFunPtr #-}

glCopyTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
glCopyTexSubImage3DEXT = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DEXTFunPtr

glCopyTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
glCopyTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3DEXT")

{-# NOINLINE glCopyTexSubImage3DEXTFunPtr #-}