{-# language CPP #-}
-- No documentation found for Chapter "FenceImportFlagBits"
module Vulkan.Core11.Enums.FenceImportFlagBits  ( FenceImportFlags
                                                , FenceImportFlagBits( FENCE_IMPORT_TEMPORARY_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)
type FenceImportFlags = FenceImportFlagBits

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

-- | 'FENCE_IMPORT_TEMPORARY_BIT' specifies that the fence payload will be
-- imported only temporarily, as described in
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>,
-- regardless of the permanence of @handleType@.
pattern $bFENCE_IMPORT_TEMPORARY_BIT :: FenceImportFlagBits
$mFENCE_IMPORT_TEMPORARY_BIT :: forall {r}.
FenceImportFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
FENCE_IMPORT_TEMPORARY_BIT = FenceImportFlagBits 0x00000001

conNameFenceImportFlagBits :: String
conNameFenceImportFlagBits :: String
conNameFenceImportFlagBits = String
"FenceImportFlagBits"

enumPrefixFenceImportFlagBits :: String
enumPrefixFenceImportFlagBits :: String
enumPrefixFenceImportFlagBits = String
"FENCE_IMPORT_TEMPORARY_BIT"

showTableFenceImportFlagBits :: [(FenceImportFlagBits, String)]
showTableFenceImportFlagBits :: [(FenceImportFlagBits, String)]
showTableFenceImportFlagBits = [(FenceImportFlagBits
FENCE_IMPORT_TEMPORARY_BIT, String
"")]

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