-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.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.Raw.Internal.FFI
import Graphics.GL.Raw.Internal.Proc
import Graphics.GL.Raw.Types
import System.IO.Unsafe

gl_INTEL_parallel_arrays :: Bool
gl_INTEL_parallel_arrays = member "GL_INTEL_parallel_arrays" extensions

glColorPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr () -> m ()
glColorPointervINTEL = ffiintenumPtrVIOV glColorPointervINTELFunPtr

glColorPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr () -> IO ())
glColorPointervINTELFunPtr = unsafePerformIO (getProcAddress "glColorPointervINTEL")

{-# NOINLINE glColorPointervINTELFunPtr #-}

glNormalPointervINTEL :: MonadIO m => GLenum -> Ptr () -> m ()
glNormalPointervINTEL = ffienumPtrVIOV glNormalPointervINTELFunPtr

glNormalPointervINTELFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
glNormalPointervINTELFunPtr = unsafePerformIO (getProcAddress "glNormalPointervINTEL")

{-# NOINLINE glNormalPointervINTELFunPtr #-}

glTexCoordPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr () -> m ()
glTexCoordPointervINTEL = ffiintenumPtrVIOV glTexCoordPointervINTELFunPtr

glTexCoordPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr () -> IO ())
glTexCoordPointervINTELFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointervINTEL")

{-# NOINLINE glTexCoordPointervINTELFunPtr #-}

glVertexPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr () -> m ()
glVertexPointervINTEL = ffiintenumPtrVIOV glVertexPointervINTELFunPtr

glVertexPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr () -> IO ())
glVertexPointervINTELFunPtr = unsafePerformIO (getProcAddress "glVertexPointervINTEL")

{-# NOINLINE glVertexPointervINTELFunPtr #-}

pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7 :: GLenum

pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6 :: GLenum

pattern GL_PARALLEL_ARRAYS_INTEL = 0x83F4 :: GLenum

pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8 :: GLenum

pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5 :: GLenum