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

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

-- | 'FENCE_IMPORT_TEMPORARY_BIT' specifies that the fence payload will be
-- imported only temporarily, as described in
-- <https://www.khronos.org/registry/vulkan/specs/1.2-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 -> (Void# -> r) -> (Void# -> r) -> r
FENCE_IMPORT_TEMPORARY_BIT = FenceImportFlagBits 0x00000001

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

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

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

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 x :: Flags
x) -> Flags
x)
                            (\x :: Flags
x -> String -> ShowS
showString "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 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