{-# language CPP #-}
-- No documentation found for Chapter "RenderingFlagBits"
module Vulkan.Core13.Enums.RenderingFlagBits  ( pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR
                                              , pattern RENDERING_SUSPENDING_BIT_KHR
                                              , pattern RENDERING_RESUMING_BIT_KHR
                                              , RenderingFlags
                                              , RenderingFlagBits( RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT
                                                                 , RENDERING_SUSPENDING_BIT
                                                                 , RENDERING_RESUMING_BIT
                                                                 , RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
                                                                 , RENDERING_CONTENTS_INLINE_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)
-- No documentation found for TopLevel "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR"
pattern $bRENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR :: RenderingFlagBits
$mRENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR :: forall {r}. RenderingFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT


-- No documentation found for TopLevel "VK_RENDERING_SUSPENDING_BIT_KHR"
pattern $bRENDERING_SUSPENDING_BIT_KHR :: RenderingFlagBits
$mRENDERING_SUSPENDING_BIT_KHR :: forall {r}. RenderingFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
RENDERING_SUSPENDING_BIT_KHR = RENDERING_SUSPENDING_BIT


-- No documentation found for TopLevel "VK_RENDERING_RESUMING_BIT_KHR"
pattern $bRENDERING_RESUMING_BIT_KHR :: RenderingFlagBits
$mRENDERING_RESUMING_BIT_KHR :: forall {r}. RenderingFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
RENDERING_RESUMING_BIT_KHR = RENDERING_RESUMING_BIT


type RenderingFlags = RenderingFlagBits

-- | VkRenderingFlagBits - Bitmask specifying additional properties of a
-- dynamic render pass instance
--
-- = Description
--
-- The contents of @pRenderingInfo@ /must/ match between suspended render
-- pass instances and the render pass instances that resume them, other
-- than the presence or absence of the 'RENDERING_RESUMING_BIT',
-- 'RENDERING_SUSPENDING_BIT', and
-- 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' flags. No action or
-- synchronization commands, or other render pass instances, are allowed
-- between suspending and resuming render pass instances.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
-- 'RenderingFlags'
newtype RenderingFlagBits = RenderingFlagBits Flags
  deriving newtype (RenderingFlagBits -> RenderingFlagBits -> Bool
(RenderingFlagBits -> RenderingFlagBits -> Bool)
-> (RenderingFlagBits -> RenderingFlagBits -> Bool)
-> Eq RenderingFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RenderingFlagBits -> RenderingFlagBits -> Bool
== :: RenderingFlagBits -> RenderingFlagBits -> Bool
$c/= :: RenderingFlagBits -> RenderingFlagBits -> Bool
/= :: RenderingFlagBits -> RenderingFlagBits -> Bool
Eq, Eq RenderingFlagBits
Eq RenderingFlagBits =>
(RenderingFlagBits -> RenderingFlagBits -> Ordering)
-> (RenderingFlagBits -> RenderingFlagBits -> Bool)
-> (RenderingFlagBits -> RenderingFlagBits -> Bool)
-> (RenderingFlagBits -> RenderingFlagBits -> Bool)
-> (RenderingFlagBits -> RenderingFlagBits -> Bool)
-> (RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits)
-> (RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits)
-> Ord RenderingFlagBits
RenderingFlagBits -> RenderingFlagBits -> Bool
RenderingFlagBits -> RenderingFlagBits -> Ordering
RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
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
$ccompare :: RenderingFlagBits -> RenderingFlagBits -> Ordering
compare :: RenderingFlagBits -> RenderingFlagBits -> Ordering
$c< :: RenderingFlagBits -> RenderingFlagBits -> Bool
< :: RenderingFlagBits -> RenderingFlagBits -> Bool
$c<= :: RenderingFlagBits -> RenderingFlagBits -> Bool
<= :: RenderingFlagBits -> RenderingFlagBits -> Bool
$c> :: RenderingFlagBits -> RenderingFlagBits -> Bool
> :: RenderingFlagBits -> RenderingFlagBits -> Bool
$c>= :: RenderingFlagBits -> RenderingFlagBits -> Bool
>= :: RenderingFlagBits -> RenderingFlagBits -> Bool
$cmax :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
max :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
$cmin :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
min :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
Ord, Ptr RenderingFlagBits -> IO RenderingFlagBits
Ptr RenderingFlagBits -> Int -> IO RenderingFlagBits
Ptr RenderingFlagBits -> Int -> RenderingFlagBits -> IO ()
Ptr RenderingFlagBits -> RenderingFlagBits -> IO ()
RenderingFlagBits -> Int
(RenderingFlagBits -> Int)
-> (RenderingFlagBits -> Int)
-> (Ptr RenderingFlagBits -> Int -> IO RenderingFlagBits)
-> (Ptr RenderingFlagBits -> Int -> RenderingFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO RenderingFlagBits)
-> (forall b. Ptr b -> Int -> RenderingFlagBits -> IO ())
-> (Ptr RenderingFlagBits -> IO RenderingFlagBits)
-> (Ptr RenderingFlagBits -> RenderingFlagBits -> IO ())
-> Storable RenderingFlagBits
forall b. Ptr b -> Int -> IO RenderingFlagBits
forall b. Ptr b -> Int -> RenderingFlagBits -> 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
$csizeOf :: RenderingFlagBits -> Int
sizeOf :: RenderingFlagBits -> Int
$calignment :: RenderingFlagBits -> Int
alignment :: RenderingFlagBits -> Int
$cpeekElemOff :: Ptr RenderingFlagBits -> Int -> IO RenderingFlagBits
peekElemOff :: Ptr RenderingFlagBits -> Int -> IO RenderingFlagBits
$cpokeElemOff :: Ptr RenderingFlagBits -> Int -> RenderingFlagBits -> IO ()
pokeElemOff :: Ptr RenderingFlagBits -> Int -> RenderingFlagBits -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO RenderingFlagBits
peekByteOff :: forall b. Ptr b -> Int -> IO RenderingFlagBits
$cpokeByteOff :: forall b. Ptr b -> Int -> RenderingFlagBits -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> RenderingFlagBits -> IO ()
$cpeek :: Ptr RenderingFlagBits -> IO RenderingFlagBits
peek :: Ptr RenderingFlagBits -> IO RenderingFlagBits
$cpoke :: Ptr RenderingFlagBits -> RenderingFlagBits -> IO ()
poke :: Ptr RenderingFlagBits -> RenderingFlagBits -> IO ()
Storable, RenderingFlagBits
RenderingFlagBits -> Zero RenderingFlagBits
forall a. a -> Zero a
$czero :: RenderingFlagBits
zero :: RenderingFlagBits
Zero, Eq RenderingFlagBits
RenderingFlagBits
Eq RenderingFlagBits =>
(RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits)
-> (RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits)
-> (RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits)
-> (RenderingFlagBits -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> RenderingFlagBits
-> (Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> Bool)
-> (RenderingFlagBits -> Maybe Int)
-> (RenderingFlagBits -> Int)
-> (RenderingFlagBits -> Bool)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int -> RenderingFlagBits)
-> (RenderingFlagBits -> Int)
-> Bits RenderingFlagBits
Int -> RenderingFlagBits
RenderingFlagBits -> Bool
RenderingFlagBits -> Int
RenderingFlagBits -> Maybe Int
RenderingFlagBits -> RenderingFlagBits
RenderingFlagBits -> Int -> Bool
RenderingFlagBits -> Int -> RenderingFlagBits
RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
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
$c.&. :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
.&. :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
$c.|. :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
.|. :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
$cxor :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
xor :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
$ccomplement :: RenderingFlagBits -> RenderingFlagBits
complement :: RenderingFlagBits -> RenderingFlagBits
$cshift :: RenderingFlagBits -> Int -> RenderingFlagBits
shift :: RenderingFlagBits -> Int -> RenderingFlagBits
$crotate :: RenderingFlagBits -> Int -> RenderingFlagBits
rotate :: RenderingFlagBits -> Int -> RenderingFlagBits
$czeroBits :: RenderingFlagBits
zeroBits :: RenderingFlagBits
$cbit :: Int -> RenderingFlagBits
bit :: Int -> RenderingFlagBits
$csetBit :: RenderingFlagBits -> Int -> RenderingFlagBits
setBit :: RenderingFlagBits -> Int -> RenderingFlagBits
$cclearBit :: RenderingFlagBits -> Int -> RenderingFlagBits
clearBit :: RenderingFlagBits -> Int -> RenderingFlagBits
$ccomplementBit :: RenderingFlagBits -> Int -> RenderingFlagBits
complementBit :: RenderingFlagBits -> Int -> RenderingFlagBits
$ctestBit :: RenderingFlagBits -> Int -> Bool
testBit :: RenderingFlagBits -> Int -> Bool
$cbitSizeMaybe :: RenderingFlagBits -> Maybe Int
bitSizeMaybe :: RenderingFlagBits -> Maybe Int
$cbitSize :: RenderingFlagBits -> Int
bitSize :: RenderingFlagBits -> Int
$cisSigned :: RenderingFlagBits -> Bool
isSigned :: RenderingFlagBits -> Bool
$cshiftL :: RenderingFlagBits -> Int -> RenderingFlagBits
shiftL :: RenderingFlagBits -> Int -> RenderingFlagBits
$cunsafeShiftL :: RenderingFlagBits -> Int -> RenderingFlagBits
unsafeShiftL :: RenderingFlagBits -> Int -> RenderingFlagBits
$cshiftR :: RenderingFlagBits -> Int -> RenderingFlagBits
shiftR :: RenderingFlagBits -> Int -> RenderingFlagBits
$cunsafeShiftR :: RenderingFlagBits -> Int -> RenderingFlagBits
unsafeShiftR :: RenderingFlagBits -> Int -> RenderingFlagBits
$crotateL :: RenderingFlagBits -> Int -> RenderingFlagBits
rotateL :: RenderingFlagBits -> Int -> RenderingFlagBits
$crotateR :: RenderingFlagBits -> Int -> RenderingFlagBits
rotateR :: RenderingFlagBits -> Int -> RenderingFlagBits
$cpopCount :: RenderingFlagBits -> Int
popCount :: RenderingFlagBits -> Int
Bits, Bits RenderingFlagBits
Bits RenderingFlagBits =>
(RenderingFlagBits -> Int)
-> (RenderingFlagBits -> Int)
-> (RenderingFlagBits -> Int)
-> FiniteBits RenderingFlagBits
RenderingFlagBits -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: RenderingFlagBits -> Int
finiteBitSize :: RenderingFlagBits -> Int
$ccountLeadingZeros :: RenderingFlagBits -> Int
countLeadingZeros :: RenderingFlagBits -> Int
$ccountTrailingZeros :: RenderingFlagBits -> Int
countTrailingZeros :: RenderingFlagBits -> Int
FiniteBits)

-- | 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' specifies that draw
-- calls for the render pass instance will be recorded in secondary command
-- buffers. If the
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
-- feature is enabled, the draw calls /can/ come from both inline and
-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands'.
pattern $bRENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT :: RenderingFlagBits
$mRENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT :: forall {r}. RenderingFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = RenderingFlagBits 0x00000001

-- | 'RENDERING_SUSPENDING_BIT' specifies that the render pass instance will
-- be suspended.
pattern $bRENDERING_SUSPENDING_BIT :: RenderingFlagBits
$mRENDERING_SUSPENDING_BIT :: forall {r}. RenderingFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
RENDERING_SUSPENDING_BIT = RenderingFlagBits 0x00000002

-- | 'RENDERING_RESUMING_BIT' specifies that the render pass instance is
-- resuming an earlier suspended render pass instance.
pattern $bRENDERING_RESUMING_BIT :: RenderingFlagBits
$mRENDERING_RESUMING_BIT :: forall {r}. RenderingFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
RENDERING_RESUMING_BIT = RenderingFlagBits 0x00000004

-- | 'RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT' specifies that
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-legacy-dithering Legacy Dithering>
-- is enabled for the render pass instance.
pattern $bRENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT :: RenderingFlagBits
$mRENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT :: forall {r}. RenderingFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = RenderingFlagBits 0x00000008

-- | 'RENDERING_CONTENTS_INLINE_BIT_EXT' specifies that draw calls for the
-- render pass instance /can/ be recorded inline within the current command
-- buffer. When the
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>
-- feature is enabled this /can/ be combined with the
-- 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' bit to allow draw
-- calls to be recorded both inline and in secondary command buffers.
pattern $bRENDERING_CONTENTS_INLINE_BIT_EXT :: RenderingFlagBits
$mRENDERING_CONTENTS_INLINE_BIT_EXT :: forall {r}. RenderingFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
RENDERING_CONTENTS_INLINE_BIT_EXT = RenderingFlagBits 0x00000010

conNameRenderingFlagBits :: String
conNameRenderingFlagBits :: String
conNameRenderingFlagBits = String
"RenderingFlagBits"

enumPrefixRenderingFlagBits :: String
enumPrefixRenderingFlagBits :: String
enumPrefixRenderingFlagBits = String
"RENDERING_"

showTableRenderingFlagBits :: [(RenderingFlagBits, String)]
showTableRenderingFlagBits :: [(RenderingFlagBits, String)]
showTableRenderingFlagBits =
  [
    ( RenderingFlagBits
RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT
    , String
"CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"
    )
  , (RenderingFlagBits
RENDERING_SUSPENDING_BIT, String
"SUSPENDING_BIT")
  , (RenderingFlagBits
RENDERING_RESUMING_BIT, String
"RESUMING_BIT")
  ,
    ( RenderingFlagBits
RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
    , String
"ENABLE_LEGACY_DITHERING_BIT_EXT"
    )
  ,
    ( RenderingFlagBits
RENDERING_CONTENTS_INLINE_BIT_EXT
    , String
"CONTENTS_INLINE_BIT_EXT"
    )
  ]

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

instance Read RenderingFlagBits where
  readPrec :: ReadPrec RenderingFlagBits
readPrec =
    String
-> [(RenderingFlagBits, String)]
-> String
-> (Flags -> RenderingFlagBits)
-> ReadPrec RenderingFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixRenderingFlagBits
      [(RenderingFlagBits, String)]
showTableRenderingFlagBits
      String
conNameRenderingFlagBits
      Flags -> RenderingFlagBits
RenderingFlagBits