-- 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 = [Char] -> Set [Char] -> Bool
forall a. Ord a => a -> Set a -> Bool
member "GL_EXT_pixel_transform" Set [Char]
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 :: 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 ([Char] -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "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 :: 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 ([Char] -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "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 :: 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 ([Char] -> IO (FunPtr (GLenum -> GLenum -> GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "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 :: 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 ([Char] -> IO (FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "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 :: 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 ([Char] -> IO (FunPtr (GLenum -> GLenum -> GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "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 :: 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 ([Char] -> IO (FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glPixelTransformParameterivEXT")

{-# NOINLINE glPixelTransformParameterivEXTFunPtr #-}

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

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

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

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

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

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

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

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

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