-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.INTEL.ParallelArrays (
  -- * Extension Support
    gl_INTEL_parallel_arrays

  -- * GL_INTEL_parallel_arrays
  , glColorPointervINTEL
  , glNormalPointervINTEL
  , glTexCoordPointervINTEL
  , glVertexPointervINTEL
  , pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL
  , pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL
  , pattern GL_PARALLEL_ARRAYS_INTEL
  , pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL
  , pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL
) 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/INTEL/parallel_arrays.txt GL_INTEL_parallel_arrays> extension is available.

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

-- | Usage: @'glColorPointervINTEL' size type pointer@
--
-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
--
-- The length of @pointer@ should be @4@.


glColorPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
glColorPointervINTEL :: GLint -> GLenum -> Ptr (Ptr ()) -> m ()
glColorPointervINTEL = FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
-> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
-> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
ffiintenumPtrPtrVIOV FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
glColorPointervINTELFunPtr

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

{-# NOINLINE glColorPointervINTELFunPtr #-}

-- | Usage: @'glNormalPointervINTEL' type pointer@
--
-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
--
-- The length of @pointer@ should be @4@.


glNormalPointervINTEL :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
glNormalPointervINTEL :: GLenum -> Ptr (Ptr ()) -> m ()
glNormalPointervINTEL = FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-> GLenum -> Ptr (Ptr ()) -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-> GLenum -> Ptr (Ptr ()) -> m ()
ffienumPtrPtrVIOV FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glNormalPointervINTELFunPtr

glNormalPointervINTELFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glNormalPointervINTELFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
glNormalPointervINTELFunPtr = IO (FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()))
-> FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glNormalPointervINTEL")

{-# NOINLINE glNormalPointervINTELFunPtr #-}

-- | Usage: @'glTexCoordPointervINTEL' size type pointer@
--
-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
--
-- The length of @pointer@ should be @4@.


glTexCoordPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
glTexCoordPointervINTEL :: GLint -> GLenum -> Ptr (Ptr ()) -> m ()
glTexCoordPointervINTEL = FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
-> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
-> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
ffiintenumPtrPtrVIOV FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
glTexCoordPointervINTELFunPtr

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

{-# NOINLINE glTexCoordPointervINTELFunPtr #-}

-- | Usage: @'glVertexPointervINTEL' size type pointer@
--
-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
--
-- The length of @pointer@ should be @4@.


glVertexPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
glVertexPointervINTEL :: GLint -> GLenum -> Ptr (Ptr ()) -> m ()
glVertexPointervINTEL = FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
-> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
-> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
ffiintenumPtrPtrVIOV FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
glVertexPointervINTELFunPtr

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

{-# NOINLINE glVertexPointervINTELFunPtr #-}

pattern $bGL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL :: a
$mGL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7

pattern $bGL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL :: a
$mGL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6

pattern $bGL_PARALLEL_ARRAYS_INTEL :: a
$mGL_PARALLEL_ARRAYS_INTEL :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PARALLEL_ARRAYS_INTEL = 0x83F4

pattern $bGL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL :: a
$mGL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8

pattern $bGL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL :: a
$mGL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5