vulkan-3.3: src/Vulkan/Core10/Enums/BlendFactor.hs
{-# language CPP #-}
module Vulkan.Core10.Enums.BlendFactor (BlendFactor( BLEND_FACTOR_ZERO
, BLEND_FACTOR_ONE
, BLEND_FACTOR_SRC_COLOR
, BLEND_FACTOR_ONE_MINUS_SRC_COLOR
, BLEND_FACTOR_DST_COLOR
, BLEND_FACTOR_ONE_MINUS_DST_COLOR
, BLEND_FACTOR_SRC_ALPHA
, BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
, BLEND_FACTOR_DST_ALPHA
, BLEND_FACTOR_ONE_MINUS_DST_ALPHA
, BLEND_FACTOR_CONSTANT_COLOR
, BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
, BLEND_FACTOR_CONSTANT_ALPHA
, BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
, BLEND_FACTOR_SRC_ALPHA_SATURATE
, BLEND_FACTOR_SRC1_COLOR
, BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
, BLEND_FACTOR_SRC1_ALPHA
, BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
, ..
)) where
import GHC.Read (choose)
import GHC.Read (expectP)
import GHC.Read (parens)
import GHC.Show (showParen)
import GHC.Show (showString)
import GHC.Show (showsPrec)
import Text.ParserCombinators.ReadPrec ((+++))
import Text.ParserCombinators.ReadPrec (prec)
import Text.ParserCombinators.ReadPrec (step)
import Foreign.Storable (Storable)
import Data.Int (Int32)
import GHC.Read (Read(readPrec))
import Text.Read.Lex (Lexeme(Ident))
import Vulkan.Zero (Zero)
-- | VkBlendFactor - Framebuffer blending factors
--
-- = Description
--
-- The semantics of each enum value is described in the table below:
--
-- +-----------------------------------------+---------------------+--------+
-- | 'BlendFactor' | RGB Blend Factors | Alpha |
-- | | (Sr,Sg,Sb) or | Blend |
-- | | (Dr,Dg,Db) | Factor |
-- | | | (Sa or |
-- | | | Da) |
-- +=========================================+=====================+========+
-- | 'BLEND_FACTOR_ZERO' | (0,0,0) | 0 |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_ONE' | (1,1,1) | 1 |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_SRC_COLOR' | (Rs0,Gs0,Bs0) | As0 |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_ONE_MINUS_SRC_COLOR' | (1-Rs0,1-Gs0,1-Bs0) | 1-As0 |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_DST_COLOR' | (Rd,Gd,Bd) | Ad |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_ONE_MINUS_DST_COLOR' | (1-Rd,1-Gd,1-Bd) | 1-Ad |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_SRC_ALPHA' | (As0,As0,As0) | As0 |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_ONE_MINUS_SRC_ALPHA' | (1-As0,1-As0,1-As0) | 1-As0 |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_DST_ALPHA' | (Ad,Ad,Ad) | Ad |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_ONE_MINUS_DST_ALPHA' | (1-Ad,1-Ad,1-Ad) | 1-Ad |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_CONSTANT_COLOR' | (Rc,Gc,Bc) | Ac |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR' | (1-Rc,1-Gc,1-Bc) | 1-Ac |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_CONSTANT_ALPHA' | (Ac,Ac,Ac) | Ac |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA' | (1-Ac,1-Ac,1-Ac) | 1-Ac |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_SRC_ALPHA_SATURATE' | (f,f,f); f = | 1 |
-- | | min(As0,1-Ad) | |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_SRC1_COLOR' | (Rs1,Gs1,Bs1) | As1 |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_ONE_MINUS_SRC1_COLOR' | (1-Rs1,1-Gs1,1-Bs1) | 1-As1 |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_SRC1_ALPHA' | (As1,As1,As1) | As1 |
-- +-----------------------------------------+---------------------+--------+
-- | 'BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA' | (1-As1,1-As1,1-As1) | 1-As1 |
-- +-----------------------------------------+---------------------+--------+
--
-- Blend Factors
--
-- In this table, the following conventions are used:
--
-- - Rs0,Gs0,Bs0 and As0 represent the first source color R, G, B, and A
-- components, respectively, for the fragment output location
-- corresponding to the color attachment being blended.
--
-- - Rs1,Gs1,Bs1 and As1 represent the second source color R, G, B, and A
-- components, respectively, used in dual source blending modes, for
-- the fragment output location corresponding to the color attachment
-- being blended.
--
-- - Rd,Gd,Bd and Ad represent the R, G, B, and A components of the
-- destination color. That is, the color currently in the corresponding
-- color attachment for this fragment\/sample.
--
-- - Rc,Gc,Bc and Ac represent the blend constant R, G, B, and A
-- components, respectively.
--
-- = See Also
--
-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'
newtype BlendFactor = BlendFactor Int32
deriving newtype (Eq, Ord, Storable, Zero)
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ZERO"
pattern BLEND_FACTOR_ZERO = BlendFactor 0
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE"
pattern BLEND_FACTOR_ONE = BlendFactor 1
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_COLOR"
pattern BLEND_FACTOR_SRC_COLOR = BlendFactor 2
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"
pattern BLEND_FACTOR_ONE_MINUS_SRC_COLOR = BlendFactor 3
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_DST_COLOR"
pattern BLEND_FACTOR_DST_COLOR = BlendFactor 4
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"
pattern BLEND_FACTOR_ONE_MINUS_DST_COLOR = BlendFactor 5
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_ALPHA"
pattern BLEND_FACTOR_SRC_ALPHA = BlendFactor 6
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"
pattern BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = BlendFactor 7
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_DST_ALPHA"
pattern BLEND_FACTOR_DST_ALPHA = BlendFactor 8
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"
pattern BLEND_FACTOR_ONE_MINUS_DST_ALPHA = BlendFactor 9
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_CONSTANT_COLOR"
pattern BLEND_FACTOR_CONSTANT_COLOR = BlendFactor 10
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"
pattern BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = BlendFactor 11
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_CONSTANT_ALPHA"
pattern BLEND_FACTOR_CONSTANT_ALPHA = BlendFactor 12
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"
pattern BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = BlendFactor 13
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"
pattern BLEND_FACTOR_SRC_ALPHA_SATURATE = BlendFactor 14
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC1_COLOR"
pattern BLEND_FACTOR_SRC1_COLOR = BlendFactor 15
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"
pattern BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = BlendFactor 16
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC1_ALPHA"
pattern BLEND_FACTOR_SRC1_ALPHA = BlendFactor 17
-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"
pattern BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = BlendFactor 18
{-# complete BLEND_FACTOR_ZERO,
BLEND_FACTOR_ONE,
BLEND_FACTOR_SRC_COLOR,
BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
BLEND_FACTOR_DST_COLOR,
BLEND_FACTOR_ONE_MINUS_DST_COLOR,
BLEND_FACTOR_SRC_ALPHA,
BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
BLEND_FACTOR_DST_ALPHA,
BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
BLEND_FACTOR_CONSTANT_COLOR,
BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
BLEND_FACTOR_CONSTANT_ALPHA,
BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
BLEND_FACTOR_SRC_ALPHA_SATURATE,
BLEND_FACTOR_SRC1_COLOR,
BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
BLEND_FACTOR_SRC1_ALPHA,
BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA :: BlendFactor #-}
instance Show BlendFactor where
showsPrec p = \case
BLEND_FACTOR_ZERO -> showString "BLEND_FACTOR_ZERO"
BLEND_FACTOR_ONE -> showString "BLEND_FACTOR_ONE"
BLEND_FACTOR_SRC_COLOR -> showString "BLEND_FACTOR_SRC_COLOR"
BLEND_FACTOR_ONE_MINUS_SRC_COLOR -> showString "BLEND_FACTOR_ONE_MINUS_SRC_COLOR"
BLEND_FACTOR_DST_COLOR -> showString "BLEND_FACTOR_DST_COLOR"
BLEND_FACTOR_ONE_MINUS_DST_COLOR -> showString "BLEND_FACTOR_ONE_MINUS_DST_COLOR"
BLEND_FACTOR_SRC_ALPHA -> showString "BLEND_FACTOR_SRC_ALPHA"
BLEND_FACTOR_ONE_MINUS_SRC_ALPHA -> showString "BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"
BLEND_FACTOR_DST_ALPHA -> showString "BLEND_FACTOR_DST_ALPHA"
BLEND_FACTOR_ONE_MINUS_DST_ALPHA -> showString "BLEND_FACTOR_ONE_MINUS_DST_ALPHA"
BLEND_FACTOR_CONSTANT_COLOR -> showString "BLEND_FACTOR_CONSTANT_COLOR"
BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR -> showString "BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"
BLEND_FACTOR_CONSTANT_ALPHA -> showString "BLEND_FACTOR_CONSTANT_ALPHA"
BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA -> showString "BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"
BLEND_FACTOR_SRC_ALPHA_SATURATE -> showString "BLEND_FACTOR_SRC_ALPHA_SATURATE"
BLEND_FACTOR_SRC1_COLOR -> showString "BLEND_FACTOR_SRC1_COLOR"
BLEND_FACTOR_ONE_MINUS_SRC1_COLOR -> showString "BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"
BLEND_FACTOR_SRC1_ALPHA -> showString "BLEND_FACTOR_SRC1_ALPHA"
BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA -> showString "BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"
BlendFactor x -> showParen (p >= 11) (showString "BlendFactor " . showsPrec 11 x)
instance Read BlendFactor where
readPrec = parens (choose [("BLEND_FACTOR_ZERO", pure BLEND_FACTOR_ZERO)
, ("BLEND_FACTOR_ONE", pure BLEND_FACTOR_ONE)
, ("BLEND_FACTOR_SRC_COLOR", pure BLEND_FACTOR_SRC_COLOR)
, ("BLEND_FACTOR_ONE_MINUS_SRC_COLOR", pure BLEND_FACTOR_ONE_MINUS_SRC_COLOR)
, ("BLEND_FACTOR_DST_COLOR", pure BLEND_FACTOR_DST_COLOR)
, ("BLEND_FACTOR_ONE_MINUS_DST_COLOR", pure BLEND_FACTOR_ONE_MINUS_DST_COLOR)
, ("BLEND_FACTOR_SRC_ALPHA", pure BLEND_FACTOR_SRC_ALPHA)
, ("BLEND_FACTOR_ONE_MINUS_SRC_ALPHA", pure BLEND_FACTOR_ONE_MINUS_SRC_ALPHA)
, ("BLEND_FACTOR_DST_ALPHA", pure BLEND_FACTOR_DST_ALPHA)
, ("BLEND_FACTOR_ONE_MINUS_DST_ALPHA", pure BLEND_FACTOR_ONE_MINUS_DST_ALPHA)
, ("BLEND_FACTOR_CONSTANT_COLOR", pure BLEND_FACTOR_CONSTANT_COLOR)
, ("BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR", pure BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR)
, ("BLEND_FACTOR_CONSTANT_ALPHA", pure BLEND_FACTOR_CONSTANT_ALPHA)
, ("BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", pure BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA)
, ("BLEND_FACTOR_SRC_ALPHA_SATURATE", pure BLEND_FACTOR_SRC_ALPHA_SATURATE)
, ("BLEND_FACTOR_SRC1_COLOR", pure BLEND_FACTOR_SRC1_COLOR)
, ("BLEND_FACTOR_ONE_MINUS_SRC1_COLOR", pure BLEND_FACTOR_ONE_MINUS_SRC1_COLOR)
, ("BLEND_FACTOR_SRC1_ALPHA", pure BLEND_FACTOR_SRC1_ALPHA)
, ("BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", pure BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA)]
+++
prec 10 (do
expectP (Ident "BlendFactor")
v <- step readPrec
pure (BlendFactor v)))