{-# 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
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
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
Ord, Ptr FenceImportFlagBits -> IO FenceImportFlagBits
Ptr FenceImportFlagBits -> Int -> IO FenceImportFlagBits
Ptr FenceImportFlagBits -> Int -> FenceImportFlagBits -> IO ()
Ptr FenceImportFlagBits -> FenceImportFlagBits -> IO ()
FenceImportFlagBits -> Int
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 :: forall b. Ptr b -> Int -> FenceImportFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> FenceImportFlagBits -> IO ()
peekByteOff :: forall b. 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
forall a. a -> Zero a
zero :: FenceImportFlagBits
$czero :: FenceImportFlagBits
Zero, Eq FenceImportFlagBits
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
Bits, Bits 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
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 =
    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" forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

instance Read FenceImportFlagBits where
  readPrec :: ReadPrec FenceImportFlagBits
readPrec =
    forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixFenceImportFlagBits
      [(FenceImportFlagBits, String)]
showTableFenceImportFlagBits
      String
conNameFenceImportFlagBits
      Flags -> FenceImportFlagBits
FenceImportFlagBits