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

  -- * GL_EXT_vertex_shader
  , glBeginVertexShaderEXT
  , glBindLightParameterEXT
  , glBindMaterialParameterEXT
  , glBindParameterEXT
  , glBindTexGenParameterEXT
  , glBindTextureUnitParameterEXT
  , glBindVertexShaderEXT
  , glDeleteVertexShaderEXT
  , glDisableVariantClientStateEXT
  , glEnableVariantClientStateEXT
  , glEndVertexShaderEXT
  , glExtractComponentEXT
  , glGenSymbolsEXT
  , glGenVertexShadersEXT
  , glGetInvariantBooleanvEXT
  , glGetInvariantFloatvEXT
  , glGetInvariantIntegervEXT
  , glGetLocalConstantBooleanvEXT
  , glGetLocalConstantFloatvEXT
  , glGetLocalConstantIntegervEXT
  , glGetVariantBooleanvEXT
  , glGetVariantFloatvEXT
  , glGetVariantIntegervEXT
  , glGetVariantPointervEXT
  , glInsertComponentEXT
  , glIsVariantEnabledEXT
  , glSetInvariantEXT
  , glSetLocalConstantEXT
  , glShaderOp1EXT
  , glShaderOp2EXT
  , glShaderOp3EXT
  , glSwizzleEXT
  , glVariantPointerEXT
  , glVariantbvEXT
  , glVariantdvEXT
  , glVariantfvEXT
  , glVariantivEXT
  , glVariantsvEXT
  , glVariantubvEXT
  , glVariantuivEXT
  , glVariantusvEXT
  , glWriteMaskEXT
  , pattern GL_CURRENT_VERTEX_EXT
  , pattern GL_FULL_RANGE_EXT
  , pattern GL_INVARIANT_DATATYPE_EXT
  , pattern GL_INVARIANT_EXT
  , pattern GL_INVARIANT_VALUE_EXT
  , pattern GL_LOCAL_CONSTANT_DATATYPE_EXT
  , pattern GL_LOCAL_CONSTANT_EXT
  , pattern GL_LOCAL_CONSTANT_VALUE_EXT
  , pattern GL_LOCAL_EXT
  , pattern GL_MATRIX_EXT
  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT
  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT
  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT
  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT
  , pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT
  , pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT
  , pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT
  , pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
  , pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT
  , pattern GL_MVP_MATRIX_EXT
  , pattern GL_NEGATIVE_ONE_EXT
  , pattern GL_NEGATIVE_W_EXT
  , pattern GL_NEGATIVE_X_EXT
  , pattern GL_NEGATIVE_Y_EXT
  , pattern GL_NEGATIVE_Z_EXT
  , pattern GL_NORMALIZED_RANGE_EXT
  , pattern GL_ONE_EXT
  , pattern GL_OP_ADD_EXT
  , pattern GL_OP_CLAMP_EXT
  , pattern GL_OP_CROSS_PRODUCT_EXT
  , pattern GL_OP_DOT3_EXT
  , pattern GL_OP_DOT4_EXT
  , pattern GL_OP_EXP_BASE_2_EXT
  , pattern GL_OP_FLOOR_EXT
  , pattern GL_OP_FRAC_EXT
  , pattern GL_OP_INDEX_EXT
  , pattern GL_OP_LOG_BASE_2_EXT
  , pattern GL_OP_MADD_EXT
  , pattern GL_OP_MAX_EXT
  , pattern GL_OP_MIN_EXT
  , pattern GL_OP_MOV_EXT
  , pattern GL_OP_MULTIPLY_MATRIX_EXT
  , pattern GL_OP_MUL_EXT
  , pattern GL_OP_NEGATE_EXT
  , pattern GL_OP_POWER_EXT
  , pattern GL_OP_RECIP_EXT
  , pattern GL_OP_RECIP_SQRT_EXT
  , pattern GL_OP_ROUND_EXT
  , pattern GL_OP_SET_GE_EXT
  , pattern GL_OP_SET_LT_EXT
  , pattern GL_OP_SUB_EXT
  , pattern GL_OUTPUT_COLOR0_EXT
  , pattern GL_OUTPUT_COLOR1_EXT
  , pattern GL_OUTPUT_FOG_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD0_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD10_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD11_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD12_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD13_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD14_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD15_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD16_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD17_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD18_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD19_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD1_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD20_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD21_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD22_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD23_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD24_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD25_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD26_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD27_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD28_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD29_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD2_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD30_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD31_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD3_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD4_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD5_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD6_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD7_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD8_EXT
  , pattern GL_OUTPUT_TEXTURE_COORD9_EXT
  , pattern GL_OUTPUT_VERTEX_EXT
  , pattern GL_SCALAR_EXT
  , pattern GL_VARIANT_ARRAY_EXT
  , pattern GL_VARIANT_ARRAY_POINTER_EXT
  , pattern GL_VARIANT_ARRAY_STRIDE_EXT
  , pattern GL_VARIANT_ARRAY_TYPE_EXT
  , pattern GL_VARIANT_DATATYPE_EXT
  , pattern GL_VARIANT_EXT
  , pattern GL_VARIANT_VALUE_EXT
  , pattern GL_VECTOR_EXT
  , pattern GL_VERTEX_SHADER_BINDING_EXT
  , pattern GL_VERTEX_SHADER_EXT
  , pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT
  , pattern GL_VERTEX_SHADER_INVARIANTS_EXT
  , pattern GL_VERTEX_SHADER_LOCALS_EXT
  , pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
  , pattern GL_VERTEX_SHADER_OPTIMIZED_EXT
  , pattern GL_VERTEX_SHADER_VARIANTS_EXT
  , pattern GL_W_EXT
  , pattern GL_X_EXT
  , pattern GL_Y_EXT
  , pattern GL_ZERO_EXT
  , pattern GL_Z_EXT
) 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_vertex_shader :: Bool
gl_EXT_vertex_shader = member "GL_EXT_vertex_shader" extensions

glBeginVertexShaderEXT :: MonadIO m => m ()
glBeginVertexShaderEXT = ffiIOV glBeginVertexShaderEXTFunPtr

glBeginVertexShaderEXTFunPtr :: FunPtr (IO ())
glBeginVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glBeginVertexShaderEXT")

{-# NOINLINE glBeginVertexShaderEXTFunPtr #-}

glBindLightParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
glBindLightParameterEXT = ffienumenumIOuint glBindLightParameterEXTFunPtr

glBindLightParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO GLuint)
glBindLightParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindLightParameterEXT")

{-# NOINLINE glBindLightParameterEXTFunPtr #-}

glBindMaterialParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
glBindMaterialParameterEXT = ffienumenumIOuint glBindMaterialParameterEXTFunPtr

glBindMaterialParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO GLuint)
glBindMaterialParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindMaterialParameterEXT")

{-# NOINLINE glBindMaterialParameterEXTFunPtr #-}

glBindParameterEXT :: MonadIO m => GLenum -> m GLuint
glBindParameterEXT = ffienumIOuint glBindParameterEXTFunPtr

glBindParameterEXTFunPtr :: FunPtr (GLenum -> IO GLuint)
glBindParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindParameterEXT")

{-# NOINLINE glBindParameterEXTFunPtr #-}

glBindTexGenParameterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> m GLuint
glBindTexGenParameterEXT = ffienumenumenumIOuint glBindTexGenParameterEXTFunPtr

glBindTexGenParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint)
glBindTexGenParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindTexGenParameterEXT")

{-# NOINLINE glBindTexGenParameterEXTFunPtr #-}

glBindTextureUnitParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
glBindTextureUnitParameterEXT = ffienumenumIOuint glBindTextureUnitParameterEXTFunPtr

glBindTextureUnitParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO GLuint)
glBindTextureUnitParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnitParameterEXT")

{-# NOINLINE glBindTextureUnitParameterEXTFunPtr #-}

glBindVertexShaderEXT :: MonadIO m => GLuint -> m ()
glBindVertexShaderEXT = ffiuintIOV glBindVertexShaderEXTFunPtr

glBindVertexShaderEXTFunPtr :: FunPtr (GLuint -> IO ())
glBindVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glBindVertexShaderEXT")

{-# NOINLINE glBindVertexShaderEXTFunPtr #-}

glDeleteVertexShaderEXT :: MonadIO m => GLuint -> m ()
glDeleteVertexShaderEXT = ffiuintIOV glDeleteVertexShaderEXTFunPtr

glDeleteVertexShaderEXTFunPtr :: FunPtr (GLuint -> IO ())
glDeleteVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexShaderEXT")

{-# NOINLINE glDeleteVertexShaderEXTFunPtr #-}

glDisableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
glDisableVariantClientStateEXT = ffiuintIOV glDisableVariantClientStateEXTFunPtr

glDisableVariantClientStateEXTFunPtr :: FunPtr (GLuint -> IO ())
glDisableVariantClientStateEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVariantClientStateEXT")

{-# NOINLINE glDisableVariantClientStateEXTFunPtr #-}

glEnableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
glEnableVariantClientStateEXT = ffiuintIOV glEnableVariantClientStateEXTFunPtr

glEnableVariantClientStateEXTFunPtr :: FunPtr (GLuint -> IO ())
glEnableVariantClientStateEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVariantClientStateEXT")

{-# NOINLINE glEnableVariantClientStateEXTFunPtr #-}

glEndVertexShaderEXT :: MonadIO m => m ()
glEndVertexShaderEXT = ffiIOV glEndVertexShaderEXTFunPtr

glEndVertexShaderEXTFunPtr :: FunPtr (IO ())
glEndVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glEndVertexShaderEXT")

{-# NOINLINE glEndVertexShaderEXTFunPtr #-}

glExtractComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glExtractComponentEXT = ffiuintuintuintIOV glExtractComponentEXTFunPtr

glExtractComponentEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glExtractComponentEXTFunPtr = unsafePerformIO (getProcAddress "glExtractComponentEXT")

{-# NOINLINE glExtractComponentEXTFunPtr #-}

glGenSymbolsEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m GLuint
glGenSymbolsEXT = ffienumenumenumuintIOuint glGenSymbolsEXTFunPtr

glGenSymbolsEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint)
glGenSymbolsEXTFunPtr = unsafePerformIO (getProcAddress "glGenSymbolsEXT")

{-# NOINLINE glGenSymbolsEXTFunPtr #-}

glGenVertexShadersEXT :: MonadIO m => GLuint -> m GLuint
glGenVertexShadersEXT = ffiuintIOuint glGenVertexShadersEXTFunPtr

glGenVertexShadersEXTFunPtr :: FunPtr (GLuint -> IO GLuint)
glGenVertexShadersEXTFunPtr = unsafePerformIO (getProcAddress "glGenVertexShadersEXT")

{-# NOINLINE glGenVertexShadersEXTFunPtr #-}

glGetInvariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
glGetInvariantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetInvariantBooleanvEXTFunPtr

glGetInvariantBooleanvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
glGetInvariantBooleanvEXTFunPtr = unsafePerformIO (getProcAddress "glGetInvariantBooleanvEXT")

{-# NOINLINE glGetInvariantBooleanvEXTFunPtr #-}

glGetInvariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetInvariantFloatvEXT = ffiuintenumPtrfloatIOV glGetInvariantFloatvEXTFunPtr

glGetInvariantFloatvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetInvariantFloatvEXTFunPtr = unsafePerformIO (getProcAddress "glGetInvariantFloatvEXT")

{-# NOINLINE glGetInvariantFloatvEXTFunPtr #-}

glGetInvariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetInvariantIntegervEXT = ffiuintenumPtrintIOV glGetInvariantIntegervEXTFunPtr

glGetInvariantIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetInvariantIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetInvariantIntegervEXT")

{-# NOINLINE glGetInvariantIntegervEXTFunPtr #-}

glGetLocalConstantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
glGetLocalConstantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetLocalConstantBooleanvEXTFunPtr

glGetLocalConstantBooleanvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
glGetLocalConstantBooleanvEXTFunPtr = unsafePerformIO (getProcAddress "glGetLocalConstantBooleanvEXT")

{-# NOINLINE glGetLocalConstantBooleanvEXTFunPtr #-}

glGetLocalConstantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetLocalConstantFloatvEXT = ffiuintenumPtrfloatIOV glGetLocalConstantFloatvEXTFunPtr

glGetLocalConstantFloatvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetLocalConstantFloatvEXTFunPtr = unsafePerformIO (getProcAddress "glGetLocalConstantFloatvEXT")

{-# NOINLINE glGetLocalConstantFloatvEXTFunPtr #-}

glGetLocalConstantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetLocalConstantIntegervEXT = ffiuintenumPtrintIOV glGetLocalConstantIntegervEXTFunPtr

glGetLocalConstantIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetLocalConstantIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetLocalConstantIntegervEXT")

{-# NOINLINE glGetLocalConstantIntegervEXTFunPtr #-}

glGetVariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
glGetVariantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetVariantBooleanvEXTFunPtr

glGetVariantBooleanvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
glGetVariantBooleanvEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantBooleanvEXT")

{-# NOINLINE glGetVariantBooleanvEXTFunPtr #-}

glGetVariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVariantFloatvEXT = ffiuintenumPtrfloatIOV glGetVariantFloatvEXTFunPtr

glGetVariantFloatvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetVariantFloatvEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantFloatvEXT")

{-# NOINLINE glGetVariantFloatvEXTFunPtr #-}

glGetVariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVariantIntegervEXT = ffiuintenumPtrintIOV glGetVariantIntegervEXTFunPtr

glGetVariantIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetVariantIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantIntegervEXT")

{-# NOINLINE glGetVariantIntegervEXTFunPtr #-}

glGetVariantPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
glGetVariantPointervEXT = ffiuintenumPtrVIOV glGetVariantPointervEXTFunPtr

glGetVariantPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
glGetVariantPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantPointervEXT")

{-# NOINLINE glGetVariantPointervEXTFunPtr #-}

glInsertComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
glInsertComponentEXT = ffiuintuintuintIOV glInsertComponentEXTFunPtr

glInsertComponentEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
glInsertComponentEXTFunPtr = unsafePerformIO (getProcAddress "glInsertComponentEXT")

{-# NOINLINE glInsertComponentEXTFunPtr #-}

glIsVariantEnabledEXT :: MonadIO m => GLuint -> GLenum -> m GLboolean
glIsVariantEnabledEXT = ffiuintenumIOboolean glIsVariantEnabledEXTFunPtr

glIsVariantEnabledEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO GLboolean)
glIsVariantEnabledEXTFunPtr = unsafePerformIO (getProcAddress "glIsVariantEnabledEXT")

{-# NOINLINE glIsVariantEnabledEXTFunPtr #-}

glSetInvariantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
glSetInvariantEXT = ffiuintenumPtrVIOV glSetInvariantEXTFunPtr

glSetInvariantEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
glSetInvariantEXTFunPtr = unsafePerformIO (getProcAddress "glSetInvariantEXT")

{-# NOINLINE glSetInvariantEXTFunPtr #-}

glSetLocalConstantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
glSetLocalConstantEXT = ffiuintenumPtrVIOV glSetLocalConstantEXTFunPtr

glSetLocalConstantEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
glSetLocalConstantEXTFunPtr = unsafePerformIO (getProcAddress "glSetLocalConstantEXT")

{-# NOINLINE glSetLocalConstantEXTFunPtr #-}

glShaderOp1EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
glShaderOp1EXT = ffienumuintuintIOV glShaderOp1EXTFunPtr

glShaderOp1EXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
glShaderOp1EXTFunPtr = unsafePerformIO (getProcAddress "glShaderOp1EXT")

{-# NOINLINE glShaderOp1EXTFunPtr #-}

glShaderOp2EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> m ()
glShaderOp2EXT = ffienumuintuintuintIOV glShaderOp2EXTFunPtr

glShaderOp2EXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ())
glShaderOp2EXTFunPtr = unsafePerformIO (getProcAddress "glShaderOp2EXT")

{-# NOINLINE glShaderOp2EXTFunPtr #-}

glShaderOp3EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glShaderOp3EXT = ffienumuintuintuintuintIOV glShaderOp3EXTFunPtr

glShaderOp3EXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glShaderOp3EXTFunPtr = unsafePerformIO (getProcAddress "glShaderOp3EXT")

{-# NOINLINE glShaderOp3EXTFunPtr #-}

glSwizzleEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glSwizzleEXT = ffiuintuintenumenumenumenumIOV glSwizzleEXTFunPtr

glSwizzleEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glSwizzleEXTFunPtr = unsafePerformIO (getProcAddress "glSwizzleEXT")

{-# NOINLINE glSwizzleEXTFunPtr #-}

glVariantPointerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr () -> m ()
glVariantPointerEXT = ffiuintenumuintPtrVIOV glVariantPointerEXTFunPtr

glVariantPointerEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr () -> IO ())
glVariantPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVariantPointerEXT")

{-# NOINLINE glVariantPointerEXTFunPtr #-}

glVariantbvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
glVariantbvEXT = ffiuintPtrbyteIOV glVariantbvEXTFunPtr

glVariantbvEXTFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
glVariantbvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantbvEXT")

{-# NOINLINE glVariantbvEXTFunPtr #-}

glVariantdvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVariantdvEXT = ffiuintPtrdoubleIOV glVariantdvEXTFunPtr

glVariantdvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVariantdvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantdvEXT")

{-# NOINLINE glVariantdvEXTFunPtr #-}

glVariantfvEXT :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
glVariantfvEXT = ffiuintPtrfloatIOV glVariantfvEXTFunPtr

glVariantfvEXTFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
glVariantfvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantfvEXT")

{-# NOINLINE glVariantfvEXTFunPtr #-}

glVariantivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
glVariantivEXT = ffiuintPtrintIOV glVariantivEXTFunPtr

glVariantivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
glVariantivEXTFunPtr = unsafePerformIO (getProcAddress "glVariantivEXT")

{-# NOINLINE glVariantivEXTFunPtr #-}

glVariantsvEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
glVariantsvEXT = ffiuintPtrshortIOV glVariantsvEXTFunPtr

glVariantsvEXTFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
glVariantsvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantsvEXT")

{-# NOINLINE glVariantsvEXTFunPtr #-}

glVariantubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
glVariantubvEXT = ffiuintPtrubyteIOV glVariantubvEXTFunPtr

glVariantubvEXTFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
glVariantubvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantubvEXT")

{-# NOINLINE glVariantubvEXTFunPtr #-}

glVariantuivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
glVariantuivEXT = ffiuintPtruintIOV glVariantuivEXTFunPtr

glVariantuivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
glVariantuivEXTFunPtr = unsafePerformIO (getProcAddress "glVariantuivEXT")

{-# NOINLINE glVariantuivEXTFunPtr #-}

glVariantusvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
glVariantusvEXT = ffiuintPtrushortIOV glVariantusvEXTFunPtr

glVariantusvEXTFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
glVariantusvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantusvEXT")

{-# NOINLINE glVariantusvEXTFunPtr #-}

glWriteMaskEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
glWriteMaskEXT = ffiuintuintenumenumenumenumIOV glWriteMaskEXTFunPtr

glWriteMaskEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glWriteMaskEXTFunPtr = unsafePerformIO (getProcAddress "glWriteMaskEXT")

{-# NOINLINE glWriteMaskEXTFunPtr #-}

pattern GL_CURRENT_VERTEX_EXT = 0x87E2 :: GLenum

pattern GL_FULL_RANGE_EXT = 0x87E1 :: GLenum

pattern GL_INVARIANT_DATATYPE_EXT = 0x87EB :: GLenum

pattern GL_INVARIANT_EXT = 0x87C2 :: GLenum

pattern GL_INVARIANT_VALUE_EXT = 0x87EA :: GLenum

pattern GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED :: GLenum

pattern GL_LOCAL_CONSTANT_EXT = 0x87C3 :: GLenum

pattern GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC :: GLenum

pattern GL_LOCAL_EXT = 0x87C4 :: GLenum

pattern GL_MATRIX_EXT = 0x87C0 :: GLenum

pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA :: GLenum

pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD :: GLenum

pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE :: GLenum

pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC :: GLenum

pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB :: GLenum

pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5 :: GLenum

pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7 :: GLenum

pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9 :: GLenum

pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8 :: GLenum

pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6 :: GLenum

pattern GL_MVP_MATRIX_EXT = 0x87E3 :: GLenum

pattern GL_NEGATIVE_ONE_EXT = 0x87DF :: GLenum

pattern GL_NEGATIVE_W_EXT = 0x87DC :: GLenum

pattern GL_NEGATIVE_X_EXT = 0x87D9 :: GLenum

pattern GL_NEGATIVE_Y_EXT = 0x87DA :: GLenum

pattern GL_NEGATIVE_Z_EXT = 0x87DB :: GLenum

pattern GL_NORMALIZED_RANGE_EXT = 0x87E0 :: GLenum

pattern GL_ONE_EXT = 0x87DE :: GLenum

pattern GL_OP_ADD_EXT = 0x8787 :: GLenum

pattern GL_OP_CLAMP_EXT = 0x878E :: GLenum

pattern GL_OP_CROSS_PRODUCT_EXT = 0x8797 :: GLenum

pattern GL_OP_DOT3_EXT = 0x8784 :: GLenum

pattern GL_OP_DOT4_EXT = 0x8785 :: GLenum

pattern GL_OP_EXP_BASE_2_EXT = 0x8791 :: GLenum

pattern GL_OP_FLOOR_EXT = 0x878F :: GLenum

pattern GL_OP_FRAC_EXT = 0x8789 :: GLenum

pattern GL_OP_INDEX_EXT = 0x8782 :: GLenum

pattern GL_OP_LOG_BASE_2_EXT = 0x8792 :: GLenum

pattern GL_OP_MADD_EXT = 0x8788 :: GLenum

pattern GL_OP_MAX_EXT = 0x878A :: GLenum

pattern GL_OP_MIN_EXT = 0x878B :: GLenum

pattern GL_OP_MOV_EXT = 0x8799 :: GLenum

pattern GL_OP_MULTIPLY_MATRIX_EXT = 0x8798 :: GLenum

pattern GL_OP_MUL_EXT = 0x8786 :: GLenum

pattern GL_OP_NEGATE_EXT = 0x8783 :: GLenum

pattern GL_OP_POWER_EXT = 0x8793 :: GLenum

pattern GL_OP_RECIP_EXT = 0x8794 :: GLenum

pattern GL_OP_RECIP_SQRT_EXT = 0x8795 :: GLenum

pattern GL_OP_ROUND_EXT = 0x8790 :: GLenum

pattern GL_OP_SET_GE_EXT = 0x878C :: GLenum

pattern GL_OP_SET_LT_EXT = 0x878D :: GLenum

pattern GL_OP_SUB_EXT = 0x8796 :: GLenum

pattern GL_OUTPUT_COLOR0_EXT = 0x879B :: GLenum

pattern GL_OUTPUT_COLOR1_EXT = 0x879C :: GLenum

pattern GL_OUTPUT_FOG_EXT = 0x87BD :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5 :: GLenum

pattern GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6 :: GLenum

pattern GL_OUTPUT_VERTEX_EXT = 0x879A :: GLenum

pattern GL_SCALAR_EXT = 0x87BE :: GLenum

pattern GL_VARIANT_ARRAY_EXT = 0x87E8 :: GLenum

pattern GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9 :: GLenum

pattern GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6 :: GLenum

pattern GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7 :: GLenum

pattern GL_VARIANT_DATATYPE_EXT = 0x87E5 :: GLenum

pattern GL_VARIANT_EXT = 0x87C1 :: GLenum

pattern GL_VARIANT_VALUE_EXT = 0x87E4 :: GLenum

pattern GL_VECTOR_EXT = 0x87BF :: GLenum

pattern GL_VERTEX_SHADER_BINDING_EXT = 0x8781 :: GLenum

pattern GL_VERTEX_SHADER_EXT = 0x8780 :: GLenum

pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF :: GLenum

pattern GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1 :: GLenum

pattern GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3 :: GLenum

pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2 :: GLenum

pattern GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4 :: GLenum

pattern GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0 :: GLenum

pattern GL_W_EXT = 0x87D8 :: GLenum

pattern GL_X_EXT = 0x87D5 :: GLenum

pattern GL_Y_EXT = 0x87D6 :: GLenum

pattern GL_ZERO_EXT = 0x87DD :: GLenum

pattern GL_Z_EXT = 0x87D7 :: GLenum