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

  -- * GL_SUN_global_alpha
  , glGlobalAlphaFactorbSUN
  , glGlobalAlphaFactordSUN
  , glGlobalAlphaFactorfSUN
  , glGlobalAlphaFactoriSUN
  , glGlobalAlphaFactorsSUN
  , glGlobalAlphaFactorubSUN
  , glGlobalAlphaFactoruiSUN
  , glGlobalAlphaFactorusSUN
  , pattern GL_GLOBAL_ALPHA_FACTOR_SUN
  , pattern GL_GLOBAL_ALPHA_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/global_alpha.txt GL_SUN_global_alpha> extension is available.

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

-- | Usage: @'glGlobalAlphaFactorbSUN' factor@


glGlobalAlphaFactorbSUN :: MonadIO m => GLbyte -> m ()
glGlobalAlphaFactorbSUN :: GLbyte -> m ()
glGlobalAlphaFactorbSUN = FunPtr (GLbyte -> IO ()) -> GLbyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLbyte -> IO ()) -> GLbyte -> m ()
ffibyteIOV FunPtr (GLbyte -> IO ())
glGlobalAlphaFactorbSUNFunPtr

glGlobalAlphaFactorbSUNFunPtr :: FunPtr (GLbyte -> IO ())
glGlobalAlphaFactorbSUNFunPtr :: FunPtr (GLbyte -> IO ())
glGlobalAlphaFactorbSUNFunPtr = IO (FunPtr (GLbyte -> IO ())) -> FunPtr (GLbyte -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLbyte -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGlobalAlphaFactorbSUN")

{-# NOINLINE glGlobalAlphaFactorbSUNFunPtr #-}

-- | Usage: @'glGlobalAlphaFactordSUN' factor@


glGlobalAlphaFactordSUN :: MonadIO m => GLdouble -> m ()
glGlobalAlphaFactordSUN :: GLdouble -> m ()
glGlobalAlphaFactordSUN = FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
ffidoubleIOV FunPtr (GLdouble -> IO ())
glGlobalAlphaFactordSUNFunPtr

glGlobalAlphaFactordSUNFunPtr :: FunPtr (GLdouble -> IO ())
glGlobalAlphaFactordSUNFunPtr :: FunPtr (GLdouble -> IO ())
glGlobalAlphaFactordSUNFunPtr = IO (FunPtr (GLdouble -> IO ())) -> FunPtr (GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLdouble -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGlobalAlphaFactordSUN")

{-# NOINLINE glGlobalAlphaFactordSUNFunPtr #-}

-- | Usage: @'glGlobalAlphaFactorfSUN' factor@


glGlobalAlphaFactorfSUN :: MonadIO m => GLfloat -> m ()
glGlobalAlphaFactorfSUN :: GLfloat -> m ()
glGlobalAlphaFactorfSUN = FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
ffifloatIOV FunPtr (GLfloat -> IO ())
glGlobalAlphaFactorfSUNFunPtr

glGlobalAlphaFactorfSUNFunPtr :: FunPtr (GLfloat -> IO ())
glGlobalAlphaFactorfSUNFunPtr :: FunPtr (GLfloat -> IO ())
glGlobalAlphaFactorfSUNFunPtr = IO (FunPtr (GLfloat -> IO ())) -> FunPtr (GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLfloat -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGlobalAlphaFactorfSUN")

{-# NOINLINE glGlobalAlphaFactorfSUNFunPtr #-}

-- | Usage: @'glGlobalAlphaFactoriSUN' factor@


glGlobalAlphaFactoriSUN :: MonadIO m => GLint -> m ()
glGlobalAlphaFactoriSUN :: GLint -> m ()
glGlobalAlphaFactoriSUN = FunPtr (GLint -> IO ()) -> GLint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> IO ()) -> GLint -> m ()
ffiintIOV FunPtr (GLint -> IO ())
glGlobalAlphaFactoriSUNFunPtr

glGlobalAlphaFactoriSUNFunPtr :: FunPtr (GLint -> IO ())
glGlobalAlphaFactoriSUNFunPtr :: FunPtr (GLint -> IO ())
glGlobalAlphaFactoriSUNFunPtr = IO (FunPtr (GLint -> IO ())) -> FunPtr (GLint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGlobalAlphaFactoriSUN")

{-# NOINLINE glGlobalAlphaFactoriSUNFunPtr #-}

-- | Usage: @'glGlobalAlphaFactorsSUN' factor@


glGlobalAlphaFactorsSUN :: MonadIO m => GLshort -> m ()
glGlobalAlphaFactorsSUN :: GLshort -> m ()
glGlobalAlphaFactorsSUN = FunPtr (GLshort -> IO ()) -> GLshort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLshort -> IO ()) -> GLshort -> m ()
ffishortIOV FunPtr (GLshort -> IO ())
glGlobalAlphaFactorsSUNFunPtr

glGlobalAlphaFactorsSUNFunPtr :: FunPtr (GLshort -> IO ())
glGlobalAlphaFactorsSUNFunPtr :: FunPtr (GLshort -> IO ())
glGlobalAlphaFactorsSUNFunPtr = IO (FunPtr (GLshort -> IO ())) -> FunPtr (GLshort -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLshort -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGlobalAlphaFactorsSUN")

{-# NOINLINE glGlobalAlphaFactorsSUNFunPtr #-}

-- | Usage: @'glGlobalAlphaFactorubSUN' factor@


glGlobalAlphaFactorubSUN :: MonadIO m => GLubyte -> m ()
glGlobalAlphaFactorubSUN :: GLubyte -> m ()
glGlobalAlphaFactorubSUN = FunPtr (GLubyte -> IO ()) -> GLubyte -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLubyte -> IO ()) -> GLubyte -> m ()
ffiubyteIOV FunPtr (GLubyte -> IO ())
glGlobalAlphaFactorubSUNFunPtr

glGlobalAlphaFactorubSUNFunPtr :: FunPtr (GLubyte -> IO ())
glGlobalAlphaFactorubSUNFunPtr :: FunPtr (GLubyte -> IO ())
glGlobalAlphaFactorubSUNFunPtr = 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 "glGlobalAlphaFactorubSUN")

{-# NOINLINE glGlobalAlphaFactorubSUNFunPtr #-}

-- | Usage: @'glGlobalAlphaFactoruiSUN' factor@


glGlobalAlphaFactoruiSUN :: MonadIO m => GLuint -> m ()
glGlobalAlphaFactoruiSUN :: GLuint -> m ()
glGlobalAlphaFactoruiSUN = FunPtr (GLuint -> IO ()) -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> IO ()) -> GLuint -> m ()
ffiuintIOV FunPtr (GLuint -> IO ())
glGlobalAlphaFactoruiSUNFunPtr

glGlobalAlphaFactoruiSUNFunPtr :: FunPtr (GLuint -> IO ())
glGlobalAlphaFactoruiSUNFunPtr :: FunPtr (GLuint -> IO ())
glGlobalAlphaFactoruiSUNFunPtr = IO (FunPtr (GLuint -> IO ())) -> FunPtr (GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGlobalAlphaFactoruiSUN")

{-# NOINLINE glGlobalAlphaFactoruiSUNFunPtr #-}

-- | Usage: @'glGlobalAlphaFactorusSUN' factor@


glGlobalAlphaFactorusSUN :: MonadIO m => GLushort -> m ()
glGlobalAlphaFactorusSUN :: GLushort -> m ()
glGlobalAlphaFactorusSUN = FunPtr (GLushort -> IO ()) -> GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLushort -> IO ()) -> GLushort -> m ()
ffiushortIOV FunPtr (GLushort -> IO ())
glGlobalAlphaFactorusSUNFunPtr

glGlobalAlphaFactorusSUNFunPtr :: FunPtr (GLushort -> IO ())
glGlobalAlphaFactorusSUNFunPtr :: FunPtr (GLushort -> IO ())
glGlobalAlphaFactorusSUNFunPtr = 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 "glGlobalAlphaFactorusSUN")

{-# NOINLINE glGlobalAlphaFactorusSUNFunPtr #-}

pattern $bGL_GLOBAL_ALPHA_FACTOR_SUN :: a
$mGL_GLOBAL_ALPHA_FACTOR_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA

pattern $bGL_GLOBAL_ALPHA_SUN :: a
$mGL_GLOBAL_ALPHA_SUN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_GLOBAL_ALPHA_SUN = 0x81D9