{-# language CPP #-}
-- No documentation found for Chapter "InstanceCreateFlagBits"
module Vulkan.Core10.Enums.InstanceCreateFlagBits  ( InstanceCreateFlags
                                                   , InstanceCreateFlagBits( INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR
                                                                           , ..
                                                                           )
                                                   ) 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 InstanceCreateFlags = InstanceCreateFlagBits

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

-- | 'INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR' specifies that the
-- instance will enumerate available Vulkan Portability-compliant physical
-- devices and groups in addition to the Vulkan physical devices and groups
-- that are enumerated by default.
pattern $bINSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR :: InstanceCreateFlagBits
$mINSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR :: forall {r}.
InstanceCreateFlagBits -> (Void# -> r) -> (Void# -> r) -> r
INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = InstanceCreateFlagBits 0x00000001

conNameInstanceCreateFlagBits :: String
conNameInstanceCreateFlagBits :: String
conNameInstanceCreateFlagBits = String
"InstanceCreateFlagBits"

enumPrefixInstanceCreateFlagBits :: String
enumPrefixInstanceCreateFlagBits :: String
enumPrefixInstanceCreateFlagBits = String
"INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"

showTableInstanceCreateFlagBits :: [(InstanceCreateFlagBits, String)]
showTableInstanceCreateFlagBits :: [(InstanceCreateFlagBits, String)]
showTableInstanceCreateFlagBits =
  [
    ( InstanceCreateFlagBits
INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR
    , String
""
    )
  ]

instance Show InstanceCreateFlagBits where
  showsPrec :: Int -> InstanceCreateFlagBits -> ShowS
showsPrec =
    String
-> [(InstanceCreateFlagBits, String)]
-> String
-> (InstanceCreateFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> InstanceCreateFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixInstanceCreateFlagBits
      [(InstanceCreateFlagBits, String)]
showTableInstanceCreateFlagBits
      String
conNameInstanceCreateFlagBits
      (\(InstanceCreateFlagBits 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, Show a) => a -> ShowS
showHex Flags
x)

instance Read InstanceCreateFlagBits where
  readPrec :: ReadPrec InstanceCreateFlagBits
readPrec =
    String
-> [(InstanceCreateFlagBits, String)]
-> String
-> (Flags -> InstanceCreateFlagBits)
-> ReadPrec InstanceCreateFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixInstanceCreateFlagBits
      [(InstanceCreateFlagBits, String)]
showTableInstanceCreateFlagBits
      String
conNameInstanceCreateFlagBits
      Flags -> InstanceCreateFlagBits
InstanceCreateFlagBits