-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.ATI.VertexArrayObject (
  -- * Extension Support
    gl_ATI_vertex_array_object

  -- * GL_ATI_vertex_array_object
  , glArrayObjectATI
  , glFreeObjectBufferATI
  , glGetArrayObjectfvATI
  , glGetArrayObjectivATI
  , glGetObjectBufferfvATI
  , glGetObjectBufferivATI
  , glGetVariantArrayObjectfvATI
  , glGetVariantArrayObjectivATI
  , glIsObjectBufferATI
  , glNewObjectBufferATI
  , glUpdateObjectBufferATI
  , glVariantArrayObjectATI
  , pattern GL_ARRAY_OBJECT_BUFFER_ATI
  , pattern GL_ARRAY_OBJECT_OFFSET_ATI
  , pattern GL_DISCARD_ATI
  , pattern GL_DYNAMIC_ATI
  , pattern GL_OBJECT_BUFFER_SIZE_ATI
  , pattern GL_OBJECT_BUFFER_USAGE_ATI
  , pattern GL_PRESERVE_ATI
  , pattern GL_STATIC_ATI
) 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/ATI/vertex_array_object.txt GL_ATI_vertex_array_object> extension is available.

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

-- | Usage: @'glArrayObjectATI' array size type stride buffer offset@
--
-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
--
-- The parameter @type@ is a @ScalarType@.


glArrayObjectATI :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
glArrayObjectATI :: GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> m ()
glArrayObjectATI = FunPtr
  (GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
-> GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
-> GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> m ()
ffienumintenumsizeiuintuintIOV FunPtr
  (GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
glArrayObjectATIFunPtr

glArrayObjectATIFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
glArrayObjectATIFunPtr :: FunPtr
  (GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
glArrayObjectATIFunPtr = IO
  (FunPtr
     (GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> IO ()))
-> FunPtr
     (GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLenum -> GLint -> GLenum -> GLint -> GLenum -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glArrayObjectATI")

{-# NOINLINE glArrayObjectATIFunPtr #-}

-- | Usage: @'glFreeObjectBufferATI' buffer@


glFreeObjectBufferATI :: MonadIO m => GLuint -> m ()
glFreeObjectBufferATI :: GLenum -> m ()
glFreeObjectBufferATI = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffiuintIOV FunPtr (GLenum -> IO ())
glFreeObjectBufferATIFunPtr

glFreeObjectBufferATIFunPtr :: FunPtr (GLuint -> IO ())
glFreeObjectBufferATIFunPtr :: FunPtr (GLenum -> IO ())
glFreeObjectBufferATIFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glFreeObjectBufferATI")

{-# NOINLINE glFreeObjectBufferATIFunPtr #-}

-- | Usage: @'glGetArrayObjectfvATI' array pname params@
--
-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
--
-- The parameter @pname@ is a @ArrayObjectPNameATI@.
--
-- The length of @params@ should be @1@.


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

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

{-# NOINLINE glGetArrayObjectfvATIFunPtr #-}

-- | Usage: @'glGetArrayObjectivATI' array pname params@
--
-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
--
-- The parameter @pname@ is a @ArrayObjectPNameATI@.
--
-- The length of @params@ should be @1@.


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

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

{-# NOINLINE glGetArrayObjectivATIFunPtr #-}

-- | Usage: @'glGetObjectBufferfvATI' buffer pname params@
--
-- The parameter @pname@ is a @ArrayObjectPNameATI@.
--
-- The length of @params@ should be @1@.


glGetObjectBufferfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetObjectBufferfvATI :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetObjectBufferfvATI = 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 ()
ffiuintenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetObjectBufferfvATIFunPtr

glGetObjectBufferfvATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetObjectBufferfvATIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetObjectBufferfvATIFunPtr = 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 "glGetObjectBufferfvATI")

{-# NOINLINE glGetObjectBufferfvATIFunPtr #-}

-- | Usage: @'glGetObjectBufferivATI' buffer pname params@
--
-- The parameter @pname@ is a @ArrayObjectPNameATI@.
--
-- The length of @params@ should be @1@.


glGetObjectBufferivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetObjectBufferivATI :: GLenum -> GLenum -> Ptr GLint -> m ()
glGetObjectBufferivATI = 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 ()
ffiuintenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetObjectBufferivATIFunPtr

glGetObjectBufferivATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetObjectBufferivATIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetObjectBufferivATIFunPtr = 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 "glGetObjectBufferivATI")

{-# NOINLINE glGetObjectBufferivATIFunPtr #-}

-- | Usage: @'glGetVariantArrayObjectfvATI' id pname params@
--
-- The parameter @pname@ is a @ArrayObjectPNameATI@.
--
-- The length of @params@ should be @1@.


glGetVariantArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVariantArrayObjectfvATI :: GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetVariantArrayObjectfvATI = 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 ()
ffiuintenumPtrfloatIOV FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetVariantArrayObjectfvATIFunPtr

glGetVariantArrayObjectfvATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetVariantArrayObjectfvATIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetVariantArrayObjectfvATIFunPtr = 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 "glGetVariantArrayObjectfvATI")

{-# NOINLINE glGetVariantArrayObjectfvATIFunPtr #-}

-- | Usage: @'glGetVariantArrayObjectivATI' id pname params@
--
-- The parameter @pname@ is a @ArrayObjectPNameATI@.
--
-- The length of @params@ should be @1@.


glGetVariantArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVariantArrayObjectivATI :: GLenum -> GLenum -> Ptr GLint -> m ()
glGetVariantArrayObjectivATI = 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 ()
ffiuintenumPtrintIOV FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetVariantArrayObjectivATIFunPtr

glGetVariantArrayObjectivATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetVariantArrayObjectivATIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetVariantArrayObjectivATIFunPtr = 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 "glGetVariantArrayObjectivATI")

{-# NOINLINE glGetVariantArrayObjectivATIFunPtr #-}

-- | Usage: @'glIsObjectBufferATI' buffer@


glIsObjectBufferATI :: MonadIO m => GLuint -> m GLboolean
glIsObjectBufferATI :: GLenum -> m GLboolean
glIsObjectBufferATI = FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
ffiuintIOboolean FunPtr (GLenum -> IO GLboolean)
glIsObjectBufferATIFunPtr

glIsObjectBufferATIFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsObjectBufferATIFunPtr :: FunPtr (GLenum -> IO GLboolean)
glIsObjectBufferATIFunPtr = IO (FunPtr (GLenum -> IO GLboolean))
-> FunPtr (GLenum -> IO GLboolean)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> IO GLboolean))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glIsObjectBufferATI")

{-# NOINLINE glIsObjectBufferATIFunPtr #-}

-- | Usage: @'glNewObjectBufferATI' size pointer usage@
--
-- The parameter @usage@ is a @ArrayObjectUsageATI@.
--
-- The length of @pointer@ should be @size@.


glNewObjectBufferATI :: MonadIO m => GLsizei -> Ptr () -> GLenum -> m GLuint
glNewObjectBufferATI :: GLint -> Ptr () -> GLenum -> m GLenum
glNewObjectBufferATI = FunPtr (GLint -> Ptr () -> GLenum -> IO GLenum)
-> GLint -> Ptr () -> GLenum -> m GLenum
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> Ptr () -> GLenum -> IO GLenum)
-> GLint -> Ptr () -> GLenum -> m GLenum
ffisizeiPtrVenumIOuint FunPtr (GLint -> Ptr () -> GLenum -> IO GLenum)
glNewObjectBufferATIFunPtr

glNewObjectBufferATIFunPtr :: FunPtr (GLsizei -> Ptr () -> GLenum -> IO GLuint)
glNewObjectBufferATIFunPtr :: FunPtr (GLint -> Ptr () -> GLenum -> IO GLenum)
glNewObjectBufferATIFunPtr = IO (FunPtr (GLint -> Ptr () -> GLenum -> IO GLenum))
-> FunPtr (GLint -> Ptr () -> GLenum -> IO GLenum)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLint -> Ptr () -> GLenum -> IO GLenum))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glNewObjectBufferATI")

{-# NOINLINE glNewObjectBufferATIFunPtr #-}

-- | Usage: @'glUpdateObjectBufferATI' buffer offset size pointer preserve@
--
-- The parameter @preserve@ is a @PreserveModeATI@.
--
-- The length of @pointer@ should be @size@.


glUpdateObjectBufferATI :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
glUpdateObjectBufferATI :: GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> m ()
glUpdateObjectBufferATI = FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> IO ())
-> GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> m ()
ffiuintuintsizeiPtrVenumIOV FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> IO ())
glUpdateObjectBufferATIFunPtr

glUpdateObjectBufferATIFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ())
glUpdateObjectBufferATIFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> IO ())
glUpdateObjectBufferATIFunPtr = IO
  (FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUpdateObjectBufferATI")

{-# NOINLINE glUpdateObjectBufferATIFunPtr #-}

-- | Usage: @'glVariantArrayObjectATI' id type stride buffer offset@
--
-- The parameter @type@ is a @ScalarType@.


glVariantArrayObjectATI :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
glVariantArrayObjectATI :: GLenum -> GLenum -> GLint -> GLenum -> GLenum -> m ()
glVariantArrayObjectATI = FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLint -> GLenum -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
-> GLenum -> GLenum -> GLint -> GLenum -> GLenum -> m ()
ffiuintenumsizeiuintuintIOV FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
glVariantArrayObjectATIFunPtr

glVariantArrayObjectATIFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
glVariantArrayObjectATIFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
glVariantArrayObjectATIFunPtr = IO
  (FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glVariantArrayObjectATI")

{-# NOINLINE glVariantArrayObjectATIFunPtr #-}

pattern $bGL_ARRAY_OBJECT_BUFFER_ATI :: a
$mGL_ARRAY_OBJECT_BUFFER_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766

pattern $bGL_ARRAY_OBJECT_OFFSET_ATI :: a
$mGL_ARRAY_OBJECT_OFFSET_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767

pattern $bGL_DISCARD_ATI :: a
$mGL_DISCARD_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DISCARD_ATI = 0x8763

pattern $bGL_DYNAMIC_ATI :: a
$mGL_DYNAMIC_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_DYNAMIC_ATI = 0x8761

pattern $bGL_OBJECT_BUFFER_SIZE_ATI :: a
$mGL_OBJECT_BUFFER_SIZE_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_BUFFER_SIZE_ATI = 0x8764

pattern $bGL_OBJECT_BUFFER_USAGE_ATI :: a
$mGL_OBJECT_BUFFER_USAGE_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_BUFFER_USAGE_ATI = 0x8765

pattern $bGL_PRESERVE_ATI :: a
$mGL_PRESERVE_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PRESERVE_ATI = 0x8762

pattern $bGL_STATIC_ATI :: a
$mGL_STATIC_ATI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_STATIC_ATI = 0x8760