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

  -- * GL_ATI_vertex_attrib_array_object
  , glGetVertexAttribArrayObjectfvATI
  , glGetVertexAttribArrayObjectivATI
  , glVertexAttribArrayObjectATI
) 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_attrib_array_object.txt GL_ATI_vertex_attrib_array_object> extension is available.

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

-- | Usage: @'glGetVertexAttribArrayObjectfvATI' index pname params@
--
-- The parameter @pname@ is a @ArrayObjectPNameATI@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetVertexAttribArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVertexAttribArrayObjectfvATI :: GLuint -> GLuint -> Ptr GLfloat -> m ()
glGetVertexAttribArrayObjectfvATI = FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
-> GLuint -> GLuint -> Ptr GLfloat -> m ()
ffiuintenumPtrfloatIOV FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
glGetVertexAttribArrayObjectfvATIFunPtr

glGetVertexAttribArrayObjectfvATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetVertexAttribArrayObjectfvATIFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
glGetVertexAttribArrayObjectfvATIFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetVertexAttribArrayObjectfvATI")

{-# NOINLINE glGetVertexAttribArrayObjectfvATIFunPtr #-}

-- | Usage: @'glGetVertexAttribArrayObjectivATI' index pname params@
--
-- The parameter @pname@ is a @ArrayObjectPNameATI@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetVertexAttribArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVertexAttribArrayObjectivATI :: GLuint -> GLuint -> Ptr GLint -> m ()
glGetVertexAttribArrayObjectivATI = FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
-> GLuint -> GLuint -> Ptr GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
-> GLuint -> GLuint -> Ptr GLint -> m ()
ffiuintenumPtrintIOV FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
glGetVertexAttribArrayObjectivATIFunPtr

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

{-# NOINLINE glGetVertexAttribArrayObjectivATIFunPtr #-}

-- | Usage: @'glVertexAttribArrayObjectATI' index size type normalized stride buffer offset@
--
-- The parameter @type@ is a @VertexAttribPointerType@.
--
-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.


glVertexAttribArrayObjectATI :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()
glVertexAttribArrayObjectATI :: GLuint
-> GLint
-> GLuint
-> GLboolean
-> GLint
-> GLuint
-> GLuint
-> m ()
glVertexAttribArrayObjectATI = FunPtr
  (GLuint
   -> GLint
   -> GLuint
   -> GLboolean
   -> GLint
   -> GLuint
   -> GLuint
   -> IO ())
-> GLuint
-> GLint
-> GLuint
-> GLboolean
-> GLint
-> GLuint
-> GLuint
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint
   -> GLint
   -> GLuint
   -> GLboolean
   -> GLint
   -> GLuint
   -> GLuint
   -> IO ())
-> GLuint
-> GLint
-> GLuint
-> GLboolean
-> GLint
-> GLuint
-> GLuint
-> m ()
ffiuintintenumbooleansizeiuintuintIOV FunPtr
  (GLuint
   -> GLint
   -> GLuint
   -> GLboolean
   -> GLint
   -> GLuint
   -> GLuint
   -> IO ())
glVertexAttribArrayObjectATIFunPtr

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

{-# NOINLINE glVertexAttribArrayObjectATIFunPtr #-}