-- 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 = String -> Set String -> Bool
forall a. Ord a => a -> Set a -> Bool
member String
"GL_ATI_vertex_attrib_array_object" Set String
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 :: forall (m :: * -> *).
MonadIO m =>
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 (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"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 :: forall (m :: * -> *).
MonadIO m =>
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 (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"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 :: forall (m :: * -> *).
MonadIO m =>
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 (String
-> IO
     (FunPtr
        (GLuint
         -> GLint
         -> GLuint
         -> GLboolean
         -> GLint
         -> GLuint
         -> GLuint
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribArrayObjectATI")

{-# NOINLINE glVertexAttribArrayObjectATIFunPtr #-}