{-# language CPP #-}
-- No documentation found for Chapter "PipelineColorBlendStateCreateFlagBits"
module Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits  ( PipelineColorBlendStateCreateFlags
                                                                  , PipelineColorBlendStateCreateFlagBits( PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
                                                                                                         , ..
                                                                                                         )
                                                                  ) where

import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showString)
import Numeric (showHex)
import Vulkan.Zero (Zero)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Vulkan.Core10.FundamentalTypes (Flags)
type PipelineColorBlendStateCreateFlags = PipelineColorBlendStateCreateFlagBits

-- | VkPipelineColorBlendStateCreateFlagBits - Bitmask specifying additional
-- parameters of an image
--
-- = Description
--
-- -   'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
--     indicates that access to color and input attachments will have
--     implicit framebuffer-local memory dependencies, allowing
--     applications to express custom blending operations in a fragment
--     shader.
--
-- When
-- 'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'
-- is included in a pipeline, it forms a framebuffer-local memory
-- dependency for each fragment generated by draw commands for that
-- pipeline with the following scopes:
--
-- -   The first
--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--     includes the
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
--     pipeline stage executed by all previous fragments (as defined by
--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>)
--     in the corresponding
--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer regions>
--     including those generated by the same draw command.
--
-- -   The second
--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>
--     includes the
--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
--     pipeline stage executed by the generated fragment.
--
-- -   The first
--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--     includes all writes to color attachments.
--
-- -   The second
--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>
--     includes all reads from input attachments.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access VK_EXT_rasterization_order_attachment_access>,
-- 'PipelineColorBlendStateCreateFlags'
newtype PipelineColorBlendStateCreateFlagBits = PipelineColorBlendStateCreateFlagBits Flags
  deriving newtype (PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
$c/= :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
== :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
$c== :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
Eq, Eq PipelineColorBlendStateCreateFlagBits
PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Ordering
PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
$cmin :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
max :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
$cmax :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
>= :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
$c>= :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
> :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
$c> :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
<= :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
$c<= :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
< :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
$c< :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Bool
compare :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Ordering
$ccompare :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> Ordering
Ord, Ptr PipelineColorBlendStateCreateFlagBits
-> IO PipelineColorBlendStateCreateFlagBits
Ptr PipelineColorBlendStateCreateFlagBits
-> Int -> IO PipelineColorBlendStateCreateFlagBits
Ptr PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits -> IO ()
Ptr PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> IO ()
PipelineColorBlendStateCreateFlagBits -> Int
forall b. Ptr b -> Int -> IO PipelineColorBlendStateCreateFlagBits
forall b.
Ptr b -> Int -> PipelineColorBlendStateCreateFlagBits -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> IO ()
$cpoke :: Ptr PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits -> IO ()
peek :: Ptr PipelineColorBlendStateCreateFlagBits
-> IO PipelineColorBlendStateCreateFlagBits
$cpeek :: Ptr PipelineColorBlendStateCreateFlagBits
-> IO PipelineColorBlendStateCreateFlagBits
pokeByteOff :: forall b.
Ptr b -> Int -> PipelineColorBlendStateCreateFlagBits -> IO ()
$cpokeByteOff :: forall b.
Ptr b -> Int -> PipelineColorBlendStateCreateFlagBits -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO PipelineColorBlendStateCreateFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PipelineColorBlendStateCreateFlagBits
pokeElemOff :: Ptr PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits -> IO ()
$cpokeElemOff :: Ptr PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits -> IO ()
peekElemOff :: Ptr PipelineColorBlendStateCreateFlagBits
-> Int -> IO PipelineColorBlendStateCreateFlagBits
$cpeekElemOff :: Ptr PipelineColorBlendStateCreateFlagBits
-> Int -> IO PipelineColorBlendStateCreateFlagBits
alignment :: PipelineColorBlendStateCreateFlagBits -> Int
$calignment :: PipelineColorBlendStateCreateFlagBits -> Int
sizeOf :: PipelineColorBlendStateCreateFlagBits -> Int
$csizeOf :: PipelineColorBlendStateCreateFlagBits -> Int
Storable, PipelineColorBlendStateCreateFlagBits
forall a. a -> Zero a
zero :: PipelineColorBlendStateCreateFlagBits
$czero :: PipelineColorBlendStateCreateFlagBits
Zero, Eq PipelineColorBlendStateCreateFlagBits
PipelineColorBlendStateCreateFlagBits
Int -> PipelineColorBlendStateCreateFlagBits
PipelineColorBlendStateCreateFlagBits -> Bool
PipelineColorBlendStateCreateFlagBits -> Int
PipelineColorBlendStateCreateFlagBits -> Maybe Int
PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
PipelineColorBlendStateCreateFlagBits -> Int -> Bool
PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: PipelineColorBlendStateCreateFlagBits -> Int
$cpopCount :: PipelineColorBlendStateCreateFlagBits -> Int
rotateR :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$crotateR :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
rotateL :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$crotateL :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
unsafeShiftR :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$cunsafeShiftR :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
shiftR :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$cshiftR :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
unsafeShiftL :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$cunsafeShiftL :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
shiftL :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$cshiftL :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
isSigned :: PipelineColorBlendStateCreateFlagBits -> Bool
$cisSigned :: PipelineColorBlendStateCreateFlagBits -> Bool
bitSize :: PipelineColorBlendStateCreateFlagBits -> Int
$cbitSize :: PipelineColorBlendStateCreateFlagBits -> Int
bitSizeMaybe :: PipelineColorBlendStateCreateFlagBits -> Maybe Int
$cbitSizeMaybe :: PipelineColorBlendStateCreateFlagBits -> Maybe Int
testBit :: PipelineColorBlendStateCreateFlagBits -> Int -> Bool
$ctestBit :: PipelineColorBlendStateCreateFlagBits -> Int -> Bool
complementBit :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$ccomplementBit :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
clearBit :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$cclearBit :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
setBit :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$csetBit :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
bit :: Int -> PipelineColorBlendStateCreateFlagBits
$cbit :: Int -> PipelineColorBlendStateCreateFlagBits
zeroBits :: PipelineColorBlendStateCreateFlagBits
$czeroBits :: PipelineColorBlendStateCreateFlagBits
rotate :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$crotate :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
shift :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
$cshift :: PipelineColorBlendStateCreateFlagBits
-> Int -> PipelineColorBlendStateCreateFlagBits
complement :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
$ccomplement :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
xor :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
$cxor :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
.|. :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
$c.|. :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
.&. :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
$c.&. :: PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
-> PipelineColorBlendStateCreateFlagBits
Bits, Bits PipelineColorBlendStateCreateFlagBits
PipelineColorBlendStateCreateFlagBits -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: PipelineColorBlendStateCreateFlagBits -> Int
$ccountTrailingZeros :: PipelineColorBlendStateCreateFlagBits -> Int
countLeadingZeros :: PipelineColorBlendStateCreateFlagBits -> Int
$ccountLeadingZeros :: PipelineColorBlendStateCreateFlagBits -> Int
finiteBitSize :: PipelineColorBlendStateCreateFlagBits -> Int
$cfiniteBitSize :: PipelineColorBlendStateCreateFlagBits -> Int
FiniteBits)

-- No documentation found for Nested "VkPipelineColorBlendStateCreateFlagBits" "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT"
pattern $bPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT :: PipelineColorBlendStateCreateFlagBits
$mPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT :: forall {r}.
PipelineColorBlendStateCreateFlagBits
-> ((# #) -> r) -> ((# #) -> r) -> r
PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = PipelineColorBlendStateCreateFlagBits 0x00000001

conNamePipelineColorBlendStateCreateFlagBits :: String
conNamePipelineColorBlendStateCreateFlagBits :: String
conNamePipelineColorBlendStateCreateFlagBits = String
"PipelineColorBlendStateCreateFlagBits"

enumPrefixPipelineColorBlendStateCreateFlagBits :: String
enumPrefixPipelineColorBlendStateCreateFlagBits :: String
enumPrefixPipelineColorBlendStateCreateFlagBits = String
"PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT"

showTablePipelineColorBlendStateCreateFlagBits :: [(PipelineColorBlendStateCreateFlagBits, String)]
showTablePipelineColorBlendStateCreateFlagBits :: [(PipelineColorBlendStateCreateFlagBits, String)]
showTablePipelineColorBlendStateCreateFlagBits =
  [
    ( PipelineColorBlendStateCreateFlagBits
PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
    , String
""
    )
  ]

instance Show PipelineColorBlendStateCreateFlagBits where
  showsPrec :: Int -> PipelineColorBlendStateCreateFlagBits -> ShowS
showsPrec =
    forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixPipelineColorBlendStateCreateFlagBits
      [(PipelineColorBlendStateCreateFlagBits, String)]
showTablePipelineColorBlendStateCreateFlagBits
      String
conNamePipelineColorBlendStateCreateFlagBits
      (\(PipelineColorBlendStateCreateFlagBits Flags
x) -> Flags
x)
      (\Flags
x -> String -> ShowS
showString String
"0x" forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

instance Read PipelineColorBlendStateCreateFlagBits where
  readPrec :: ReadPrec PipelineColorBlendStateCreateFlagBits
readPrec =
    forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixPipelineColorBlendStateCreateFlagBits
      [(PipelineColorBlendStateCreateFlagBits, String)]
showTablePipelineColorBlendStateCreateFlagBits
      String
conNamePipelineColorBlendStateCreateFlagBits
      Flags -> PipelineColorBlendStateCreateFlagBits
PipelineColorBlendStateCreateFlagBits