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

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

-- | 'PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT' specifies that
-- implementations /must/ ensure that the properties and\/or absence of a
-- particular descriptor set do not influence any other properties of the
-- pipeline layout. This allows pipelines libraries linked without
-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'
-- to be created with a subset of the total descriptor sets.
pattern $bPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT :: PipelineLayoutCreateFlagBits
$mPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT :: forall {r}.
PipelineLayoutCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = PipelineLayoutCreateFlagBits 0x00000002

conNamePipelineLayoutCreateFlagBits :: String
conNamePipelineLayoutCreateFlagBits :: String
conNamePipelineLayoutCreateFlagBits = String
"PipelineLayoutCreateFlagBits"

enumPrefixPipelineLayoutCreateFlagBits :: String
enumPrefixPipelineLayoutCreateFlagBits :: String
enumPrefixPipelineLayoutCreateFlagBits = String
"PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"

showTablePipelineLayoutCreateFlagBits :: [(PipelineLayoutCreateFlagBits, String)]
showTablePipelineLayoutCreateFlagBits :: [(PipelineLayoutCreateFlagBits, String)]
showTablePipelineLayoutCreateFlagBits =
  [
    ( PipelineLayoutCreateFlagBits
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
    , String
""
    )
  ]

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