-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.ARB.ShaderObjects (
  -- * Extension Support
    gl_ARB_shader_objects

  -- * GL_ARB_shader_objects
  , glAttachObjectARB
  , glCompileShaderARB
  , glCreateProgramObjectARB
  , glCreateShaderObjectARB
  , glDeleteObjectARB
  , glDetachObjectARB
  , glGetActiveUniformARB
  , glGetAttachedObjectsARB
  , glGetHandleARB
  , glGetInfoLogARB
  , glGetObjectParameterfvARB
  , glGetObjectParameterivARB
  , glGetShaderSourceARB
  , glGetUniformLocationARB
  , glGetUniformfvARB
  , glGetUniformivARB
  , glLinkProgramARB
  , glShaderSourceARB
  , glUniform1fARB
  , glUniform1fvARB
  , glUniform1iARB
  , glUniform1ivARB
  , glUniform2fARB
  , glUniform2fvARB
  , glUniform2iARB
  , glUniform2ivARB
  , glUniform3fARB
  , glUniform3fvARB
  , glUniform3iARB
  , glUniform3ivARB
  , glUniform4fARB
  , glUniform4fvARB
  , glUniform4iARB
  , glUniform4ivARB
  , glUniformMatrix2fvARB
  , glUniformMatrix3fvARB
  , glUniformMatrix4fvARB
  , glUseProgramObjectARB
  , glValidateProgramARB
  , pattern GL_BOOL_ARB
  , pattern GL_BOOL_VEC2_ARB
  , pattern GL_BOOL_VEC3_ARB
  , pattern GL_BOOL_VEC4_ARB
  , pattern GL_FLOAT_MAT2_ARB
  , pattern GL_FLOAT_MAT3_ARB
  , pattern GL_FLOAT_MAT4_ARB
  , pattern GL_FLOAT_VEC2_ARB
  , pattern GL_FLOAT_VEC3_ARB
  , pattern GL_FLOAT_VEC4_ARB
  , pattern GL_INT_VEC2_ARB
  , pattern GL_INT_VEC3_ARB
  , pattern GL_INT_VEC4_ARB
  , pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB
  , pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB
  , pattern GL_OBJECT_ATTACHED_OBJECTS_ARB
  , pattern GL_OBJECT_COMPILE_STATUS_ARB
  , pattern GL_OBJECT_DELETE_STATUS_ARB
  , pattern GL_OBJECT_INFO_LOG_LENGTH_ARB
  , pattern GL_OBJECT_LINK_STATUS_ARB
  , pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB
  , pattern GL_OBJECT_SUBTYPE_ARB
  , pattern GL_OBJECT_TYPE_ARB
  , pattern GL_OBJECT_VALIDATE_STATUS_ARB
  , pattern GL_PROGRAM_OBJECT_ARB
  , pattern GL_SAMPLER_1D_ARB
  , pattern GL_SAMPLER_1D_SHADOW_ARB
  , pattern GL_SAMPLER_2D_ARB
  , pattern GL_SAMPLER_2D_RECT_ARB
  , pattern GL_SAMPLER_2D_RECT_SHADOW_ARB
  , pattern GL_SAMPLER_2D_SHADOW_ARB
  , pattern GL_SAMPLER_3D_ARB
  , pattern GL_SAMPLER_CUBE_ARB
  , pattern GL_SHADER_OBJECT_ARB
) 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.Internal.Shared
import Graphics.GL.Types
import System.IO.Unsafe

-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_objects.txt GL_ARB_shader_objects> extension is available.

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

-- | Usage: @'glAttachObjectARB' containerObj obj@
--
-- The parameter @containerObj@ is a @handleARB@.
--
-- The parameter @obj@ is a @handleARB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glAttachShader'.


glAttachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()
glAttachObjectARB :: GLhandleARB -> GLhandleARB -> m ()
glAttachObjectARB = FunPtr (GLhandleARB -> GLhandleARB -> IO ())
-> GLhandleARB -> GLhandleARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> GLhandleARB -> IO ())
-> GLhandleARB -> GLhandleARB -> m ()
ffihandleARBhandleARBIOV FunPtr (GLhandleARB -> GLhandleARB -> IO ())
glAttachObjectARBFunPtr

glAttachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
glAttachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
glAttachObjectARBFunPtr = IO (FunPtr (GLhandleARB -> GLhandleARB -> IO ()))
-> FunPtr (GLhandleARB -> GLhandleARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> GLhandleARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glAttachObjectARB")

{-# NOINLINE glAttachObjectARBFunPtr #-}

-- | Usage: @'glCompileShaderARB' shaderObj@
--
-- The parameter @shaderObj@ is a @handleARB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompileShader'.


glCompileShaderARB :: MonadIO m => GLhandleARB -> m ()
glCompileShaderARB :: GLhandleARB -> m ()
glCompileShaderARB = FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
ffihandleARBIOV FunPtr (GLhandleARB -> IO ())
glCompileShaderARBFunPtr

glCompileShaderARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glCompileShaderARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glCompileShaderARBFunPtr = IO (FunPtr (GLhandleARB -> IO ())) -> FunPtr (GLhandleARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glCompileShaderARB")

{-# NOINLINE glCompileShaderARBFunPtr #-}

-- | Usage: @'glCreateProgramObjectARB'@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glCreateProgram'.


glCreateProgramObjectARB :: MonadIO m => m GLhandleARB
glCreateProgramObjectARB :: m GLhandleARB
glCreateProgramObjectARB = FunPtr (IO GLhandleARB) -> m GLhandleARB
forall (m :: * -> *).
MonadIO m =>
FunPtr (IO GLhandleARB) -> m GLhandleARB
ffiIOhandleARB FunPtr (IO GLhandleARB)
glCreateProgramObjectARBFunPtr

glCreateProgramObjectARBFunPtr :: FunPtr (IO GLhandleARB)
glCreateProgramObjectARBFunPtr :: FunPtr (IO GLhandleARB)
glCreateProgramObjectARBFunPtr = IO (FunPtr (IO GLhandleARB)) -> FunPtr (IO GLhandleARB)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (IO GLhandleARB))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glCreateProgramObjectARB")

{-# NOINLINE glCreateProgramObjectARBFunPtr #-}

-- | Usage: @'glCreateShaderObjectARB' shaderType@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glCreateShader'.


glCreateShaderObjectARB :: MonadIO m => GLenum -> m GLhandleARB
glCreateShaderObjectARB :: GLhandleARB -> m GLhandleARB
glCreateShaderObjectARB = FunPtr (GLhandleARB -> IO GLhandleARB)
-> GLhandleARB -> m GLhandleARB
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> IO GLhandleARB)
-> GLhandleARB -> m GLhandleARB
ffienumIOhandleARB FunPtr (GLhandleARB -> IO GLhandleARB)
glCreateShaderObjectARBFunPtr

glCreateShaderObjectARBFunPtr :: FunPtr (GLenum -> IO GLhandleARB)
glCreateShaderObjectARBFunPtr :: FunPtr (GLhandleARB -> IO GLhandleARB)
glCreateShaderObjectARBFunPtr = IO (FunPtr (GLhandleARB -> IO GLhandleARB))
-> FunPtr (GLhandleARB -> IO GLhandleARB)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> IO GLhandleARB))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glCreateShaderObjectARB")

{-# NOINLINE glCreateShaderObjectARBFunPtr #-}

-- | Usage: @'glDeleteObjectARB' obj@
--
-- The parameter @obj@ is a @handleARB@.


glDeleteObjectARB :: MonadIO m => GLhandleARB -> m ()
glDeleteObjectARB :: GLhandleARB -> m ()
glDeleteObjectARB = FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
ffihandleARBIOV FunPtr (GLhandleARB -> IO ())
glDeleteObjectARBFunPtr

glDeleteObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glDeleteObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glDeleteObjectARBFunPtr = IO (FunPtr (GLhandleARB -> IO ())) -> FunPtr (GLhandleARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glDeleteObjectARB")

{-# NOINLINE glDeleteObjectARBFunPtr #-}

-- | Usage: @'glDetachObjectARB' containerObj attachedObj@
--
-- The parameter @containerObj@ is a @handleARB@.
--
-- The parameter @attachedObj@ is a @handleARB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glDetachShader'.


glDetachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()
glDetachObjectARB :: GLhandleARB -> GLhandleARB -> m ()
glDetachObjectARB = FunPtr (GLhandleARB -> GLhandleARB -> IO ())
-> GLhandleARB -> GLhandleARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> GLhandleARB -> IO ())
-> GLhandleARB -> GLhandleARB -> m ()
ffihandleARBhandleARBIOV FunPtr (GLhandleARB -> GLhandleARB -> IO ())
glDetachObjectARBFunPtr

glDetachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
glDetachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
glDetachObjectARBFunPtr = IO (FunPtr (GLhandleARB -> GLhandleARB -> IO ()))
-> FunPtr (GLhandleARB -> GLhandleARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> GLhandleARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glDetachObjectARB")

{-# NOINLINE glDetachObjectARBFunPtr #-}

-- | Usage: @'glGetActiveUniformARB' programObj index maxLength length size type name@
--
-- The parameter @programObj@ is a @handleARB@.
--
-- The length of @length@ should be @1@.
--
-- The length of @size@ should be @1@.
--
-- The length of @type@ should be @1@.
--
-- The length of @name@ should be @maxLength@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetActiveUniform'.


glGetActiveUniformARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
glGetActiveUniformARB :: GLhandleARB
-> GLhandleARB
-> GLsizei
-> Ptr GLsizei
-> Ptr GLsizei
-> Ptr GLhandleARB
-> Ptr GLcharARB
-> m ()
glGetActiveUniformARB = FunPtr
  (GLhandleARB
   -> GLhandleARB
   -> GLsizei
   -> Ptr GLsizei
   -> Ptr GLsizei
   -> Ptr GLhandleARB
   -> Ptr GLcharARB
   -> IO ())
-> GLhandleARB
-> GLhandleARB
-> GLsizei
-> Ptr GLsizei
-> Ptr GLsizei
-> Ptr GLhandleARB
-> Ptr GLcharARB
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLhandleARB
   -> GLhandleARB
   -> GLsizei
   -> Ptr GLsizei
   -> Ptr GLsizei
   -> Ptr GLhandleARB
   -> Ptr GLcharARB
   -> IO ())
-> GLhandleARB
-> GLhandleARB
-> GLsizei
-> Ptr GLsizei
-> Ptr GLsizei
-> Ptr GLhandleARB
-> Ptr GLcharARB
-> m ()
ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV FunPtr
  (GLhandleARB
   -> GLhandleARB
   -> GLsizei
   -> Ptr GLsizei
   -> Ptr GLsizei
   -> Ptr GLhandleARB
   -> Ptr GLcharARB
   -> IO ())
glGetActiveUniformARBFunPtr

glGetActiveUniformARBFunPtr :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ())
glGetActiveUniformARBFunPtr :: FunPtr
  (GLhandleARB
   -> GLhandleARB
   -> GLsizei
   -> Ptr GLsizei
   -> Ptr GLsizei
   -> Ptr GLhandleARB
   -> Ptr GLcharARB
   -> IO ())
glGetActiveUniformARBFunPtr = IO
  (FunPtr
     (GLhandleARB
      -> GLhandleARB
      -> GLsizei
      -> Ptr GLsizei
      -> Ptr GLsizei
      -> Ptr GLhandleARB
      -> Ptr GLcharARB
      -> IO ()))
-> FunPtr
     (GLhandleARB
      -> GLhandleARB
      -> GLsizei
      -> Ptr GLsizei
      -> Ptr GLsizei
      -> Ptr GLhandleARB
      -> Ptr GLcharARB
      -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLhandleARB
         -> GLhandleARB
         -> GLsizei
         -> Ptr GLsizei
         -> Ptr GLsizei
         -> Ptr GLhandleARB
         -> Ptr GLcharARB
         -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetActiveUniformARB")

{-# NOINLINE glGetActiveUniformARBFunPtr #-}

-- | Usage: @'glGetAttachedObjectsARB' containerObj maxCount count obj@
--
-- The parameter @containerObj@ is a @handleARB@.
--
-- The parameter @obj@ is a @handleARB@.
--
-- The length of @count@ should be @1@.
--
-- The length of @obj@ should be @maxCount@.


glGetAttachedObjectsARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
glGetAttachedObjectsARB :: GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
glGetAttachedObjectsARB = FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
ffihandleARBsizeiPtrsizeiPtrhandleARBIOV FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
glGetAttachedObjectsARBFunPtr

glGetAttachedObjectsARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
glGetAttachedObjectsARBFunPtr :: FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
glGetAttachedObjectsARBFunPtr = IO
  (FunPtr
     (GLhandleARB
      -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()))
-> FunPtr
     (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLhandleARB
         -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetAttachedObjectsARB")

{-# NOINLINE glGetAttachedObjectsARBFunPtr #-}

-- | Usage: @'glGetHandleARB' pname@


glGetHandleARB :: MonadIO m => GLenum -> m GLhandleARB
glGetHandleARB :: GLhandleARB -> m GLhandleARB
glGetHandleARB = FunPtr (GLhandleARB -> IO GLhandleARB)
-> GLhandleARB -> m GLhandleARB
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> IO GLhandleARB)
-> GLhandleARB -> m GLhandleARB
ffienumIOhandleARB FunPtr (GLhandleARB -> IO GLhandleARB)
glGetHandleARBFunPtr

glGetHandleARBFunPtr :: FunPtr (GLenum -> IO GLhandleARB)
glGetHandleARBFunPtr :: FunPtr (GLhandleARB -> IO GLhandleARB)
glGetHandleARBFunPtr = IO (FunPtr (GLhandleARB -> IO GLhandleARB))
-> FunPtr (GLhandleARB -> IO GLhandleARB)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> IO GLhandleARB))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetHandleARB")

{-# NOINLINE glGetHandleARBFunPtr #-}

-- | Usage: @'glGetInfoLogARB' obj maxLength length infoLog@
--
-- The parameter @obj@ is a @handleARB@.
--
-- The length of @length@ should be @1@.
--
-- The length of @infoLog@ should be @maxLength@.


glGetInfoLogARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
glGetInfoLogARB :: GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
glGetInfoLogARB = FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
ffihandleARBsizeiPtrsizeiPtrcharARBIOV FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
glGetInfoLogARBFunPtr

glGetInfoLogARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
glGetInfoLogARBFunPtr :: FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
glGetInfoLogARBFunPtr = IO
  (FunPtr
     (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()))
-> FunPtr
     (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetInfoLogARB")

{-# NOINLINE glGetInfoLogARBFunPtr #-}

-- | Usage: @'glGetObjectParameterfvARB' obj pname params@
--
-- The parameter @obj@ is a @handleARB@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetObjectParameterfvARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLfloat -> m ()
glGetObjectParameterfvARB :: GLhandleARB -> GLhandleARB -> Ptr GLfloat -> m ()
glGetObjectParameterfvARB = FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLfloat -> IO ())
-> GLhandleARB -> GLhandleARB -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLfloat -> IO ())
-> GLhandleARB -> GLhandleARB -> Ptr GLfloat -> m ()
ffihandleARBenumPtrfloatIOV FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLfloat -> IO ())
glGetObjectParameterfvARBFunPtr

glGetObjectParameterfvARBFunPtr :: FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ())
glGetObjectParameterfvARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLfloat -> IO ())
glGetObjectParameterfvARBFunPtr = IO (FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLfloat -> IO ()))
-> FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetObjectParameterfvARB")

{-# NOINLINE glGetObjectParameterfvARBFunPtr #-}

-- | Usage: @'glGetObjectParameterivARB' obj pname params@
--
-- The parameter @obj@ is a @handleARB@.
--
-- The length of @params@ should be @COMPSIZE(pname)@.


glGetObjectParameterivARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLint -> m ()
glGetObjectParameterivARB :: GLhandleARB -> GLhandleARB -> Ptr GLsizei -> m ()
glGetObjectParameterivARB = FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLsizei -> IO ())
-> GLhandleARB -> GLhandleARB -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLsizei -> IO ())
-> GLhandleARB -> GLhandleARB -> Ptr GLsizei -> m ()
ffihandleARBenumPtrintIOV FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLsizei -> IO ())
glGetObjectParameterivARBFunPtr

glGetObjectParameterivARBFunPtr :: FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ())
glGetObjectParameterivARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLsizei -> IO ())
glGetObjectParameterivARBFunPtr = IO (FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLsizei -> IO ()))
-> FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLhandleARB -> GLhandleARB -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetObjectParameterivARB")

{-# NOINLINE glGetObjectParameterivARBFunPtr #-}

-- | Usage: @'glGetShaderSourceARB' obj maxLength length source@
--
-- The parameter @obj@ is a @handleARB@.
--
-- The length of @length@ should be @1@.
--
-- The length of @source@ should be @maxLength@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetShaderSource'.


glGetShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
glGetShaderSourceARB :: GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
glGetShaderSourceARB = FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
ffihandleARBsizeiPtrsizeiPtrcharARBIOV FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
glGetShaderSourceARBFunPtr

glGetShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
glGetShaderSourceARBFunPtr :: FunPtr
  (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
glGetShaderSourceARBFunPtr = IO
  (FunPtr
     (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()))
-> FunPtr
     (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetShaderSourceARB")

{-# NOINLINE glGetShaderSourceARBFunPtr #-}

-- | Usage: @'glGetUniformLocationARB' programObj name@
--
-- The parameter @programObj@ is a @handleARB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformLocation'.


glGetUniformLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint
glGetUniformLocationARB :: GLhandleARB -> Ptr GLcharARB -> m GLsizei
glGetUniformLocationARB = FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLsizei)
-> GLhandleARB -> Ptr GLcharARB -> m GLsizei
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLsizei)
-> GLhandleARB -> Ptr GLcharARB -> m GLsizei
ffihandleARBPtrcharARBIOint FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLsizei)
glGetUniformLocationARBFunPtr

glGetUniformLocationARBFunPtr :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
glGetUniformLocationARBFunPtr :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLsizei)
glGetUniformLocationARBFunPtr = IO (FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLsizei))
-> FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLsizei)
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLsizei))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetUniformLocationARB")

{-# NOINLINE glGetUniformLocationARBFunPtr #-}

-- | Usage: @'glGetUniformfvARB' programObj location params@
--
-- The parameter @programObj@ is a @handleARB@.
--
-- The length of @params@ should be @COMPSIZE(programObj,location)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformfv'.


glGetUniformfvARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLfloat -> m ()
glGetUniformfvARB :: GLhandleARB -> GLsizei -> Ptr GLfloat -> m ()
glGetUniformfvARB = FunPtr (GLhandleARB -> GLsizei -> Ptr GLfloat -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> GLsizei -> Ptr GLfloat -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLfloat -> m ()
ffihandleARBintPtrfloatIOV FunPtr (GLhandleARB -> GLsizei -> Ptr GLfloat -> IO ())
glGetUniformfvARBFunPtr

glGetUniformfvARBFunPtr :: FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ())
glGetUniformfvARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLfloat -> IO ())
glGetUniformfvARBFunPtr = IO (FunPtr (GLhandleARB -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLhandleARB -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLhandleARB -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetUniformfvARB")

{-# NOINLINE glGetUniformfvARBFunPtr #-}

-- | Usage: @'glGetUniformivARB' programObj location params@
--
-- The parameter @programObj@ is a @handleARB@.
--
-- The length of @params@ should be @COMPSIZE(programObj,location)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformiv'.


glGetUniformivARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLint -> m ()
glGetUniformivARB :: GLhandleARB -> GLsizei -> Ptr GLsizei -> m ()
glGetUniformivARB = FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> IO ())
-> GLhandleARB -> GLsizei -> Ptr GLsizei -> m ()
ffihandleARBintPtrintIOV FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> IO ())
glGetUniformivARBFunPtr

glGetUniformivARBFunPtr :: FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ())
glGetUniformivARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> IO ())
glGetUniformivARBFunPtr = IO (FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> IO ()))
-> FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetUniformivARB")

{-# NOINLINE glGetUniformivARBFunPtr #-}

-- | Usage: @'glLinkProgramARB' programObj@
--
-- The parameter @programObj@ is a @handleARB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glLinkProgram'.


glLinkProgramARB :: MonadIO m => GLhandleARB -> m ()
glLinkProgramARB :: GLhandleARB -> m ()
glLinkProgramARB = FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
ffihandleARBIOV FunPtr (GLhandleARB -> IO ())
glLinkProgramARBFunPtr

glLinkProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glLinkProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glLinkProgramARBFunPtr = IO (FunPtr (GLhandleARB -> IO ())) -> FunPtr (GLhandleARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glLinkProgramARB")

{-# NOINLINE glLinkProgramARBFunPtr #-}

-- | Usage: @'glShaderSourceARB' shaderObj count string length@
--
-- The parameter @shaderObj@ is a @handleARB@.
--
-- The length of @string@ should be @count@.
--
-- The length of @length@ should be @count@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glShaderSource'.


glShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()
glShaderSourceARB :: GLhandleARB
-> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLsizei -> m ()
glShaderSourceARB = FunPtr
  (GLhandleARB
   -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLsizei -> IO ())
-> GLhandleARB
-> GLsizei
-> Ptr (Ptr GLcharARB)
-> Ptr GLsizei
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLhandleARB
   -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLsizei -> IO ())
-> GLhandleARB
-> GLsizei
-> Ptr (Ptr GLcharARB)
-> Ptr GLsizei
-> m ()
ffihandleARBsizeiPtrPtrcharARBPtrintIOV FunPtr
  (GLhandleARB
   -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLsizei -> IO ())
glShaderSourceARBFunPtr

glShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ())
glShaderSourceARBFunPtr :: FunPtr
  (GLhandleARB
   -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLsizei -> IO ())
glShaderSourceARBFunPtr = IO
  (FunPtr
     (GLhandleARB
      -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLsizei -> IO ()))
-> FunPtr
     (GLhandleARB
      -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLhandleARB
         -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glShaderSourceARB")

{-# NOINLINE glShaderSourceARBFunPtr #-}

-- | Usage: @'glUniform1fARB' location v0@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1f'.


glUniform1fARB :: MonadIO m => GLint -> GLfloat -> m ()
glUniform1fARB :: GLsizei -> GLfloat -> m ()
glUniform1fARB = FunPtr (GLsizei -> GLfloat -> IO ()) -> GLsizei -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLfloat -> IO ()) -> GLsizei -> GLfloat -> m ()
ffiintfloatIOV FunPtr (GLsizei -> GLfloat -> IO ())
glUniform1fARBFunPtr

glUniform1fARBFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
glUniform1fARBFunPtr :: FunPtr (GLsizei -> GLfloat -> IO ())
glUniform1fARBFunPtr = IO (FunPtr (GLsizei -> GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform1fARB")

{-# NOINLINE glUniform1fARBFunPtr #-}

-- | Usage: @'glUniform1fvARB' location count value@
--
-- The length of @value@ should be @count*1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1fv'.


glUniform1fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
glUniform1fvARB :: GLsizei -> GLsizei -> Ptr GLfloat -> m ()
glUniform1fvARB = FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
ffiintsizeiPtrfloatIOV FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
glUniform1fvARBFunPtr

glUniform1fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
glUniform1fvARBFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
glUniform1fvARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform1fvARB")

{-# NOINLINE glUniform1fvARBFunPtr #-}

-- | Usage: @'glUniform1iARB' location v0@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1i'.


glUniform1iARB :: MonadIO m => GLint -> GLint -> m ()
glUniform1iARB :: GLsizei -> GLsizei -> m ()
glUniform1iARB = FunPtr (GLsizei -> GLsizei -> IO ()) -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> IO ()) -> GLsizei -> GLsizei -> m ()
ffiintintIOV FunPtr (GLsizei -> GLsizei -> IO ())
glUniform1iARBFunPtr

glUniform1iARBFunPtr :: FunPtr (GLint -> GLint -> IO ())
glUniform1iARBFunPtr :: FunPtr (GLsizei -> GLsizei -> IO ())
glUniform1iARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform1iARB")

{-# NOINLINE glUniform1iARBFunPtr #-}

-- | Usage: @'glUniform1ivARB' location count value@
--
-- The length of @value@ should be @count*1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1iv'.


glUniform1ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
glUniform1ivARB :: GLsizei -> GLsizei -> Ptr GLsizei -> m ()
glUniform1ivARB = FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
-> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
-> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
ffiintsizeiPtrintIOV FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
glUniform1ivARBFunPtr

glUniform1ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
glUniform1ivARBFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
glUniform1ivARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform1ivARB")

{-# NOINLINE glUniform1ivARBFunPtr #-}

-- | Usage: @'glUniform2fARB' location v0 v1@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2f'.


glUniform2fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
glUniform2fARB :: GLsizei -> GLfloat -> GLfloat -> m ()
glUniform2fARB = FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
-> GLsizei -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
-> GLsizei -> GLfloat -> GLfloat -> m ()
ffiintfloatfloatIOV FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
glUniform2fARBFunPtr

glUniform2fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
glUniform2fARBFunPtr :: FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
glUniform2fARBFunPtr = IO (FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLfloat -> GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform2fARB")

{-# NOINLINE glUniform2fARBFunPtr #-}

-- | Usage: @'glUniform2fvARB' location count value@
--
-- The length of @value@ should be @count*2@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2fv'.


glUniform2fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
glUniform2fvARB :: GLsizei -> GLsizei -> Ptr GLfloat -> m ()
glUniform2fvARB = FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
ffiintsizeiPtrfloatIOV FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
glUniform2fvARBFunPtr

glUniform2fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
glUniform2fvARBFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
glUniform2fvARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform2fvARB")

{-# NOINLINE glUniform2fvARBFunPtr #-}

-- | Usage: @'glUniform2iARB' location v0 v1@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2i'.


glUniform2iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()
glUniform2iARB :: GLsizei -> GLsizei -> GLsizei -> m ()
glUniform2iARB = FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> m ()
ffiintintintIOV FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
glUniform2iARBFunPtr

glUniform2iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
glUniform2iARBFunPtr :: FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
glUniform2iARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform2iARB")

{-# NOINLINE glUniform2iARBFunPtr #-}

-- | Usage: @'glUniform2ivARB' location count value@
--
-- The length of @value@ should be @count*2@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2iv'.


glUniform2ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
glUniform2ivARB :: GLsizei -> GLsizei -> Ptr GLsizei -> m ()
glUniform2ivARB = FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
-> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
-> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
ffiintsizeiPtrintIOV FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
glUniform2ivARBFunPtr

glUniform2ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
glUniform2ivARBFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
glUniform2ivARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform2ivARB")

{-# NOINLINE glUniform2ivARBFunPtr #-}

-- | Usage: @'glUniform3fARB' location v0 v1 v2@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3f'.


glUniform3fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
glUniform3fARB :: GLsizei -> GLfloat -> GLfloat -> GLfloat -> m ()
glUniform3fARB = FunPtr (GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLsizei -> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLsizei -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiintfloatfloatfloatIOV FunPtr (GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ())
glUniform3fARBFunPtr

glUniform3fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
glUniform3fARBFunPtr :: FunPtr (GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ())
glUniform3fARBFunPtr = IO (FunPtr (GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLsizei -> GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform3fARB")

{-# NOINLINE glUniform3fARBFunPtr #-}

-- | Usage: @'glUniform3fvARB' location count value@
--
-- The length of @value@ should be @count*3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3fv'.


glUniform3fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
glUniform3fvARB :: GLsizei -> GLsizei -> Ptr GLfloat -> m ()
glUniform3fvARB = FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
ffiintsizeiPtrfloatIOV FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
glUniform3fvARBFunPtr

glUniform3fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
glUniform3fvARBFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
glUniform3fvARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform3fvARB")

{-# NOINLINE glUniform3fvARBFunPtr #-}

-- | Usage: @'glUniform3iARB' location v0 v1 v2@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3i'.


glUniform3iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
glUniform3iARB :: GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
glUniform3iARB = FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
ffiintintintintIOV FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glUniform3iARBFunPtr

glUniform3iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
glUniform3iARBFunPtr :: FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glUniform3iARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform3iARB")

{-# NOINLINE glUniform3iARBFunPtr #-}

-- | Usage: @'glUniform3ivARB' location count value@
--
-- The length of @value@ should be @count*3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3iv'.


glUniform3ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
glUniform3ivARB :: GLsizei -> GLsizei -> Ptr GLsizei -> m ()
glUniform3ivARB = FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
-> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
-> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
ffiintsizeiPtrintIOV FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
glUniform3ivARBFunPtr

glUniform3ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
glUniform3ivARBFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
glUniform3ivARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform3ivARB")

{-# NOINLINE glUniform3ivARBFunPtr #-}

-- | Usage: @'glUniform4fARB' location v0 v1 v2 v3@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4f'.


glUniform4fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glUniform4fARB :: GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glUniform4fARB = FunPtr
  (GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
ffiintfloatfloatfloatfloatIOV FunPtr
  (GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glUniform4fARBFunPtr

glUniform4fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glUniform4fARBFunPtr :: FunPtr
  (GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glUniform4fARBFunPtr = IO
  (FunPtr
     (GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
-> FunPtr
     (GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform4fARB")

{-# NOINLINE glUniform4fARBFunPtr #-}

-- | Usage: @'glUniform4fvARB' location count value@
--
-- The length of @value@ should be @count*4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4fv'.


glUniform4fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
glUniform4fvARB :: GLsizei -> GLsizei -> Ptr GLfloat -> m ()
glUniform4fvARB = FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
ffiintsizeiPtrfloatIOV FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
glUniform4fvARBFunPtr

glUniform4fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
glUniform4fvARBFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
glUniform4fvARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform4fvARB")

{-# NOINLINE glUniform4fvARBFunPtr #-}

-- | Usage: @'glUniform4iARB' location v0 v1 v2 v3@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4i'.


glUniform4iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
glUniform4iARB :: GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
glUniform4iARB = FunPtr
  (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
-> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> m ()
ffiintintintintintIOV FunPtr
  (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glUniform4iARBFunPtr

glUniform4iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
glUniform4iARBFunPtr :: FunPtr
  (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
glUniform4iARBFunPtr = IO
  (FunPtr
     (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
-> FunPtr
     (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr
        (GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform4iARB")

{-# NOINLINE glUniform4iARBFunPtr #-}

-- | Usage: @'glUniform4ivARB' location count value@
--
-- The length of @value@ should be @count*4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4iv'.


glUniform4ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
glUniform4ivARB :: GLsizei -> GLsizei -> Ptr GLsizei -> m ()
glUniform4ivARB = FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
-> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
-> GLsizei -> GLsizei -> Ptr GLsizei -> m ()
ffiintsizeiPtrintIOV FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
glUniform4ivARBFunPtr

glUniform4ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
glUniform4ivARBFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
glUniform4ivARBFunPtr = IO (FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> GLsizei -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniform4ivARB")

{-# NOINLINE glUniform4ivARBFunPtr #-}

-- | Usage: @'glUniformMatrix2fvARB' location count transpose value@
--
-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
--
-- The length of @value@ should be @count*4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix2fv'.


glUniformMatrix2fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2fvARB :: GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix2fvARB = FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
ffiintsizeibooleanPtrfloatIOV FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
glUniformMatrix2fvARBFunPtr

glUniformMatrix2fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
glUniformMatrix2fvARBFunPtr :: FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
glUniformMatrix2fvARBFunPtr = IO
  (FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniformMatrix2fvARB")

{-# NOINLINE glUniformMatrix2fvARBFunPtr #-}

-- | Usage: @'glUniformMatrix3fvARB' location count transpose value@
--
-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
--
-- The length of @value@ should be @count*9@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix3fv'.


glUniformMatrix3fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3fvARB :: GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix3fvARB = FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
ffiintsizeibooleanPtrfloatIOV FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
glUniformMatrix3fvARBFunPtr

glUniformMatrix3fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
glUniformMatrix3fvARBFunPtr :: FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
glUniformMatrix3fvARBFunPtr = IO
  (FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniformMatrix3fvARB")

{-# NOINLINE glUniformMatrix3fvARBFunPtr #-}

-- | Usage: @'glUniformMatrix4fvARB' location count transpose value@
--
-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
--
-- The length of @value@ should be @count*16@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix4fv'.


glUniformMatrix4fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4fvARB :: GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
glUniformMatrix4fvARB = FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-> GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
ffiintsizeibooleanPtrfloatIOV FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
glUniformMatrix4fvARBFunPtr

glUniformMatrix4fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
glUniformMatrix4fvARBFunPtr :: FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
glUniformMatrix4fvARBFunPtr = IO
  (FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()))
-> FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
     (FunPtr (GLsizei -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUniformMatrix4fvARB")

{-# NOINLINE glUniformMatrix4fvARBFunPtr #-}

-- | Usage: @'glUseProgramObjectARB' programObj@
--
-- The parameter @programObj@ is a @handleARB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUseProgram'.


glUseProgramObjectARB :: MonadIO m => GLhandleARB -> m ()
glUseProgramObjectARB :: GLhandleARB -> m ()
glUseProgramObjectARB = FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
ffihandleARBIOV FunPtr (GLhandleARB -> IO ())
glUseProgramObjectARBFunPtr

glUseProgramObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glUseProgramObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glUseProgramObjectARBFunPtr = IO (FunPtr (GLhandleARB -> IO ())) -> FunPtr (GLhandleARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glUseProgramObjectARB")

{-# NOINLINE glUseProgramObjectARBFunPtr #-}

-- | Usage: @'glValidateProgramARB' programObj@
--
-- The parameter @programObj@ is a @handleARB@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glValidateProgram'.


glValidateProgramARB :: MonadIO m => GLhandleARB -> m ()
glValidateProgramARB :: GLhandleARB -> m ()
glValidateProgramARB = FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
ffihandleARBIOV FunPtr (GLhandleARB -> IO ())
glValidateProgramARBFunPtr

glValidateProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glValidateProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ())
glValidateProgramARBFunPtr = IO (FunPtr (GLhandleARB -> IO ())) -> FunPtr (GLhandleARB -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLhandleARB -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glValidateProgramARB")

{-# NOINLINE glValidateProgramARBFunPtr #-}

pattern $bGL_BOOL_ARB :: a
$mGL_BOOL_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_BOOL_ARB = 0x8B56

pattern $bGL_BOOL_VEC2_ARB :: a
$mGL_BOOL_VEC2_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_BOOL_VEC2_ARB = 0x8B57

pattern $bGL_BOOL_VEC3_ARB :: a
$mGL_BOOL_VEC3_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_BOOL_VEC3_ARB = 0x8B58

pattern $bGL_BOOL_VEC4_ARB :: a
$mGL_BOOL_VEC4_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_BOOL_VEC4_ARB = 0x8B59

pattern $bGL_INT_VEC2_ARB :: a
$mGL_INT_VEC2_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_INT_VEC2_ARB = 0x8B53

pattern $bGL_INT_VEC3_ARB :: a
$mGL_INT_VEC3_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_INT_VEC3_ARB = 0x8B54

pattern $bGL_INT_VEC4_ARB :: a
$mGL_INT_VEC4_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_INT_VEC4_ARB = 0x8B55

pattern $bGL_OBJECT_ACTIVE_UNIFORMS_ARB :: a
$mGL_OBJECT_ACTIVE_UNIFORMS_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86

pattern $bGL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB :: a
$mGL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87

pattern $bGL_OBJECT_ATTACHED_OBJECTS_ARB :: a
$mGL_OBJECT_ATTACHED_OBJECTS_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85

pattern $bGL_OBJECT_COMPILE_STATUS_ARB :: a
$mGL_OBJECT_COMPILE_STATUS_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81

pattern $bGL_OBJECT_DELETE_STATUS_ARB :: a
$mGL_OBJECT_DELETE_STATUS_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_DELETE_STATUS_ARB = 0x8B80

pattern $bGL_OBJECT_INFO_LOG_LENGTH_ARB :: a
$mGL_OBJECT_INFO_LOG_LENGTH_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84

pattern $bGL_OBJECT_LINK_STATUS_ARB :: a
$mGL_OBJECT_LINK_STATUS_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_LINK_STATUS_ARB = 0x8B82

pattern $bGL_OBJECT_SHADER_SOURCE_LENGTH_ARB :: a
$mGL_OBJECT_SHADER_SOURCE_LENGTH_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88

pattern $bGL_OBJECT_SUBTYPE_ARB :: a
$mGL_OBJECT_SUBTYPE_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_SUBTYPE_ARB = 0x8B4F

pattern $bGL_OBJECT_TYPE_ARB :: a
$mGL_OBJECT_TYPE_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_TYPE_ARB = 0x8B4E

pattern $bGL_OBJECT_VALIDATE_STATUS_ARB :: a
$mGL_OBJECT_VALIDATE_STATUS_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83

pattern $bGL_PROGRAM_OBJECT_ARB :: a
$mGL_PROGRAM_OBJECT_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PROGRAM_OBJECT_ARB = 0x8B40

pattern $bGL_SAMPLER_1D_ARB :: a
$mGL_SAMPLER_1D_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SAMPLER_1D_ARB = 0x8B5D

pattern $bGL_SAMPLER_1D_SHADOW_ARB :: a
$mGL_SAMPLER_1D_SHADOW_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SAMPLER_1D_SHADOW_ARB = 0x8B61

pattern $bGL_SAMPLER_2D_ARB :: a
$mGL_SAMPLER_2D_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SAMPLER_2D_ARB = 0x8B5E

pattern $bGL_SAMPLER_2D_RECT_ARB :: a
$mGL_SAMPLER_2D_RECT_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SAMPLER_2D_RECT_ARB = 0x8B63

pattern $bGL_SAMPLER_2D_RECT_SHADOW_ARB :: a
$mGL_SAMPLER_2D_RECT_SHADOW_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64

pattern $bGL_SAMPLER_2D_SHADOW_ARB :: a
$mGL_SAMPLER_2D_SHADOW_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SAMPLER_2D_SHADOW_ARB = 0x8B62

pattern $bGL_SAMPLER_3D_ARB :: a
$mGL_SAMPLER_3D_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SAMPLER_3D_ARB = 0x8B5F

pattern $bGL_SAMPLER_CUBE_ARB :: a
$mGL_SAMPLER_CUBE_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SAMPLER_CUBE_ARB = 0x8B60

pattern $bGL_SHADER_OBJECT_ARB :: a
$mGL_SHADER_OBJECT_ARB :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_SHADER_OBJECT_ARB = 0x8B48