{-# 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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RenderingFlagBits -> RenderingFlagBits -> Bool
$c/= :: RenderingFlagBits -> RenderingFlagBits -> Bool
== :: RenderingFlagBits -> RenderingFlagBits -> Bool
$c== :: RenderingFlagBits -> RenderingFlagBits -> Bool
Eq, Eq 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
min :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
$cmin :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
max :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
$cmax :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
>= :: RenderingFlagBits -> RenderingFlagBits -> Bool
$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
compare :: RenderingFlagBits -> RenderingFlagBits -> Ordering
$ccompare :: RenderingFlagBits -> RenderingFlagBits -> Ordering
Ord, Ptr RenderingFlagBits -> IO RenderingFlagBits
Ptr RenderingFlagBits -> Int -> IO RenderingFlagBits
Ptr RenderingFlagBits -> Int -> RenderingFlagBits -> IO ()
Ptr RenderingFlagBits -> RenderingFlagBits -> IO ()
RenderingFlagBits -> Int
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
poke :: Ptr RenderingFlagBits -> RenderingFlagBits -> IO ()
$cpoke :: Ptr RenderingFlagBits -> RenderingFlagBits -> IO ()
peek :: Ptr RenderingFlagBits -> IO RenderingFlagBits
$cpeek :: Ptr RenderingFlagBits -> IO RenderingFlagBits
pokeByteOff :: forall b. Ptr b -> Int -> RenderingFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> RenderingFlagBits -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO RenderingFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO RenderingFlagBits
pokeElemOff :: Ptr RenderingFlagBits -> Int -> RenderingFlagBits -> IO ()
$cpokeElemOff :: Ptr RenderingFlagBits -> Int -> RenderingFlagBits -> IO ()
peekElemOff :: Ptr RenderingFlagBits -> Int -> IO RenderingFlagBits
$cpeekElemOff :: Ptr RenderingFlagBits -> Int -> IO RenderingFlagBits
alignment :: RenderingFlagBits -> Int
$calignment :: RenderingFlagBits -> Int
sizeOf :: RenderingFlagBits -> Int
$csizeOf :: RenderingFlagBits -> Int
Storable, RenderingFlagBits
forall a. a -> Zero a
zero :: RenderingFlagBits
$czero :: RenderingFlagBits
Zero, Eq RenderingFlagBits
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
popCount :: RenderingFlagBits -> Int
$cpopCount :: RenderingFlagBits -> Int
rotateR :: RenderingFlagBits -> Int -> RenderingFlagBits
$crotateR :: RenderingFlagBits -> Int -> RenderingFlagBits
rotateL :: RenderingFlagBits -> Int -> RenderingFlagBits
$crotateL :: RenderingFlagBits -> Int -> RenderingFlagBits
unsafeShiftR :: RenderingFlagBits -> Int -> RenderingFlagBits
$cunsafeShiftR :: RenderingFlagBits -> Int -> RenderingFlagBits
shiftR :: RenderingFlagBits -> Int -> RenderingFlagBits
$cshiftR :: RenderingFlagBits -> Int -> RenderingFlagBits
unsafeShiftL :: RenderingFlagBits -> Int -> RenderingFlagBits
$cunsafeShiftL :: RenderingFlagBits -> Int -> RenderingFlagBits
shiftL :: RenderingFlagBits -> Int -> RenderingFlagBits
$cshiftL :: RenderingFlagBits -> Int -> RenderingFlagBits
isSigned :: RenderingFlagBits -> Bool
$cisSigned :: RenderingFlagBits -> Bool
bitSize :: RenderingFlagBits -> Int
$cbitSize :: RenderingFlagBits -> Int
bitSizeMaybe :: RenderingFlagBits -> Maybe Int
$cbitSizeMaybe :: RenderingFlagBits -> Maybe Int
testBit :: RenderingFlagBits -> Int -> Bool
$ctestBit :: RenderingFlagBits -> Int -> Bool
complementBit :: RenderingFlagBits -> Int -> RenderingFlagBits
$ccomplementBit :: RenderingFlagBits -> Int -> RenderingFlagBits
clearBit :: RenderingFlagBits -> Int -> RenderingFlagBits
$cclearBit :: RenderingFlagBits -> Int -> RenderingFlagBits
setBit :: RenderingFlagBits -> Int -> RenderingFlagBits
$csetBit :: RenderingFlagBits -> Int -> RenderingFlagBits
bit :: Int -> RenderingFlagBits
$cbit :: Int -> RenderingFlagBits
zeroBits :: RenderingFlagBits
$czeroBits :: RenderingFlagBits
rotate :: RenderingFlagBits -> Int -> RenderingFlagBits
$crotate :: RenderingFlagBits -> Int -> RenderingFlagBits
shift :: RenderingFlagBits -> Int -> RenderingFlagBits
$cshift :: RenderingFlagBits -> Int -> RenderingFlagBits
complement :: RenderingFlagBits -> RenderingFlagBits
$ccomplement :: RenderingFlagBits -> RenderingFlagBits
xor :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
$cxor :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
.|. :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
$c.|. :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
.&. :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
$c.&. :: RenderingFlagBits -> RenderingFlagBits -> RenderingFlagBits
Bits, Bits RenderingFlagBits
RenderingFlagBits -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: RenderingFlagBits -> Int
$ccountTrailingZeros :: RenderingFlagBits -> Int
countLeadingZeros :: RenderingFlagBits -> Int
$ccountLeadingZeros :: RenderingFlagBits -> Int
finiteBitSize :: RenderingFlagBits -> Int
$cfiniteBitSize :: 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 =
    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" forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

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