{-# language CPP #-}
  No documentation found for Chapter " BlendFactor "
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 Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showsPrec)
import Vulkan.Zero (Zero)
import Foreign.Storable (Storable)
import Data.Int (Int32)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))

-- | VkBlendFactor - Framebuffer blending factors
--
-- = Description
--
-- The semantics of the enum values are described in the table below:
--
-- +-----------------------------------------+---------------------+--------+
-- | 'BlendFactor'                           | RGB Blend Factors   | Alpha  |
  |                                          | ( Sr , Sg , Sb ) or        | Blend   |
  |                                          | ( Dr ,    )           | 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     |
-- +-----------------------------------------+---------------------+--------+
-- | '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  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
--
-- <-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
  ' Vulkan . Extensions . VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT ' ,
  ' 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_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 
   #
  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
  #-}

conNameBlendFactor :: String
conNameBlendFactor = "BlendFactor"

enumPrefixBlendFactor :: String
enumPrefixBlendFactor = "BLEND_FACTOR_"

showTableBlendFactor :: [(BlendFactor, String)]
showTableBlendFactor =
  [ (BLEND_FACTOR_ZERO, "ZERO")
  , (BLEND_FACTOR_ONE, "ONE")
  , (BLEND_FACTOR_SRC_COLOR, "SRC_COLOR")
  ,
    ( BLEND_FACTOR_ONE_MINUS_SRC_COLOR
    , "ONE_MINUS_SRC_COLOR"
    )
  , (BLEND_FACTOR_DST_COLOR, "DST_COLOR")
  ,
    ( BLEND_FACTOR_ONE_MINUS_DST_COLOR
    , "ONE_MINUS_DST_COLOR"
    )
  , (BLEND_FACTOR_SRC_ALPHA, "SRC_ALPHA")
  ,
    ( BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
    , "ONE_MINUS_SRC_ALPHA"
    )
  , (BLEND_FACTOR_DST_ALPHA, "DST_ALPHA")
  ,
    ( BLEND_FACTOR_ONE_MINUS_DST_ALPHA
    , "ONE_MINUS_DST_ALPHA"
    )
  , (BLEND_FACTOR_CONSTANT_COLOR, "CONSTANT_COLOR")
  ,
    ( BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
    , "ONE_MINUS_CONSTANT_COLOR"
    )
  , (BLEND_FACTOR_CONSTANT_ALPHA, "CONSTANT_ALPHA")
  ,
    ( BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
    , "ONE_MINUS_CONSTANT_ALPHA"
    )
  , (BLEND_FACTOR_SRC_ALPHA_SATURATE, "SRC_ALPHA_SATURATE")
  , (BLEND_FACTOR_SRC1_COLOR, "SRC1_COLOR")
  ,
    ( BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
    , "ONE_MINUS_SRC1_COLOR"
    )
  , (BLEND_FACTOR_SRC1_ALPHA, "SRC1_ALPHA")
  ,
    ( BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
    , "ONE_MINUS_SRC1_ALPHA"
    )
  ]

instance Show BlendFactor where
  showsPrec =
    enumShowsPrec
      enumPrefixBlendFactor
      showTableBlendFactor
      conNameBlendFactor
      (\(BlendFactor x) -> x)
      (showsPrec 11)

instance Read BlendFactor where
  readPrec =
    enumReadPrec
      enumPrefixBlendFactor
      showTableBlendFactor
      conNameBlendFactor
      BlendFactor

# language CPP #
 | VkBlendFactor - Framebuffer blending factors

 = Description

 The semantics of the enum values are described in the table below:

 +-----------------------------------------+---------------------+--------+
 | 'BlendFactor'                           | RGB Blend Factors   | Alpha  |
 |                                         |                     | (Sa or |
 |                                         |                     | Da)    |
 +=========================================+=====================+========+
 +-----------------------------------------+---------------------+--------+
 +-----------------------------------------+---------------------+--------+
 | 'BLEND_FACTOR_SRC_COLOR'                | (Rs0,Gs0,Bs0)       | As0    |
 +-----------------------------------------+---------------------+--------+
 +-----------------------------------------+---------------------+--------+
 +-----------------------------------------+---------------------+--------+
 +-----------------------------------------+---------------------+--------+
 | '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_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_ONE_MINUS_SRC1_ALPHA'     | (1-As1,1-As1,1-As1) | 1-As1  |
 +-----------------------------------------+---------------------+--------+

 Blend Factors

 In this table, the following conventions are used:

     components, respectively, for the fragment output location
     corresponding to the color attachment being blended.

     components, respectively, used in dual source blending modes, for
     the fragment output location corresponding to the color attachment
     being blended.

     destination color. That is, the color currently in the corresponding
     color attachment for this fragment\/sample.

     components, respectively.

 = See Also

 <-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ZERO"
 No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_COLOR"
 No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_DST_COLOR"
 No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"
 No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_CONSTANT_COLOR"
 No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"
 No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"
 No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC1_COLOR"
 No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"
  No documentation found for Chapter " BlendFactor "
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 Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showsPrec)
import Vulkan.Zero (Zero)
import Foreign.Storable (Storable)
import Data.Int (Int32)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))

  |                                          | ( Sr , Sg , Sb ) or        | Blend   |
  |                                          | ( Dr ,    )           | Factor |
  | ' BLEND_FACTOR_ZERO '                      | ( 0,0,0 )              | 0       |
  | ' BLEND_FACTOR_ONE '                       | ( 1,1,1 )              | 1       |
  | ' 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_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_SRC1_ALPHA '                | (  )        | As1     |
  -    Rs0,Gs0,Bs0 and As0 represent the first source color R , G , B , and A
  -    Rs1,Gs1,Bs1 and  represent the second source color R , G , B , and A
  -    Rd , Gd , Bd and Ad represent the R , G , B , and A components of the
  -    Rc , Gc , Bc and Ac represent the blend constant R , G , B , and A
  ' Vulkan . Extensions . VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT ' ,
  ' Vulkan . Core10.Pipeline . PipelineColorBlendAttachmentState '
newtype BlendFactor = BlendFactor Int32
  deriving newtype (Eq, Ord, Storable, Zero)

pattern BLEND_FACTOR_ZERO = BlendFactor 0

  No documentation found for Nested " VkBlendFactor " " VK_BLEND_FACTOR_ONE "
pattern BLEND_FACTOR_ONE = BlendFactor 1

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

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

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

pattern BLEND_FACTOR_CONSTANT_COLOR = BlendFactor 10

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

pattern BLEND_FACTOR_SRC_ALPHA_SATURATE = BlendFactor 14

pattern BLEND_FACTOR_SRC1_COLOR = BlendFactor 15

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_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 
   #
  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
  #-}

conNameBlendFactor :: String
conNameBlendFactor = "BlendFactor"

enumPrefixBlendFactor :: String
enumPrefixBlendFactor = "BLEND_FACTOR_"

showTableBlendFactor :: [(BlendFactor, String)]
showTableBlendFactor =
  [ (BLEND_FACTOR_ZERO, "ZERO")
  , (BLEND_FACTOR_ONE, "ONE")
  , (BLEND_FACTOR_SRC_COLOR, "SRC_COLOR")
  ,
    ( BLEND_FACTOR_ONE_MINUS_SRC_COLOR
    , "ONE_MINUS_SRC_COLOR"
    )
  , (BLEND_FACTOR_DST_COLOR, "DST_COLOR")
  ,
    ( BLEND_FACTOR_ONE_MINUS_DST_COLOR
    , "ONE_MINUS_DST_COLOR"
    )
  , (BLEND_FACTOR_SRC_ALPHA, "SRC_ALPHA")
  ,
    ( BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
    , "ONE_MINUS_SRC_ALPHA"
    )
  , (BLEND_FACTOR_DST_ALPHA, "DST_ALPHA")
  ,
    ( BLEND_FACTOR_ONE_MINUS_DST_ALPHA
    , "ONE_MINUS_DST_ALPHA"
    )
  , (BLEND_FACTOR_CONSTANT_COLOR, "CONSTANT_COLOR")
  ,
    ( BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
    , "ONE_MINUS_CONSTANT_COLOR"
    )
  , (BLEND_FACTOR_CONSTANT_ALPHA, "CONSTANT_ALPHA")
  ,
    ( BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
    , "ONE_MINUS_CONSTANT_ALPHA"
    )
  , (BLEND_FACTOR_SRC_ALPHA_SATURATE, "SRC_ALPHA_SATURATE")
  , (BLEND_FACTOR_SRC1_COLOR, "SRC1_COLOR")
  ,
    ( BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
    , "ONE_MINUS_SRC1_COLOR"
    )
  , (BLEND_FACTOR_SRC1_ALPHA, "SRC1_ALPHA")
  ,
    ( BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
    , "ONE_MINUS_SRC1_ALPHA"
    )
  ]

instance Show BlendFactor where
  showsPrec =
    enumShowsPrec
      enumPrefixBlendFactor
      showTableBlendFactor
      conNameBlendFactor
      (\(BlendFactor x) -> x)
      (showsPrec 11)

instance Read BlendFactor where
  readPrec =
    enumReadPrec
      enumPrefixBlendFactor
      showTableBlendFactor
      conNameBlendFactor
      BlendFactor
