-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.EXT.PixelTransform (
  -- * Extension Support
    gl_EXT_pixel_transform

  -- * GL_EXT_pixel_transform
  , glGetPixelTransformParameterfvEXT
  , glGetPixelTransformParameterivEXT
  , glPixelTransformParameterfEXT
  , glPixelTransformParameterfvEXT
  , glPixelTransformParameteriEXT
  , glPixelTransformParameterivEXT
  , pattern GL_AVERAGE_EXT
  , pattern GL_CUBIC_EXT
  , pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
  , pattern GL_PIXEL_CUBIC_WEIGHT_EXT
  , pattern GL_PIXEL_MAG_FILTER_EXT
  , pattern GL_PIXEL_MIN_FILTER_EXT
  , pattern GL_PIXEL_TRANSFORM_2D_EXT
  , pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT
  , pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
) where

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

-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_transform.txt GL_EXT_pixel_transform> extension is available.

gl_EXT_pixel_transform :: Bool
gl_EXT_pixel_transform :: Bool
gl_EXT_pixel_transform = String -> Set String -> Bool
forall a. Ord a => a -> Set a -> Bool
member String
"GL_EXT_pixel_transform" Set String
extensions
{-# NOINLINE gl_EXT_pixel_transform #-}

-- | Usage: @'glGetPixelTransformParameterfvEXT' target pname params@
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetPixelTransformParameterfvEXT :: forall (m :: * -> *).
MonadIO m =>
GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetPixelTransformParameterfvEXT = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetPixelTransformParameterfvEXTFunPtr

glGetPixelTransformParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetPixelTransformParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetPixelTransformParameterfvEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetPixelTransformParameterfvEXT")

{-# NOINLINE glGetPixelTransformParameterfvEXTFunPtr #-}

-- | Usage: @'glGetPixelTransformParameterivEXT' target pname params@
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetPixelTransformParameterivEXT :: forall (m :: * -> *).
MonadIO m =>
GLenum -> GLenum -> Ptr GLint -> m ()
glGetPixelTransformParameterivEXT = FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetPixelTransformParameterivEXTFunPtr

glGetPixelTransformParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetPixelTransformParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetPixelTransformParameterivEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetPixelTransformParameterivEXT")

{-# NOINLINE glGetPixelTransformParameterivEXTFunPtr #-}

-- | Usage: @'glPixelTransformParameterfEXT' target pname param@
--
-- The parameter @target@ is a @PixelTransformTargetEXT@.
--
-- The parameter @pname@ is a @PixelTransformPNameEXT@.


glPixelTransformParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glPixelTransformParameterfEXT :: forall (m :: * -> *).
MonadIO m =>
GLenum -> GLenum -> GLfloat -> m ()
glPixelTransformParameterfEXT = FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-> GLenum -> GLenum -> GLfloat -> m ()
ffienumenumfloatIOV FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glPixelTransformParameterfEXTFunPtr

glPixelTransformParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glPixelTransformParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glPixelTransformParameterfEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glPixelTransformParameterfEXT")

{-# NOINLINE glPixelTransformParameterfEXTFunPtr #-}

-- | Usage: @'glPixelTransformParameterfvEXT' target pname params@
--
-- The parameter @target@ is a @PixelTransformTargetEXT@.
--
-- The parameter @pname@ is a @PixelTransformPNameEXT@.
--
-- The length of @params@ should be @1@.


glPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glPixelTransformParameterfvEXT :: forall (m :: * -> *).
MonadIO m =>
GLenum -> GLenum -> Ptr GLfloat -> m ()
glPixelTransformParameterfvEXT = FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> Ptr GLfloat -> m ()
ffienumenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glPixelTransformParameterfvEXTFunPtr

glPixelTransformParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glPixelTransformParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glPixelTransformParameterfvEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glPixelTransformParameterfvEXT")

{-# NOINLINE glPixelTransformParameterfvEXTFunPtr #-}

-- | Usage: @'glPixelTransformParameteriEXT' target pname param@
--
-- The parameter @target@ is a @PixelTransformTargetEXT@.
--
-- The parameter @pname@ is a @PixelTransformPNameEXT@.


glPixelTransformParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glPixelTransformParameteriEXT :: forall (m :: * -> *).
MonadIO m =>
GLenum -> GLenum -> GLint -> m ()
glPixelTransformParameteriEXT = FunPtr (GLenum -> GLenum -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> IO ())
-> GLenum -> GLenum -> GLint -> m ()
ffienumenumintIOV FunPtr (GLenum -> GLenum -> GLint -> IO ())
glPixelTransformParameteriEXTFunPtr

glPixelTransformParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glPixelTransformParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glPixelTransformParameteriEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> GLint -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> GLint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glPixelTransformParameteriEXT")

{-# NOINLINE glPixelTransformParameteriEXTFunPtr #-}

-- | Usage: @'glPixelTransformParameterivEXT' target pname params@
--
-- The parameter @target@ is a @PixelTransformTargetEXT@.
--
-- The parameter @pname@ is a @PixelTransformPNameEXT@.
--
-- The length of @params@ should be @1@.


glPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glPixelTransformParameterivEXT :: forall (m :: * -> *).
MonadIO m =>
GLenum -> GLenum -> Ptr GLint -> m ()
glPixelTransformParameterivEXT = FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-> GLenum -> GLenum -> Ptr GLint -> m ()
ffienumenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glPixelTransformParameterivEXTFunPtr

glPixelTransformParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glPixelTransformParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glPixelTransformParameterivEXTFunPtr = IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
-> FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glPixelTransformParameterivEXT")

{-# NOINLINE glPixelTransformParameterivEXTFunPtr #-}

pattern GL_AVERAGE_EXT  :: (Eq a, Num a) => a

pattern $mGL_AVERAGE_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_AVERAGE_EXT :: forall a. (Eq a, Num a) => a
GL_AVERAGE_EXT = 0x8335

pattern GL_CUBIC_EXT  :: (Eq a, Num a) => a

pattern $mGL_CUBIC_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_CUBIC_EXT :: forall a. (Eq a, Num a) => a
GL_CUBIC_EXT = 0x8334

pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT  :: (Eq a, Num a) => a

pattern $mGL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT :: forall a. (Eq a, Num a) => a
GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337

pattern GL_PIXEL_CUBIC_WEIGHT_EXT  :: (Eq a, Num a) => a

pattern $mGL_PIXEL_CUBIC_WEIGHT_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PIXEL_CUBIC_WEIGHT_EXT :: forall a. (Eq a, Num a) => a
GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333

pattern GL_PIXEL_MAG_FILTER_EXT  :: (Eq a, Num a) => a

pattern $mGL_PIXEL_MAG_FILTER_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PIXEL_MAG_FILTER_EXT :: forall a. (Eq a, Num a) => a
GL_PIXEL_MAG_FILTER_EXT = 0x8331

pattern GL_PIXEL_MIN_FILTER_EXT  :: (Eq a, Num a) => a

pattern $mGL_PIXEL_MIN_FILTER_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PIXEL_MIN_FILTER_EXT :: forall a. (Eq a, Num a) => a
GL_PIXEL_MIN_FILTER_EXT = 0x8332

pattern GL_PIXEL_TRANSFORM_2D_EXT  :: (Eq a, Num a) => a

pattern $mGL_PIXEL_TRANSFORM_2D_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PIXEL_TRANSFORM_2D_EXT :: forall a. (Eq a, Num a) => a
GL_PIXEL_TRANSFORM_2D_EXT = 0x8330

pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT  :: (Eq a, Num a) => a

pattern $mGL_PIXEL_TRANSFORM_2D_MATRIX_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PIXEL_TRANSFORM_2D_MATRIX_EXT :: forall a. (Eq a, Num a) => a
GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338

pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT  :: (Eq a, Num a) => a

pattern $mGL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT :: forall a. (Eq a, Num a) => a
GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336