{-# language CPP #-}
-- No documentation found for Chapter "PipelineLayoutCreateFlagBits"
module Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits  ( PipelineLayoutCreateFlags
                                                         , PipelineLayoutCreateFlagBits( PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
                                                                                       , ..
                                                                                       )
                                                         ) 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 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
/= :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> Bool
$c/= :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> Bool
== :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> Bool
$c== :: 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
min :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
$cmin :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
max :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
$cmax :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
>= :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> Bool
$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
compare :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> Ordering
$ccompare :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> Ordering
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
poke :: Ptr PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> IO ()
$cpoke :: Ptr PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> IO ()
peek :: Ptr PipelineLayoutCreateFlagBits -> IO PipelineLayoutCreateFlagBits
$cpeek :: Ptr PipelineLayoutCreateFlagBits -> IO PipelineLayoutCreateFlagBits
pokeByteOff :: forall b. Ptr b -> Int -> PipelineLayoutCreateFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> PipelineLayoutCreateFlagBits -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO PipelineLayoutCreateFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PipelineLayoutCreateFlagBits
pokeElemOff :: Ptr PipelineLayoutCreateFlagBits
-> Int -> PipelineLayoutCreateFlagBits -> IO ()
$cpokeElemOff :: Ptr PipelineLayoutCreateFlagBits
-> Int -> PipelineLayoutCreateFlagBits -> IO ()
peekElemOff :: Ptr PipelineLayoutCreateFlagBits
-> Int -> IO PipelineLayoutCreateFlagBits
$cpeekElemOff :: Ptr PipelineLayoutCreateFlagBits
-> Int -> IO PipelineLayoutCreateFlagBits
alignment :: PipelineLayoutCreateFlagBits -> Int
$calignment :: PipelineLayoutCreateFlagBits -> Int
sizeOf :: PipelineLayoutCreateFlagBits -> Int
$csizeOf :: PipelineLayoutCreateFlagBits -> Int
Storable, PipelineLayoutCreateFlagBits
PipelineLayoutCreateFlagBits -> Zero PipelineLayoutCreateFlagBits
forall a. a -> Zero a
zero :: PipelineLayoutCreateFlagBits
$czero :: 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
popCount :: PipelineLayoutCreateFlagBits -> Int
$cpopCount :: PipelineLayoutCreateFlagBits -> Int
rotateR :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$crotateR :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
rotateL :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$crotateL :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
unsafeShiftR :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$cunsafeShiftR :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
shiftR :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$cshiftR :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
unsafeShiftL :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$cunsafeShiftL :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
shiftL :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$cshiftL :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
isSigned :: PipelineLayoutCreateFlagBits -> Bool
$cisSigned :: PipelineLayoutCreateFlagBits -> Bool
bitSize :: PipelineLayoutCreateFlagBits -> Int
$cbitSize :: PipelineLayoutCreateFlagBits -> Int
bitSizeMaybe :: PipelineLayoutCreateFlagBits -> Maybe Int
$cbitSizeMaybe :: PipelineLayoutCreateFlagBits -> Maybe Int
testBit :: PipelineLayoutCreateFlagBits -> Int -> Bool
$ctestBit :: PipelineLayoutCreateFlagBits -> Int -> Bool
complementBit :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$ccomplementBit :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
clearBit :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$cclearBit :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
setBit :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$csetBit :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
bit :: Int -> PipelineLayoutCreateFlagBits
$cbit :: Int -> PipelineLayoutCreateFlagBits
zeroBits :: PipelineLayoutCreateFlagBits
$czeroBits :: PipelineLayoutCreateFlagBits
rotate :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$crotate :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
shift :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
$cshift :: PipelineLayoutCreateFlagBits -> Int -> PipelineLayoutCreateFlagBits
complement :: PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
$ccomplement :: PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
xor :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
$cxor :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
.|. :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
$c.|. :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
.&. :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
$c.&. :: PipelineLayoutCreateFlagBits
-> PipelineLayoutCreateFlagBits -> PipelineLayoutCreateFlagBits
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
countTrailingZeros :: PipelineLayoutCreateFlagBits -> Int
$ccountTrailingZeros :: PipelineLayoutCreateFlagBits -> Int
countLeadingZeros :: PipelineLayoutCreateFlagBits -> Int
$ccountLeadingZeros :: PipelineLayoutCreateFlagBits -> Int
finiteBitSize :: PipelineLayoutCreateFlagBits -> Int
$cfiniteBitSize :: 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 -> (Void# -> r) -> (Void# -> 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, Show 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