-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.EXT.BlendFuncSeparate (
  -- * Extension Support
    gl_EXT_blend_func_separate

  -- * GL_EXT_blend_func_separate
  , glBlendFuncSeparateEXT
  , pattern GL_BLEND_DST_ALPHA_EXT
  , pattern GL_BLEND_DST_RGB_EXT
  , pattern GL_BLEND_SRC_ALPHA_EXT
  , pattern GL_BLEND_SRC_RGB_EXT
) 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_EXT_blend_func_separate :: Bool
gl_EXT_blend_func_separate = member "GL_EXT_blend_func_separate" extensions

glBlendFuncSeparateEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
glBlendFuncSeparateEXT = ffienumenumenumenumIOV glBlendFuncSeparateEXTFunPtr

glBlendFuncSeparateEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
glBlendFuncSeparateEXTFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateEXT")

{-# NOINLINE glBlendFuncSeparateEXTFunPtr #-}

pattern GL_BLEND_DST_ALPHA_EXT = 0x80CA :: GLenum

pattern GL_BLEND_DST_RGB_EXT = 0x80C8 :: GLenum

pattern GL_BLEND_SRC_ALPHA_EXT = 0x80CB :: GLenum

pattern GL_BLEND_SRC_RGB_EXT = 0x80C9 :: GLenum