{-# language CPP #-}
-- No documentation found for Chapter "CommandBufferResetFlagBits"
module Vulkan.Core10.Enums.CommandBufferResetFlagBits  ( CommandBufferResetFlags
                                                       , CommandBufferResetFlagBits( COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
                                                                                   , ..
                                                                                   )
                                                       ) where

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

-- | VkCommandBufferResetFlagBits - Bitmask controlling behavior of a command
-- buffer reset
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'CommandBufferResetFlags'
newtype CommandBufferResetFlagBits = CommandBufferResetFlagBits Flags
  deriving newtype (CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
(CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool)
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> Bool)
-> Eq CommandBufferResetFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
$c/= :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
== :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
$c== :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
Eq, Eq CommandBufferResetFlagBits
Eq CommandBufferResetFlagBits
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> Ordering)
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> Bool)
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> Bool)
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> Bool)
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> Bool)
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> CommandBufferResetFlagBits)
-> Ord CommandBufferResetFlagBits
CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> Ordering
CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
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 :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
$cmin :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
max :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
$cmax :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
>= :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
$c>= :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
> :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
$c> :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
<= :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
$c<= :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
< :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
$c< :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits -> Bool
compare :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> Ordering
$ccompare :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> Ordering
$cp1Ord :: Eq CommandBufferResetFlagBits
Ord, Ptr b -> Int -> IO CommandBufferResetFlagBits
Ptr b -> Int -> CommandBufferResetFlagBits -> IO ()
Ptr CommandBufferResetFlagBits -> IO CommandBufferResetFlagBits
Ptr CommandBufferResetFlagBits
-> Int -> IO CommandBufferResetFlagBits
Ptr CommandBufferResetFlagBits
-> Int -> CommandBufferResetFlagBits -> IO ()
Ptr CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> IO ()
CommandBufferResetFlagBits -> Int
(CommandBufferResetFlagBits -> Int)
-> (CommandBufferResetFlagBits -> Int)
-> (Ptr CommandBufferResetFlagBits
    -> Int -> IO CommandBufferResetFlagBits)
-> (Ptr CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO CommandBufferResetFlagBits)
-> (forall b. Ptr b -> Int -> CommandBufferResetFlagBits -> IO ())
-> (Ptr CommandBufferResetFlagBits
    -> IO CommandBufferResetFlagBits)
-> (Ptr CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> IO ())
-> Storable CommandBufferResetFlagBits
forall b. Ptr b -> Int -> IO CommandBufferResetFlagBits
forall b. Ptr b -> Int -> CommandBufferResetFlagBits -> 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 CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> IO ()
$cpoke :: Ptr CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> IO ()
peek :: Ptr CommandBufferResetFlagBits -> IO CommandBufferResetFlagBits
$cpeek :: Ptr CommandBufferResetFlagBits -> IO CommandBufferResetFlagBits
pokeByteOff :: Ptr b -> Int -> CommandBufferResetFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> CommandBufferResetFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO CommandBufferResetFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CommandBufferResetFlagBits
pokeElemOff :: Ptr CommandBufferResetFlagBits
-> Int -> CommandBufferResetFlagBits -> IO ()
$cpokeElemOff :: Ptr CommandBufferResetFlagBits
-> Int -> CommandBufferResetFlagBits -> IO ()
peekElemOff :: Ptr CommandBufferResetFlagBits
-> Int -> IO CommandBufferResetFlagBits
$cpeekElemOff :: Ptr CommandBufferResetFlagBits
-> Int -> IO CommandBufferResetFlagBits
alignment :: CommandBufferResetFlagBits -> Int
$calignment :: CommandBufferResetFlagBits -> Int
sizeOf :: CommandBufferResetFlagBits -> Int
$csizeOf :: CommandBufferResetFlagBits -> Int
Storable, CommandBufferResetFlagBits
CommandBufferResetFlagBits -> Zero CommandBufferResetFlagBits
forall a. a -> Zero a
zero :: CommandBufferResetFlagBits
$czero :: CommandBufferResetFlagBits
Zero, Eq CommandBufferResetFlagBits
CommandBufferResetFlagBits
Eq CommandBufferResetFlagBits
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> CommandBufferResetFlagBits -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> CommandBufferResetFlagBits
-> (Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits -> Int -> Bool)
-> (CommandBufferResetFlagBits -> Maybe Int)
-> (CommandBufferResetFlagBits -> Int)
-> (CommandBufferResetFlagBits -> Bool)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits
    -> Int -> CommandBufferResetFlagBits)
-> (CommandBufferResetFlagBits -> Int)
-> Bits CommandBufferResetFlagBits
Int -> CommandBufferResetFlagBits
CommandBufferResetFlagBits -> Bool
CommandBufferResetFlagBits -> Int
CommandBufferResetFlagBits -> Maybe Int
CommandBufferResetFlagBits -> CommandBufferResetFlagBits
CommandBufferResetFlagBits -> Int -> Bool
CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
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 :: CommandBufferResetFlagBits -> Int
$cpopCount :: CommandBufferResetFlagBits -> Int
rotateR :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$crotateR :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
rotateL :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$crotateL :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
unsafeShiftR :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$cunsafeShiftR :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
shiftR :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$cshiftR :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
unsafeShiftL :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$cunsafeShiftL :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
shiftL :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$cshiftL :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
isSigned :: CommandBufferResetFlagBits -> Bool
$cisSigned :: CommandBufferResetFlagBits -> Bool
bitSize :: CommandBufferResetFlagBits -> Int
$cbitSize :: CommandBufferResetFlagBits -> Int
bitSizeMaybe :: CommandBufferResetFlagBits -> Maybe Int
$cbitSizeMaybe :: CommandBufferResetFlagBits -> Maybe Int
testBit :: CommandBufferResetFlagBits -> Int -> Bool
$ctestBit :: CommandBufferResetFlagBits -> Int -> Bool
complementBit :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$ccomplementBit :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
clearBit :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$cclearBit :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
setBit :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$csetBit :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
bit :: Int -> CommandBufferResetFlagBits
$cbit :: Int -> CommandBufferResetFlagBits
zeroBits :: CommandBufferResetFlagBits
$czeroBits :: CommandBufferResetFlagBits
rotate :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$crotate :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
shift :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
$cshift :: CommandBufferResetFlagBits -> Int -> CommandBufferResetFlagBits
complement :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits
$ccomplement :: CommandBufferResetFlagBits -> CommandBufferResetFlagBits
xor :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
$cxor :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
.|. :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
$c.|. :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
.&. :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
$c.&. :: CommandBufferResetFlagBits
-> CommandBufferResetFlagBits -> CommandBufferResetFlagBits
$cp1Bits :: Eq CommandBufferResetFlagBits
Bits, Bits CommandBufferResetFlagBits
Bits CommandBufferResetFlagBits
-> (CommandBufferResetFlagBits -> Int)
-> (CommandBufferResetFlagBits -> Int)
-> (CommandBufferResetFlagBits -> Int)
-> FiniteBits CommandBufferResetFlagBits
CommandBufferResetFlagBits -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: CommandBufferResetFlagBits -> Int
$ccountTrailingZeros :: CommandBufferResetFlagBits -> Int
countLeadingZeros :: CommandBufferResetFlagBits -> Int
$ccountLeadingZeros :: CommandBufferResetFlagBits -> Int
finiteBitSize :: CommandBufferResetFlagBits -> Int
$cfiniteBitSize :: CommandBufferResetFlagBits -> Int
$cp1FiniteBits :: Bits CommandBufferResetFlagBits
FiniteBits)

-- | 'COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT' specifies that most or all
-- memory resources currently owned by the command buffer /should/ be
-- returned to the parent command pool. If this flag is not set, then the
-- command buffer /may/ hold onto memory resources and reuse them when
-- recording commands. @commandBuffer@ is moved to the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.
pattern $bCOMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT :: CommandBufferResetFlagBits
$mCOMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT :: forall r.
CommandBufferResetFlagBits -> (Void# -> r) -> (Void# -> r) -> r
COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = CommandBufferResetFlagBits 0x00000001

conNameCommandBufferResetFlagBits :: String
conNameCommandBufferResetFlagBits :: String
conNameCommandBufferResetFlagBits = String
"CommandBufferResetFlagBits"

enumPrefixCommandBufferResetFlagBits :: String
enumPrefixCommandBufferResetFlagBits :: String
enumPrefixCommandBufferResetFlagBits = String
"COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"

showTableCommandBufferResetFlagBits :: [(CommandBufferResetFlagBits, String)]
showTableCommandBufferResetFlagBits :: [(CommandBufferResetFlagBits, String)]
showTableCommandBufferResetFlagBits = [(CommandBufferResetFlagBits
COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT, String
"")]

instance Show CommandBufferResetFlagBits where
  showsPrec :: Int -> CommandBufferResetFlagBits -> ShowS
showsPrec = String
-> [(CommandBufferResetFlagBits, String)]
-> String
-> (CommandBufferResetFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> CommandBufferResetFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixCommandBufferResetFlagBits
                            [(CommandBufferResetFlagBits, String)]
showTableCommandBufferResetFlagBits
                            String
conNameCommandBufferResetFlagBits
                            (\(CommandBufferResetFlagBits 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, Show a) => a -> ShowS
showHex Flags
x)

instance Read CommandBufferResetFlagBits where
  readPrec :: ReadPrec CommandBufferResetFlagBits
readPrec = String
-> [(CommandBufferResetFlagBits, String)]
-> String
-> (Flags -> CommandBufferResetFlagBits)
-> ReadPrec CommandBufferResetFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixCommandBufferResetFlagBits
                          [(CommandBufferResetFlagBits, String)]
showTableCommandBufferResetFlagBits
                          String
conNameCommandBufferResetFlagBits
                          Flags -> CommandBufferResetFlagBits
CommandBufferResetFlagBits