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

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

-- | 'SEMAPHORE_IMPORT_TEMPORARY_BIT' specifies that the semaphore payload
-- will be imported only temporarily, as described in
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,
-- regardless of the permanence of @handleType@.
pattern $bSEMAPHORE_IMPORT_TEMPORARY_BIT :: SemaphoreImportFlagBits
$mSEMAPHORE_IMPORT_TEMPORARY_BIT :: forall {r}.
SemaphoreImportFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
SEMAPHORE_IMPORT_TEMPORARY_BIT = SemaphoreImportFlagBits 0x00000001

conNameSemaphoreImportFlagBits :: String
conNameSemaphoreImportFlagBits :: String
conNameSemaphoreImportFlagBits = String
"SemaphoreImportFlagBits"

enumPrefixSemaphoreImportFlagBits :: String
enumPrefixSemaphoreImportFlagBits :: String
enumPrefixSemaphoreImportFlagBits = String
"SEMAPHORE_IMPORT_TEMPORARY_BIT"

showTableSemaphoreImportFlagBits :: [(SemaphoreImportFlagBits, String)]
showTableSemaphoreImportFlagBits :: [(SemaphoreImportFlagBits, String)]
showTableSemaphoreImportFlagBits = [(SemaphoreImportFlagBits
SEMAPHORE_IMPORT_TEMPORARY_BIT, String
"")]

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