-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.ATI.FragmentShader (
  -- * Extension Support
    gl_ATI_fragment_shader

  -- * GL_ATI_fragment_shader
  , glAlphaFragmentOp1ATI
  , glAlphaFragmentOp2ATI
  , glAlphaFragmentOp3ATI
  , glBeginFragmentShaderATI
  , glBindFragmentShaderATI
  , glColorFragmentOp1ATI
  , glColorFragmentOp2ATI
  , glColorFragmentOp3ATI
  , glDeleteFragmentShaderATI
  , glEndFragmentShaderATI
  , glGenFragmentShadersATI
  , glPassTexCoordATI
  , glSampleMapATI
  , glSetFragmentShaderConstantATI
  , pattern GL_2X_BIT_ATI
  , pattern GL_4X_BIT_ATI
  , pattern GL_8X_BIT_ATI
  , pattern GL_ADD_ATI
  , pattern GL_BIAS_BIT_ATI
  , pattern GL_BLUE_BIT_ATI
  , pattern GL_CND0_ATI
  , pattern GL_CND_ATI
  , pattern GL_COLOR_ALPHA_PAIRING_ATI
  , pattern GL_COMP_BIT_ATI
  , pattern GL_CON_0_ATI
  , pattern GL_CON_10_ATI
  , pattern GL_CON_11_ATI
  , pattern GL_CON_12_ATI
  , pattern GL_CON_13_ATI
  , pattern GL_CON_14_ATI
  , pattern GL_CON_15_ATI
  , pattern GL_CON_16_ATI
  , pattern GL_CON_17_ATI
  , pattern GL_CON_18_ATI
  , pattern GL_CON_19_ATI
  , pattern GL_CON_1_ATI
  , pattern GL_CON_20_ATI
  , pattern GL_CON_21_ATI
  , pattern GL_CON_22_ATI
  , pattern GL_CON_23_ATI
  , pattern GL_CON_24_ATI
  , pattern GL_CON_25_ATI
  , pattern GL_CON_26_ATI
  , pattern GL_CON_27_ATI
  , pattern GL_CON_28_ATI
  , pattern GL_CON_29_ATI
  , pattern GL_CON_2_ATI
  , pattern GL_CON_30_ATI
  , pattern GL_CON_31_ATI
  , pattern GL_CON_3_ATI
  , pattern GL_CON_4_ATI
  , pattern GL_CON_5_ATI
  , pattern GL_CON_6_ATI
  , pattern GL_CON_7_ATI
  , pattern GL_CON_8_ATI
  , pattern GL_CON_9_ATI
  , pattern GL_DOT2_ADD_ATI
  , pattern GL_DOT3_ATI
  , pattern GL_DOT4_ATI
  , pattern GL_EIGHTH_BIT_ATI
  , pattern GL_FRAGMENT_SHADER_ATI
  , pattern GL_GREEN_BIT_ATI
  , pattern GL_HALF_BIT_ATI
  , pattern GL_LERP_ATI
  , pattern GL_MAD_ATI
  , pattern GL_MOV_ATI
  , pattern GL_MUL_ATI
  , pattern GL_NEGATE_BIT_ATI
  , pattern GL_NUM_FRAGMENT_CONSTANTS_ATI
  , pattern GL_NUM_FRAGMENT_REGISTERS_ATI
  , pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
  , pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI
  , pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI
  , pattern GL_NUM_LOOPBACK_COMPONENTS_ATI
  , pattern GL_NUM_PASSES_ATI
  , pattern GL_QUARTER_BIT_ATI
  , pattern GL_RED_BIT_ATI
  , pattern GL_REG_0_ATI
  , pattern GL_REG_10_ATI
  , pattern GL_REG_11_ATI
  , pattern GL_REG_12_ATI
  , pattern GL_REG_13_ATI
  , pattern GL_REG_14_ATI
  , pattern GL_REG_15_ATI
  , pattern GL_REG_16_ATI
  , pattern GL_REG_17_ATI
  , pattern GL_REG_18_ATI
  , pattern GL_REG_19_ATI
  , pattern GL_REG_1_ATI
  , pattern GL_REG_20_ATI
  , pattern GL_REG_21_ATI
  , pattern GL_REG_22_ATI
  , pattern GL_REG_23_ATI
  , pattern GL_REG_24_ATI
  , pattern GL_REG_25_ATI
  , pattern GL_REG_26_ATI
  , pattern GL_REG_27_ATI
  , pattern GL_REG_28_ATI
  , pattern GL_REG_29_ATI
  , pattern GL_REG_2_ATI
  , pattern GL_REG_30_ATI
  , pattern GL_REG_31_ATI
  , pattern GL_REG_3_ATI
  , pattern GL_REG_4_ATI
  , pattern GL_REG_5_ATI
  , pattern GL_REG_6_ATI
  , pattern GL_REG_7_ATI
  , pattern GL_REG_8_ATI
  , pattern GL_REG_9_ATI
  , pattern GL_SATURATE_BIT_ATI
  , pattern GL_SECONDARY_INTERPOLATOR_ATI
  , pattern GL_SUB_ATI
  , pattern GL_SWIZZLE_STQ_ATI
  , pattern GL_SWIZZLE_STQ_DQ_ATI
  , pattern GL_SWIZZLE_STRQ_ATI
  , pattern GL_SWIZZLE_STRQ_DQ_ATI
  , pattern GL_SWIZZLE_STR_ATI
  , pattern GL_SWIZZLE_STR_DR_ATI
) 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_ATI_fragment_shader :: Bool
gl_ATI_fragment_shader = member "GL_ATI_fragment_shader" extensions

glAlphaFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glAlphaFragmentOp1ATI = ffienumuintuintuintuintuintIOV glAlphaFragmentOp1ATIFunPtr

glAlphaFragmentOp1ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glAlphaFragmentOp1ATIFunPtr = unsafePerformIO (getProcAddress "glAlphaFragmentOp1ATI")

{-# NOINLINE glAlphaFragmentOp1ATIFunPtr #-}

glAlphaFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glAlphaFragmentOp2ATI = ffienumuintuintuintuintuintuintuintuintIOV glAlphaFragmentOp2ATIFunPtr

glAlphaFragmentOp2ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glAlphaFragmentOp2ATIFunPtr = unsafePerformIO (getProcAddress "glAlphaFragmentOp2ATI")

{-# NOINLINE glAlphaFragmentOp2ATIFunPtr #-}

glAlphaFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glAlphaFragmentOp3ATI = ffienumuintuintuintuintuintuintuintuintuintuintuintIOV glAlphaFragmentOp3ATIFunPtr

glAlphaFragmentOp3ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glAlphaFragmentOp3ATIFunPtr = unsafePerformIO (getProcAddress "glAlphaFragmentOp3ATI")

{-# NOINLINE glAlphaFragmentOp3ATIFunPtr #-}

glBeginFragmentShaderATI :: MonadIO m => m ()
glBeginFragmentShaderATI = ffiIOV glBeginFragmentShaderATIFunPtr

glBeginFragmentShaderATIFunPtr :: FunPtr (IO ())
glBeginFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glBeginFragmentShaderATI")

{-# NOINLINE glBeginFragmentShaderATIFunPtr #-}

glBindFragmentShaderATI :: MonadIO m => GLuint -> m ()
glBindFragmentShaderATI = ffiuintIOV glBindFragmentShaderATIFunPtr

glBindFragmentShaderATIFunPtr :: FunPtr (GLuint -> IO ())
glBindFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glBindFragmentShaderATI")

{-# NOINLINE glBindFragmentShaderATIFunPtr #-}

glColorFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glColorFragmentOp1ATI = ffienumuintuintuintuintuintuintIOV glColorFragmentOp1ATIFunPtr

glColorFragmentOp1ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glColorFragmentOp1ATIFunPtr = unsafePerformIO (getProcAddress "glColorFragmentOp1ATI")

{-# NOINLINE glColorFragmentOp1ATIFunPtr #-}

glColorFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glColorFragmentOp2ATI = ffienumuintuintuintuintuintuintuintuintuintIOV glColorFragmentOp2ATIFunPtr

glColorFragmentOp2ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glColorFragmentOp2ATIFunPtr = unsafePerformIO (getProcAddress "glColorFragmentOp2ATI")

{-# NOINLINE glColorFragmentOp2ATIFunPtr #-}

glColorFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glColorFragmentOp3ATI = ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV glColorFragmentOp3ATIFunPtr

glColorFragmentOp3ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glColorFragmentOp3ATIFunPtr = unsafePerformIO (getProcAddress "glColorFragmentOp3ATI")

{-# NOINLINE glColorFragmentOp3ATIFunPtr #-}

glDeleteFragmentShaderATI :: MonadIO m => GLuint -> m ()
glDeleteFragmentShaderATI = ffiuintIOV glDeleteFragmentShaderATIFunPtr

glDeleteFragmentShaderATIFunPtr :: FunPtr (GLuint -> IO ())
glDeleteFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glDeleteFragmentShaderATI")

{-# NOINLINE glDeleteFragmentShaderATIFunPtr #-}

glEndFragmentShaderATI :: MonadIO m => m ()
glEndFragmentShaderATI = ffiIOV glEndFragmentShaderATIFunPtr

glEndFragmentShaderATIFunPtr :: FunPtr (IO ())
glEndFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glEndFragmentShaderATI")

{-# NOINLINE glEndFragmentShaderATIFunPtr #-}

glGenFragmentShadersATI :: MonadIO m => GLuint -> m GLuint
glGenFragmentShadersATI = ffiuintIOuint glGenFragmentShadersATIFunPtr

glGenFragmentShadersATIFunPtr :: FunPtr (GLuint -> IO GLuint)
glGenFragmentShadersATIFunPtr = unsafePerformIO (getProcAddress "glGenFragmentShadersATI")

{-# NOINLINE glGenFragmentShadersATIFunPtr #-}

glPassTexCoordATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
glPassTexCoordATI = ffiuintuintenumIOV glPassTexCoordATIFunPtr

glPassTexCoordATIFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> IO ())
glPassTexCoordATIFunPtr = unsafePerformIO (getProcAddress "glPassTexCoordATI")

{-# NOINLINE glPassTexCoordATIFunPtr #-}

glSampleMapATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
glSampleMapATI = ffiuintuintenumIOV glSampleMapATIFunPtr

glSampleMapATIFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> IO ())
glSampleMapATIFunPtr = unsafePerformIO (getProcAddress "glSampleMapATI")

{-# NOINLINE glSampleMapATIFunPtr #-}

glSetFragmentShaderConstantATI :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glSetFragmentShaderConstantATI = ffiuintPtrfloatIOV glSetFragmentShaderConstantATIFunPtr

glSetFragmentShaderConstantATIFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glSetFragmentShaderConstantATIFunPtr = unsafePerformIO (getProcAddress "glSetFragmentShaderConstantATI")

{-# NOINLINE glSetFragmentShaderConstantATIFunPtr #-}

pattern GL_2X_BIT_ATI = 0x00000001 :: GLenum

pattern GL_4X_BIT_ATI = 0x00000002 :: GLenum

pattern GL_8X_BIT_ATI = 0x00000004 :: GLenum

pattern GL_ADD_ATI = 0x8963 :: GLenum

pattern GL_BIAS_BIT_ATI = 0x00000008 :: GLenum

pattern GL_BLUE_BIT_ATI = 0x00000004 :: GLenum

pattern GL_CND0_ATI = 0x896B :: GLenum

pattern GL_CND_ATI = 0x896A :: GLenum

pattern GL_COLOR_ALPHA_PAIRING_ATI = 0x8975 :: GLenum

pattern GL_COMP_BIT_ATI = 0x00000002 :: GLenum

pattern GL_CON_0_ATI = 0x8941 :: GLenum

pattern GL_CON_10_ATI = 0x894B :: GLenum

pattern GL_CON_11_ATI = 0x894C :: GLenum

pattern GL_CON_12_ATI = 0x894D :: GLenum

pattern GL_CON_13_ATI = 0x894E :: GLenum

pattern GL_CON_14_ATI = 0x894F :: GLenum

pattern GL_CON_15_ATI = 0x8950 :: GLenum

pattern GL_CON_16_ATI = 0x8951 :: GLenum

pattern GL_CON_17_ATI = 0x8952 :: GLenum

pattern GL_CON_18_ATI = 0x8953 :: GLenum

pattern GL_CON_19_ATI = 0x8954 :: GLenum

pattern GL_CON_1_ATI = 0x8942 :: GLenum

pattern GL_CON_20_ATI = 0x8955 :: GLenum

pattern GL_CON_21_ATI = 0x8956 :: GLenum

pattern GL_CON_22_ATI = 0x8957 :: GLenum

pattern GL_CON_23_ATI = 0x8958 :: GLenum

pattern GL_CON_24_ATI = 0x8959 :: GLenum

pattern GL_CON_25_ATI = 0x895A :: GLenum

pattern GL_CON_26_ATI = 0x895B :: GLenum

pattern GL_CON_27_ATI = 0x895C :: GLenum

pattern GL_CON_28_ATI = 0x895D :: GLenum

pattern GL_CON_29_ATI = 0x895E :: GLenum

pattern GL_CON_2_ATI = 0x8943 :: GLenum

pattern GL_CON_30_ATI = 0x895F :: GLenum

pattern GL_CON_31_ATI = 0x8960 :: GLenum

pattern GL_CON_3_ATI = 0x8944 :: GLenum

pattern GL_CON_4_ATI = 0x8945 :: GLenum

pattern GL_CON_5_ATI = 0x8946 :: GLenum

pattern GL_CON_6_ATI = 0x8947 :: GLenum

pattern GL_CON_7_ATI = 0x8948 :: GLenum

pattern GL_CON_8_ATI = 0x8949 :: GLenum

pattern GL_CON_9_ATI = 0x894A :: GLenum

pattern GL_DOT2_ADD_ATI = 0x896C :: GLenum

pattern GL_DOT3_ATI = 0x8966 :: GLenum

pattern GL_DOT4_ATI = 0x8967 :: GLenum

pattern GL_EIGHTH_BIT_ATI = 0x00000020 :: GLenum

pattern GL_FRAGMENT_SHADER_ATI = 0x8920 :: GLenum

pattern GL_GREEN_BIT_ATI = 0x00000002 :: GLenum

pattern GL_HALF_BIT_ATI = 0x00000008 :: GLenum

pattern GL_LERP_ATI = 0x8969 :: GLenum

pattern GL_MAD_ATI = 0x8968 :: GLenum

pattern GL_MOV_ATI = 0x8961 :: GLenum

pattern GL_MUL_ATI = 0x8964 :: GLenum

pattern GL_NEGATE_BIT_ATI = 0x00000004 :: GLenum

pattern GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F :: GLenum

pattern GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E :: GLenum

pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973 :: GLenum

pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971 :: GLenum

pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972 :: GLenum

pattern GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974 :: GLenum

pattern GL_NUM_PASSES_ATI = 0x8970 :: GLenum

pattern GL_QUARTER_BIT_ATI = 0x00000010 :: GLenum

pattern GL_RED_BIT_ATI = 0x00000001 :: GLenum

pattern GL_REG_0_ATI = 0x8921 :: GLenum

pattern GL_REG_10_ATI = 0x892B :: GLenum

pattern GL_REG_11_ATI = 0x892C :: GLenum

pattern GL_REG_12_ATI = 0x892D :: GLenum

pattern GL_REG_13_ATI = 0x892E :: GLenum

pattern GL_REG_14_ATI = 0x892F :: GLenum

pattern GL_REG_15_ATI = 0x8930 :: GLenum

pattern GL_REG_16_ATI = 0x8931 :: GLenum

pattern GL_REG_17_ATI = 0x8932 :: GLenum

pattern GL_REG_18_ATI = 0x8933 :: GLenum

pattern GL_REG_19_ATI = 0x8934 :: GLenum

pattern GL_REG_1_ATI = 0x8922 :: GLenum

pattern GL_REG_20_ATI = 0x8935 :: GLenum

pattern GL_REG_21_ATI = 0x8936 :: GLenum

pattern GL_REG_22_ATI = 0x8937 :: GLenum

pattern GL_REG_23_ATI = 0x8938 :: GLenum

pattern GL_REG_24_ATI = 0x8939 :: GLenum

pattern GL_REG_25_ATI = 0x893A :: GLenum

pattern GL_REG_26_ATI = 0x893B :: GLenum

pattern GL_REG_27_ATI = 0x893C :: GLenum

pattern GL_REG_28_ATI = 0x893D :: GLenum

pattern GL_REG_29_ATI = 0x893E :: GLenum

pattern GL_REG_2_ATI = 0x8923 :: GLenum

pattern GL_REG_30_ATI = 0x893F :: GLenum

pattern GL_REG_31_ATI = 0x8940 :: GLenum

pattern GL_REG_3_ATI = 0x8924 :: GLenum

pattern GL_REG_4_ATI = 0x8925 :: GLenum

pattern GL_REG_5_ATI = 0x8926 :: GLenum

pattern GL_REG_6_ATI = 0x8927 :: GLenum

pattern GL_REG_7_ATI = 0x8928 :: GLenum

pattern GL_REG_8_ATI = 0x8929 :: GLenum

pattern GL_REG_9_ATI = 0x892A :: GLenum

pattern GL_SATURATE_BIT_ATI = 0x00000040 :: GLenum

pattern GL_SECONDARY_INTERPOLATOR_ATI = 0x896D :: GLenum

pattern GL_SUB_ATI = 0x8965 :: GLenum

pattern GL_SWIZZLE_STQ_ATI = 0x8977 :: GLenum

pattern GL_SWIZZLE_STQ_DQ_ATI = 0x8979 :: GLenum

pattern GL_SWIZZLE_STRQ_ATI = 0x897A :: GLenum

pattern GL_SWIZZLE_STRQ_DQ_ATI = 0x897B :: GLenum

pattern GL_SWIZZLE_STR_ATI = 0x8976 :: GLenum

pattern GL_SWIZZLE_STR_DR_ATI = 0x8978 :: GLenum