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

gl_SUN_triangle_list :: Bool
gl_SUN_triangle_list = member "GL_SUN_triangle_list" extensions

glReplacementCodePointerSUN :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glReplacementCodePointerSUN = ffienumsizeiPtrVIOV glReplacementCodePointerSUNFunPtr

glReplacementCodePointerSUNFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glReplacementCodePointerSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodePointerSUN")

{-# NOINLINE glReplacementCodePointerSUNFunPtr #-}

glReplacementCodeubSUN :: MonadIO m => GLubyte -> m ()
glReplacementCodeubSUN = ffiubyteIOV glReplacementCodeubSUNFunPtr

glReplacementCodeubSUNFunPtr :: FunPtr (GLubyte -> IO ())
glReplacementCodeubSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeubSUN")

{-# NOINLINE glReplacementCodeubSUNFunPtr #-}

glReplacementCodeubvSUN :: MonadIO m => Ptr GLubyte -> m ()
glReplacementCodeubvSUN = ffiPtrubyteIOV glReplacementCodeubvSUNFunPtr

glReplacementCodeubvSUNFunPtr :: FunPtr (Ptr GLubyte -> IO ())
glReplacementCodeubvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeubvSUN")

{-# NOINLINE glReplacementCodeubvSUNFunPtr #-}

glReplacementCodeuiSUN :: MonadIO m => GLuint -> m ()
glReplacementCodeuiSUN = ffiuintIOV glReplacementCodeuiSUNFunPtr

glReplacementCodeuiSUNFunPtr :: FunPtr (GLuint -> IO ())
glReplacementCodeuiSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiSUN")

{-# NOINLINE glReplacementCodeuiSUNFunPtr #-}

glReplacementCodeuivSUN :: MonadIO m => Ptr GLuint -> m ()
glReplacementCodeuivSUN = ffiPtruintIOV glReplacementCodeuivSUNFunPtr

glReplacementCodeuivSUNFunPtr :: FunPtr (Ptr GLuint -> IO ())
glReplacementCodeuivSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuivSUN")

{-# NOINLINE glReplacementCodeuivSUNFunPtr #-}

glReplacementCodeusSUN :: MonadIO m => GLushort -> m ()
glReplacementCodeusSUN = ffiushortIOV glReplacementCodeusSUNFunPtr

glReplacementCodeusSUNFunPtr :: FunPtr (GLushort -> IO ())
glReplacementCodeusSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeusSUN")

{-# NOINLINE glReplacementCodeusSUNFunPtr #-}

glReplacementCodeusvSUN :: MonadIO m => Ptr GLushort -> m ()
glReplacementCodeusvSUN = ffiPtrushortIOV glReplacementCodeusvSUNFunPtr

glReplacementCodeusvSUNFunPtr :: FunPtr (Ptr GLushort -> IO ())
glReplacementCodeusvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeusvSUN")

{-# NOINLINE glReplacementCodeusvSUNFunPtr #-}

pattern GL_R1UI_C3F_V3F_SUN = 0x85C6

pattern GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8

pattern GL_R1UI_C4UB_V3F_SUN = 0x85C5

pattern GL_R1UI_N3F_V3F_SUN = 0x85C7

pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB

pattern GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA

pattern GL_R1UI_T2F_V3F_SUN = 0x85C9

pattern GL_R1UI_V3F_SUN = 0x85C4

pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3

pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2

pattern GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0

pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1

pattern GL_REPLACEMENT_CODE_SUN = 0x81D8

pattern GL_REPLACE_MIDDLE_SUN = 0x0002

pattern GL_REPLACE_OLDEST_SUN = 0x0003

pattern GL_RESTART_SUN = 0x0001

pattern GL_TRIANGLE_LIST_SUN = 0x81D7