{-# language CPP #-}
-- No documentation found for Chapter "SubmitFlagBits"
module Vulkan.Core13.Enums.SubmitFlagBits  ( pattern SUBMIT_PROTECTED_BIT_KHR
                                           , SubmitFlags
                                           , SubmitFlagBits( SUBMIT_PROTECTED_BIT
                                                           , ..
                                                           )
                                           ) 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_SUBMIT_PROTECTED_BIT_KHR"
pattern $bSUBMIT_PROTECTED_BIT_KHR :: SubmitFlagBits
$mSUBMIT_PROTECTED_BIT_KHR :: forall {r}. SubmitFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
SUBMIT_PROTECTED_BIT_KHR = SUBMIT_PROTECTED_BIT


type SubmitFlags = SubmitFlagBits

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

-- | 'SUBMIT_PROTECTED_BIT' specifies that this batch is a protected
-- submission.
pattern $bSUBMIT_PROTECTED_BIT :: SubmitFlagBits
$mSUBMIT_PROTECTED_BIT :: forall {r}. SubmitFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
SUBMIT_PROTECTED_BIT = SubmitFlagBits 0x00000001

conNameSubmitFlagBits :: String
conNameSubmitFlagBits :: String
conNameSubmitFlagBits = String
"SubmitFlagBits"

enumPrefixSubmitFlagBits :: String
enumPrefixSubmitFlagBits :: String
enumPrefixSubmitFlagBits = String
"SUBMIT_PROTECTED_BIT"

showTableSubmitFlagBits :: [(SubmitFlagBits, String)]
showTableSubmitFlagBits :: [(SubmitFlagBits, String)]
showTableSubmitFlagBits = [(SubmitFlagBits
SUBMIT_PROTECTED_BIT, String
"")]

instance Show SubmitFlagBits where
  showsPrec :: Int -> SubmitFlagBits -> ShowS
showsPrec =
    String
-> [(SubmitFlagBits, String)]
-> String
-> (SubmitFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> SubmitFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixSubmitFlagBits
      [(SubmitFlagBits, String)]
showTableSubmitFlagBits
      String
conNameSubmitFlagBits
      (\(SubmitFlagBits 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 SubmitFlagBits where
  readPrec :: ReadPrec SubmitFlagBits
readPrec =
    String
-> [(SubmitFlagBits, String)]
-> String
-> (Flags -> SubmitFlagBits)
-> ReadPrec SubmitFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixSubmitFlagBits
      [(SubmitFlagBits, String)]
showTableSubmitFlagBits
      String
conNameSubmitFlagBits
      Flags -> SubmitFlagBits
SubmitFlagBits