-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.HP.ImageTransform (
  -- * Extension Support
    gl_HP_image_transform

  -- * GL_HP_image_transform
  , glGetImageTransformParameterfvHP
  , glGetImageTransformParameterivHP
  , glImageTransformParameterfHP
  , glImageTransformParameterfvHP
  , glImageTransformParameteriHP
  , glImageTransformParameterivHP
  , pattern GL_AVERAGE_HP
  , pattern GL_CUBIC_HP
  , pattern GL_IMAGE_CUBIC_WEIGHT_HP
  , pattern GL_IMAGE_MAG_FILTER_HP
  , pattern GL_IMAGE_MIN_FILTER_HP
  , pattern GL_IMAGE_ROTATE_ANGLE_HP
  , pattern GL_IMAGE_ROTATE_ORIGIN_X_HP
  , pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP
  , pattern GL_IMAGE_SCALE_X_HP
  , pattern GL_IMAGE_SCALE_Y_HP
  , pattern GL_IMAGE_TRANSFORM_2D_HP
  , pattern GL_IMAGE_TRANSLATE_X_HP
  , pattern GL_IMAGE_TRANSLATE_Y_HP
  , pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
  , pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
) 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/HP/image_transform.txt GL_HP_image_transform> extension is available.

gl_HP_image_transform :: Bool
gl_HP_image_transform :: Bool
gl_HP_image_transform = [Char] -> Set [Char] -> Bool
forall a. Ord a => a -> Set a -> Bool
member "GL_HP_image_transform" Set [Char]
extensions
{-# NOINLINE gl_HP_image_transform #-}

-- | Usage: @'glGetImageTransformParameterfvHP' target pname params@
--
-- The parameter @target@ is a @ImageTransformTargetHP@.
--
-- The parameter @pname@ is a @ImageTransformPNameHP@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetImageTransformParameterfvHP :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetImageTransformParameterfvHP = 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 ())
glGetImageTransformParameterfvHPFunPtr

glGetImageTransformParameterfvHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetImageTransformParameterfvHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetImageTransformParameterfvHPFunPtr = 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 "glGetImageTransformParameterfvHP")

{-# NOINLINE glGetImageTransformParameterfvHPFunPtr #-}

-- | Usage: @'glGetImageTransformParameterivHP' target pname params@
--
-- The parameter @target@ is a @ImageTransformTargetHP@.
--
-- The parameter @pname@ is a @ImageTransformPNameHP@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetImageTransformParameterivHP :: GLenum -> GLenum -> Ptr GLint -> m ()
glGetImageTransformParameterivHP = 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 ())
glGetImageTransformParameterivHPFunPtr

glGetImageTransformParameterivHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetImageTransformParameterivHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetImageTransformParameterivHPFunPtr = 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 "glGetImageTransformParameterivHP")

{-# NOINLINE glGetImageTransformParameterivHPFunPtr #-}

-- | Usage: @'glImageTransformParameterfHP' target pname param@
--
-- The parameter @target@ is a @ImageTransformTargetHP@.
--
-- The parameter @pname@ is a @ImageTransformPNameHP@.


glImageTransformParameterfHP :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
glImageTransformParameterfHP :: GLenum -> GLenum -> GLfloat -> m ()
glImageTransformParameterfHP = 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 ())
glImageTransformParameterfHPFunPtr

glImageTransformParameterfHPFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glImageTransformParameterfHPFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
glImageTransformParameterfHPFunPtr = 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 "glImageTransformParameterfHP")

{-# NOINLINE glImageTransformParameterfHPFunPtr #-}

-- | Usage: @'glImageTransformParameterfvHP' target pname params@
--
-- The parameter @target@ is a @ImageTransformTargetHP@.
--
-- The parameter @pname@ is a @ImageTransformPNameHP@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glImageTransformParameterfvHP :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glImageTransformParameterfvHP = 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 ())
glImageTransformParameterfvHPFunPtr

glImageTransformParameterfvHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glImageTransformParameterfvHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glImageTransformParameterfvHPFunPtr = 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 "glImageTransformParameterfvHP")

{-# NOINLINE glImageTransformParameterfvHPFunPtr #-}

-- | Usage: @'glImageTransformParameteriHP' target pname param@
--
-- The parameter @target@ is a @ImageTransformTargetHP@.
--
-- The parameter @pname@ is a @ImageTransformPNameHP@.


glImageTransformParameteriHP :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
glImageTransformParameteriHP :: GLenum -> GLenum -> GLint -> m ()
glImageTransformParameteriHP = 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 ())
glImageTransformParameteriHPFunPtr

glImageTransformParameteriHPFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glImageTransformParameteriHPFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
glImageTransformParameteriHPFunPtr = 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 "glImageTransformParameteriHP")

{-# NOINLINE glImageTransformParameteriHPFunPtr #-}

-- | Usage: @'glImageTransformParameterivHP' target pname params@
--
-- The parameter @target@ is a @ImageTransformTargetHP@.
--
-- The parameter @pname@ is a @ImageTransformPNameHP@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glImageTransformParameterivHP :: GLenum -> GLenum -> Ptr GLint -> m ()
glImageTransformParameterivHP = 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 ())
glImageTransformParameterivHPFunPtr

glImageTransformParameterivHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glImageTransformParameterivHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glImageTransformParameterivHPFunPtr = 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 "glImageTransformParameterivHP")

{-# NOINLINE glImageTransformParameterivHPFunPtr #-}

pattern $bGL_AVERAGE_HP :: a
$mGL_AVERAGE_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_AVERAGE_HP = 0x8160

pattern $bGL_CUBIC_HP :: a
$mGL_CUBIC_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_CUBIC_HP = 0x815F

pattern $bGL_IMAGE_CUBIC_WEIGHT_HP :: a
$mGL_IMAGE_CUBIC_WEIGHT_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E

pattern $bGL_IMAGE_MAG_FILTER_HP :: a
$mGL_IMAGE_MAG_FILTER_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_MAG_FILTER_HP = 0x815C

pattern $bGL_IMAGE_MIN_FILTER_HP :: a
$mGL_IMAGE_MIN_FILTER_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_MIN_FILTER_HP = 0x815D

pattern $bGL_IMAGE_ROTATE_ANGLE_HP :: a
$mGL_IMAGE_ROTATE_ANGLE_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_ROTATE_ANGLE_HP = 0x8159

pattern $bGL_IMAGE_ROTATE_ORIGIN_X_HP :: a
$mGL_IMAGE_ROTATE_ORIGIN_X_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A

pattern $bGL_IMAGE_ROTATE_ORIGIN_Y_HP :: a
$mGL_IMAGE_ROTATE_ORIGIN_Y_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B

pattern $bGL_IMAGE_SCALE_X_HP :: a
$mGL_IMAGE_SCALE_X_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_SCALE_X_HP = 0x8155

pattern $bGL_IMAGE_SCALE_Y_HP :: a
$mGL_IMAGE_SCALE_Y_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_SCALE_Y_HP = 0x8156

pattern $bGL_IMAGE_TRANSFORM_2D_HP :: a
$mGL_IMAGE_TRANSFORM_2D_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_TRANSFORM_2D_HP = 0x8161

pattern $bGL_IMAGE_TRANSLATE_X_HP :: a
$mGL_IMAGE_TRANSLATE_X_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_TRANSLATE_X_HP = 0x8157

pattern $bGL_IMAGE_TRANSLATE_Y_HP :: a
$mGL_IMAGE_TRANSLATE_Y_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_IMAGE_TRANSLATE_Y_HP = 0x8158

pattern $bGL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP :: a
$mGL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162

pattern $bGL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP :: a
$mGL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163