-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.SUN.TriangleList (
  -- * Extension Support
    gl_SUN_triangle_list

  -- * GL_SUN_triangle_list
  , glReplacementCodePointerSUN
  , glReplacementCodeubSUN
  , glReplacementCodeubvSUN
  , glReplacementCodeuiSUN
  , glReplacementCodeuivSUN
  , glReplacementCodeusSUN
  , glReplacementCodeusvSUN
  , pattern GL_R1UI_C3F_V3F_SUN
  , pattern GL_R1UI_C4F_N3F_V3F_SUN
  , pattern GL_R1UI_C4UB_V3F_SUN
  , pattern GL_R1UI_N3F_V3F_SUN
  , pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN
  , pattern GL_R1UI_T2F_N3F_V3F_SUN
  , pattern GL_R1UI_T2F_V3F_SUN
  , pattern GL_R1UI_V3F_SUN
  , pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN
  , pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN
  , pattern GL_REPLACEMENT_CODE_ARRAY_SUN
  , pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN
  , pattern GL_REPLACEMENT_CODE_SUN
  , pattern GL_REPLACE_MIDDLE_SUN
  , pattern GL_REPLACE_OLDEST_SUN
  , pattern GL_RESTART_SUN
  , pattern GL_TRIANGLE_LIST_SUN
) 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/SUN/triangle_list.txt GL_SUN_triangle_list> extension is available.

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

-- | Usage: @'glReplacementCodePointerSUN' type stride pointer@
--
-- The parameter @type@ is a @ReplacementCodeTypeSUN@.
--
-- The length of @pointer@ should be @COMPSIZE(type,stride)@.


glReplacementCodePointerSUN :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
glReplacementCodePointerSUN :: GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
glReplacementCodePointerSUN = FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ())
-> GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ())
-> GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
ffienumsizeiPtrPtrVIOV FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ())
glReplacementCodePointerSUNFunPtr

glReplacementCodePointerSUNFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ())
glReplacementCodePointerSUNFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ())
glReplacementCodePointerSUNFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glReplacementCodePointerSUN")

{-# NOINLINE glReplacementCodePointerSUNFunPtr #-}

-- | Usage: @'glReplacementCodeubSUN' code@


glReplacementCodeubSUN :: MonadIO m => GLubyte -> m ()
glReplacementCodeubSUN :: GLubyte -> m ()
glReplacementCodeubSUN = FunPtr (GLubyte -> IO ()) -> GLubyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLubyte -> IO ()) -> GLubyte -> m ()
ffiubyteIOV FunPtr (GLubyte -> IO ())
glReplacementCodeubSUNFunPtr

glReplacementCodeubSUNFunPtr :: FunPtr (GLubyte -> IO ())
glReplacementCodeubSUNFunPtr :: FunPtr (GLubyte -> IO ())
glReplacementCodeubSUNFunPtr = IO (FunPtr (GLubyte -> IO ())) -> FunPtr (GLubyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLubyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glReplacementCodeubSUN")

{-# NOINLINE glReplacementCodeubSUNFunPtr #-}

-- | Usage: @'glReplacementCodeubvSUN' code@
--
-- The length of @code@ should be @COMPSIZE()@.


glReplacementCodeubvSUN :: MonadIO m => Ptr GLubyte -> m ()
glReplacementCodeubvSUN :: Ptr GLubyte -> m ()
glReplacementCodeubvSUN = FunPtr (Ptr GLubyte -> IO ()) -> Ptr GLubyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLubyte -> IO ()) -> Ptr GLubyte -> m ()
ffiPtrubyteIOV FunPtr (Ptr GLubyte -> IO ())
glReplacementCodeubvSUNFunPtr

glReplacementCodeubvSUNFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glReplacementCodeubvSUNFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glReplacementCodeubvSUNFunPtr = IO (FunPtr (Ptr GLubyte -> IO ())) -> FunPtr (Ptr GLubyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLubyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glReplacementCodeubvSUN")

{-# NOINLINE glReplacementCodeubvSUNFunPtr #-}

-- | Usage: @'glReplacementCodeuiSUN' code@


glReplacementCodeuiSUN :: MonadIO m => GLuint -> m ()
glReplacementCodeuiSUN :: GLenum -> m ()
glReplacementCodeuiSUN = FunPtr (GLenum -> IO ()) -> GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> IO ()) -> GLenum -> m ()
ffiuintIOV FunPtr (GLenum -> IO ())
glReplacementCodeuiSUNFunPtr

glReplacementCodeuiSUNFunPtr :: FunPtr (GLuint -> IO ())
glReplacementCodeuiSUNFunPtr :: FunPtr (GLenum -> IO ())
glReplacementCodeuiSUNFunPtr = IO (FunPtr (GLenum -> IO ())) -> FunPtr (GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glReplacementCodeuiSUN")

{-# NOINLINE glReplacementCodeuiSUNFunPtr #-}

-- | Usage: @'glReplacementCodeuivSUN' code@
--
-- The length of @code@ should be @COMPSIZE()@.


glReplacementCodeuivSUN :: MonadIO m => Ptr GLuint -> m ()
glReplacementCodeuivSUN :: Ptr GLenum -> m ()
glReplacementCodeuivSUN = FunPtr (Ptr GLenum -> IO ()) -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLenum -> IO ()) -> Ptr GLenum -> m ()
ffiPtruintIOV FunPtr (Ptr GLenum -> IO ())
glReplacementCodeuivSUNFunPtr

glReplacementCodeuivSUNFunPtr :: FunPtr (Ptr GLuint -> IO ())
glReplacementCodeuivSUNFunPtr :: FunPtr (Ptr GLenum -> IO ())
glReplacementCodeuivSUNFunPtr = IO (FunPtr (Ptr GLenum -> IO ())) -> FunPtr (Ptr GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLenum -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glReplacementCodeuivSUN")

{-# NOINLINE glReplacementCodeuivSUNFunPtr #-}

-- | Usage: @'glReplacementCodeusSUN' code@


glReplacementCodeusSUN :: MonadIO m => GLushort -> m ()
glReplacementCodeusSUN :: GLushort -> m ()
glReplacementCodeusSUN = FunPtr (GLushort -> IO ()) -> GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLushort -> IO ()) -> GLushort -> m ()
ffiushortIOV FunPtr (GLushort -> IO ())
glReplacementCodeusSUNFunPtr

glReplacementCodeusSUNFunPtr :: FunPtr (GLushort -> IO ())
glReplacementCodeusSUNFunPtr :: FunPtr (GLushort -> IO ())
glReplacementCodeusSUNFunPtr = IO (FunPtr (GLushort -> IO ())) -> FunPtr (GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLushort -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glReplacementCodeusSUN")

{-# NOINLINE glReplacementCodeusSUNFunPtr #-}

-- | Usage: @'glReplacementCodeusvSUN' code@
--
-- The length of @code@ should be @COMPSIZE()@.


glReplacementCodeusvSUN :: MonadIO m => Ptr GLushort -> m ()
glReplacementCodeusvSUN :: Ptr GLushort -> m ()
glReplacementCodeusvSUN = FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
ffiPtrushortIOV FunPtr (Ptr GLushort -> IO ())
glReplacementCodeusvSUNFunPtr

glReplacementCodeusvSUNFunPtr :: FunPtr (Ptr GLushort -> IO ())
glReplacementCodeusvSUNFunPtr :: FunPtr (Ptr GLushort -> IO ())
glReplacementCodeusvSUNFunPtr = IO (FunPtr (Ptr GLushort -> IO ()))
-> FunPtr (Ptr GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (Ptr GLushort -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glReplacementCodeusvSUN")

{-# NOINLINE glReplacementCodeusvSUNFunPtr #-}

pattern $bGL_R1UI_C3F_V3F_SUN :: a
$mGL_R1UI_C3F_V3F_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_R1UI_C3F_V3F_SUN = 0x85C6

pattern $bGL_R1UI_C4F_N3F_V3F_SUN :: a
$mGL_R1UI_C4F_N3F_V3F_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8

pattern $bGL_R1UI_C4UB_V3F_SUN :: a
$mGL_R1UI_C4UB_V3F_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_R1UI_C4UB_V3F_SUN = 0x85C5

pattern $bGL_R1UI_N3F_V3F_SUN :: a
$mGL_R1UI_N3F_V3F_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_R1UI_N3F_V3F_SUN = 0x85C7

pattern $bGL_R1UI_T2F_C4F_N3F_V3F_SUN :: a
$mGL_R1UI_T2F_C4F_N3F_V3F_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB

pattern $bGL_R1UI_T2F_N3F_V3F_SUN :: a
$mGL_R1UI_T2F_N3F_V3F_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA

pattern $bGL_R1UI_T2F_V3F_SUN :: a
$mGL_R1UI_T2F_V3F_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_R1UI_T2F_V3F_SUN = 0x85C9

pattern $bGL_R1UI_V3F_SUN :: a
$mGL_R1UI_V3F_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_R1UI_V3F_SUN = 0x85C4

pattern $bGL_REPLACEMENT_CODE_ARRAY_POINTER_SUN :: a
$mGL_REPLACEMENT_CODE_ARRAY_POINTER_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3

pattern $bGL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN :: a
$mGL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2

pattern $bGL_REPLACEMENT_CODE_ARRAY_SUN :: a
$mGL_REPLACEMENT_CODE_ARRAY_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0

pattern $bGL_REPLACEMENT_CODE_ARRAY_TYPE_SUN :: a
$mGL_REPLACEMENT_CODE_ARRAY_TYPE_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1

pattern $bGL_REPLACEMENT_CODE_SUN :: a
$mGL_REPLACEMENT_CODE_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REPLACEMENT_CODE_SUN = 0x81D8

pattern $bGL_REPLACE_MIDDLE_SUN :: a
$mGL_REPLACE_MIDDLE_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REPLACE_MIDDLE_SUN = 0x0002

pattern $bGL_REPLACE_OLDEST_SUN :: a
$mGL_REPLACE_OLDEST_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_REPLACE_OLDEST_SUN = 0x0003

pattern $bGL_RESTART_SUN :: a
$mGL_RESTART_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_RESTART_SUN = 0x0001

pattern $bGL_TRIANGLE_LIST_SUN :: a
$mGL_TRIANGLE_LIST_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_TRIANGLE_LIST_SUN = 0x81D7