-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.ARB.VertexBlend (
  -- * Extension Support
    gl_ARB_vertex_blend

  -- * GL_ARB_vertex_blend
  , glVertexBlendARB
  , glWeightPointerARB
  , glWeightbvARB
  , glWeightdvARB
  , glWeightfvARB
  , glWeightivARB
  , glWeightsvARB
  , glWeightubvARB
  , glWeightuivARB
  , glWeightusvARB
  , pattern GL_ACTIVE_VERTEX_UNITS_ARB
  , pattern GL_CURRENT_WEIGHT_ARB
  , pattern GL_MAX_VERTEX_UNITS_ARB
  , pattern GL_MODELVIEW0_ARB
  , pattern GL_MODELVIEW10_ARB
  , pattern GL_MODELVIEW11_ARB
  , pattern GL_MODELVIEW12_ARB
  , pattern GL_MODELVIEW13_ARB
  , pattern GL_MODELVIEW14_ARB
  , pattern GL_MODELVIEW15_ARB
  , pattern GL_MODELVIEW16_ARB
  , pattern GL_MODELVIEW17_ARB
  , pattern GL_MODELVIEW18_ARB
  , pattern GL_MODELVIEW19_ARB
  , pattern GL_MODELVIEW1_ARB
  , pattern GL_MODELVIEW20_ARB
  , pattern GL_MODELVIEW21_ARB
  , pattern GL_MODELVIEW22_ARB
  , pattern GL_MODELVIEW23_ARB
  , pattern GL_MODELVIEW24_ARB
  , pattern GL_MODELVIEW25_ARB
  , pattern GL_MODELVIEW26_ARB
  , pattern GL_MODELVIEW27_ARB
  , pattern GL_MODELVIEW28_ARB
  , pattern GL_MODELVIEW29_ARB
  , pattern GL_MODELVIEW2_ARB
  , pattern GL_MODELVIEW30_ARB
  , pattern GL_MODELVIEW31_ARB
  , pattern GL_MODELVIEW3_ARB
  , pattern GL_MODELVIEW4_ARB
  , pattern GL_MODELVIEW5_ARB
  , pattern GL_MODELVIEW6_ARB
  , pattern GL_MODELVIEW7_ARB
  , pattern GL_MODELVIEW8_ARB
  , pattern GL_MODELVIEW9_ARB
  , pattern GL_VERTEX_BLEND_ARB
  , pattern GL_WEIGHT_ARRAY_ARB
  , pattern GL_WEIGHT_ARRAY_POINTER_ARB
  , pattern GL_WEIGHT_ARRAY_SIZE_ARB
  , pattern GL_WEIGHT_ARRAY_STRIDE_ARB
  , pattern GL_WEIGHT_ARRAY_TYPE_ARB
  , pattern GL_WEIGHT_SUM_UNITY_ARB
) 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_ARB_vertex_blend :: Bool
gl_ARB_vertex_blend = member "GL_ARB_vertex_blend" extensions

glVertexBlendARB :: MonadIO m => GLint -> m ()
glVertexBlendARB = ffiintIOV glVertexBlendARBFunPtr

glVertexBlendARBFunPtr :: FunPtr (GLint -> IO ())
glVertexBlendARBFunPtr = unsafePerformIO (getProcAddress "glVertexBlendARB")

{-# NOINLINE glVertexBlendARBFunPtr #-}

glWeightPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glWeightPointerARB = ffiintenumsizeiPtrVIOV glWeightPointerARBFunPtr

glWeightPointerARBFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
glWeightPointerARBFunPtr = unsafePerformIO (getProcAddress "glWeightPointerARB")

{-# NOINLINE glWeightPointerARBFunPtr #-}

glWeightbvARB :: MonadIO m => GLint -> Ptr GLbyte -> m ()
glWeightbvARB = ffiintPtrbyteIOV glWeightbvARBFunPtr

glWeightbvARBFunPtr :: FunPtr (GLint -> Ptr GLbyte -> IO ())
glWeightbvARBFunPtr = unsafePerformIO (getProcAddress "glWeightbvARB")

{-# NOINLINE glWeightbvARBFunPtr #-}

glWeightdvARB :: MonadIO m => GLint -> Ptr GLdouble -> m ()
glWeightdvARB = ffiintPtrdoubleIOV glWeightdvARBFunPtr

glWeightdvARBFunPtr :: FunPtr (GLint -> Ptr GLdouble -> IO ())
glWeightdvARBFunPtr = unsafePerformIO (getProcAddress "glWeightdvARB")

{-# NOINLINE glWeightdvARBFunPtr #-}

glWeightfvARB :: MonadIO m => GLint -> Ptr GLfloat -> m ()
glWeightfvARB = ffiintPtrfloatIOV glWeightfvARBFunPtr

glWeightfvARBFunPtr :: FunPtr (GLint -> Ptr GLfloat -> IO ())
glWeightfvARBFunPtr = unsafePerformIO (getProcAddress "glWeightfvARB")

{-# NOINLINE glWeightfvARBFunPtr #-}

glWeightivARB :: MonadIO m => GLint -> Ptr GLint -> m ()
glWeightivARB = ffiintPtrintIOV glWeightivARBFunPtr

glWeightivARBFunPtr :: FunPtr (GLint -> Ptr GLint -> IO ())
glWeightivARBFunPtr = unsafePerformIO (getProcAddress "glWeightivARB")

{-# NOINLINE glWeightivARBFunPtr #-}

glWeightsvARB :: MonadIO m => GLint -> Ptr GLshort -> m ()
glWeightsvARB = ffiintPtrshortIOV glWeightsvARBFunPtr

glWeightsvARBFunPtr :: FunPtr (GLint -> Ptr GLshort -> IO ())
glWeightsvARBFunPtr = unsafePerformIO (getProcAddress "glWeightsvARB")

{-# NOINLINE glWeightsvARBFunPtr #-}

glWeightubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
glWeightubvARB = ffiintPtrubyteIOV glWeightubvARBFunPtr

glWeightubvARBFunPtr :: FunPtr (GLint -> Ptr GLubyte -> IO ())
glWeightubvARBFunPtr = unsafePerformIO (getProcAddress "glWeightubvARB")

{-# NOINLINE glWeightubvARBFunPtr #-}

glWeightuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
glWeightuivARB = ffiintPtruintIOV glWeightuivARBFunPtr

glWeightuivARBFunPtr :: FunPtr (GLint -> Ptr GLuint -> IO ())
glWeightuivARBFunPtr = unsafePerformIO (getProcAddress "glWeightuivARB")

{-# NOINLINE glWeightuivARBFunPtr #-}

glWeightusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()
glWeightusvARB = ffiintPtrushortIOV glWeightusvARBFunPtr

glWeightusvARBFunPtr :: FunPtr (GLint -> Ptr GLushort -> IO ())
glWeightusvARBFunPtr = unsafePerformIO (getProcAddress "glWeightusvARB")

{-# NOINLINE glWeightusvARBFunPtr #-}

pattern GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5 :: GLenum

pattern GL_CURRENT_WEIGHT_ARB = 0x86A8 :: GLenum

pattern GL_MAX_VERTEX_UNITS_ARB = 0x86A4 :: GLenum

pattern GL_MODELVIEW0_ARB = 0x1700 :: GLenum

pattern GL_MODELVIEW10_ARB = 0x872A :: GLenum

pattern GL_MODELVIEW11_ARB = 0x872B :: GLenum

pattern GL_MODELVIEW12_ARB = 0x872C :: GLenum

pattern GL_MODELVIEW13_ARB = 0x872D :: GLenum

pattern GL_MODELVIEW14_ARB = 0x872E :: GLenum

pattern GL_MODELVIEW15_ARB = 0x872F :: GLenum

pattern GL_MODELVIEW16_ARB = 0x8730 :: GLenum

pattern GL_MODELVIEW17_ARB = 0x8731 :: GLenum

pattern GL_MODELVIEW18_ARB = 0x8732 :: GLenum

pattern GL_MODELVIEW19_ARB = 0x8733 :: GLenum

pattern GL_MODELVIEW1_ARB = 0x850A :: GLenum

pattern GL_MODELVIEW20_ARB = 0x8734 :: GLenum

pattern GL_MODELVIEW21_ARB = 0x8735 :: GLenum

pattern GL_MODELVIEW22_ARB = 0x8736 :: GLenum

pattern GL_MODELVIEW23_ARB = 0x8737 :: GLenum

pattern GL_MODELVIEW24_ARB = 0x8738 :: GLenum

pattern GL_MODELVIEW25_ARB = 0x8739 :: GLenum

pattern GL_MODELVIEW26_ARB = 0x873A :: GLenum

pattern GL_MODELVIEW27_ARB = 0x873B :: GLenum

pattern GL_MODELVIEW28_ARB = 0x873C :: GLenum

pattern GL_MODELVIEW29_ARB = 0x873D :: GLenum

pattern GL_MODELVIEW2_ARB = 0x8722 :: GLenum

pattern GL_MODELVIEW30_ARB = 0x873E :: GLenum

pattern GL_MODELVIEW31_ARB = 0x873F :: GLenum

pattern GL_MODELVIEW3_ARB = 0x8723 :: GLenum

pattern GL_MODELVIEW4_ARB = 0x8724 :: GLenum

pattern GL_MODELVIEW5_ARB = 0x8725 :: GLenum

pattern GL_MODELVIEW6_ARB = 0x8726 :: GLenum

pattern GL_MODELVIEW7_ARB = 0x8727 :: GLenum

pattern GL_MODELVIEW8_ARB = 0x8728 :: GLenum

pattern GL_MODELVIEW9_ARB = 0x8729 :: GLenum

pattern GL_VERTEX_BLEND_ARB = 0x86A7 :: GLenum

pattern GL_WEIGHT_ARRAY_ARB = 0x86AD :: GLenum

pattern GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC :: GLenum

pattern GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB :: GLenum

pattern GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA :: GLenum

pattern GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9 :: GLenum

pattern GL_WEIGHT_SUM_UNITY_ARB = 0x86A6 :: GLenum