-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.AMD.InterleavedElements (
  -- * Extension Support
    gl_AMD_interleaved_elements

  -- * GL_AMD_interleaved_elements
  , glVertexAttribParameteriAMD
  , pattern GL_ALPHA
  , pattern GL_BLUE
  , pattern GL_GREEN
  , pattern GL_RED
  , pattern GL_RG16UI
  , pattern GL_RG8UI
  , pattern GL_RGBA8UI
  , pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD
  , pattern GL_VERTEX_ID_SWIZZLE_AMD
) 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/AMD/interleaved_elements.txt GL_AMD_interleaved_elements> extension is available.

gl_AMD_interleaved_elements :: Bool
gl_AMD_interleaved_elements :: Bool
gl_AMD_interleaved_elements = String -> Set String -> Bool
forall a. Ord a => a -> Set a -> Bool
member String
"GL_AMD_interleaved_elements" Set String
extensions
{-# NOINLINE gl_AMD_interleaved_elements #-}

-- | Usage: @'glVertexAttribParameteriAMD' index pname param@


glVertexAttribParameteriAMD :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
glVertexAttribParameteriAMD :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> GLint -> m ()
glVertexAttribParameteriAMD = FunPtr (GLuint -> GLuint -> GLint -> IO ())
-> GLuint -> GLuint -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLint -> IO ())
-> GLuint -> GLuint -> GLint -> m ()
ffiuintenumintIOV FunPtr (GLuint -> GLuint -> GLint -> IO ())
glVertexAttribParameteriAMDFunPtr

glVertexAttribParameteriAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
glVertexAttribParameteriAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> IO ())
glVertexAttribParameteriAMDFunPtr = IO (FunPtr (GLuint -> GLuint -> GLint -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> GLint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribParameteriAMD")

{-# NOINLINE glVertexAttribParameteriAMDFunPtr #-}

pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ELEMENT_SWIZZLE_AMD :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ELEMENT_SWIZZLE_AMD :: forall a. (Eq a, Num a) => a
GL_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4

pattern GL_VERTEX_ID_SWIZZLE_AMD  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ID_SWIZZLE_AMD :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ID_SWIZZLE_AMD :: forall a. (Eq a, Num a) => a
GL_VERTEX_ID_SWIZZLE_AMD = 0x91A5