{-# language CPP #-}
-- No documentation found for Chapter "DescriptorSetLayoutCreateFlagBits"
module Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits  ( DescriptorSetLayoutCreateFlags
                                                              , DescriptorSetLayoutCreateFlagBits( DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT
                                                                                                 , DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV
                                                                                                 , DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT
                                                                                                 , DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
                                                                                                 , DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
                                                                                                 , DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_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 DescriptorSetLayoutCreateFlags = DescriptorSetLayoutCreateFlagBits

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

-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT' specifies that
-- descriptor sets using this layout /must/ be allocated from a descriptor
-- pool created with the
-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT'
-- bit set. Descriptor set layouts created with this bit have no
-- expressible limit for maximum number of descriptors per-stage. Host
-- descriptor sets are limited only by available host memory, but /may/ be
-- limited for implementation specific reasons. Implementations /may/ limit
-- the number of supported descriptors to UpdateAfterBind limits or
-- non-UpdateAfterBind limits, whichever is larger.
pattern $bDESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT :: DescriptorSetLayoutCreateFlagBits
$mDESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT :: forall {r}.
DescriptorSetLayoutCreateFlagBits
-> ((# #) -> r) -> ((# #) -> r) -> r
DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = DescriptorSetLayoutCreateFlagBits 0x00000004

-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV' specifies that
-- descriptor sets using this layout allows them to be bound with compute
-- pipelines that are created with
-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
-- flag set to be used in
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.
pattern $bDESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV :: DescriptorSetLayoutCreateFlagBits
$mDESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV :: forall {r}.
DescriptorSetLayoutCreateFlagBits
-> ((# #) -> r) -> ((# #) -> r) -> r
DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = DescriptorSetLayoutCreateFlagBits 0x00000080

-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT'
-- specifies that this is a layout only containing immutable samplers that
-- /can/ be bound by
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT'.
-- Unlike normal immutable samplers, embedded immutable samplers do not
-- require the application to provide them in a descriptor buffer.
pattern $bDESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT :: DescriptorSetLayoutCreateFlagBits
$mDESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT :: forall {r}.
DescriptorSetLayoutCreateFlagBits
-> ((# #) -> r) -> ((# #) -> r) -> r
DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = DescriptorSetLayoutCreateFlagBits 0x00000020

-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' specifies that
-- this layout /must/ only be used with descriptor buffers.
pattern $bDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT :: DescriptorSetLayoutCreateFlagBits
$mDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
DescriptorSetLayoutCreateFlagBits
-> ((# #) -> r) -> ((# #) -> r) -> r
DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = DescriptorSetLayoutCreateFlagBits 0x00000010

-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR' specifies that
-- descriptor sets /must/ not be allocated using this layout, and
-- descriptors are instead pushed by
-- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR'.
pattern $bDESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR :: DescriptorSetLayoutCreateFlagBits
$mDESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR :: forall {r}.
DescriptorSetLayoutCreateFlagBits
-> ((# #) -> r) -> ((# #) -> r) -> r
DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = DescriptorSetLayoutCreateFlagBits 0x00000001

-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' specifies that
-- descriptor sets using this layout /must/ be allocated from a descriptor
-- pool created with the
-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT'
-- bit set. Descriptor set layouts created with this bit set have alternate
-- limits for the maximum number of descriptors per-stage and per-pipeline
-- layout. The non-UpdateAfterBind limits only count descriptors in sets
-- created without this flag. The UpdateAfterBind limits count all
-- descriptors, but the limits /may/ be higher than the non-UpdateAfterBind
-- limits.
pattern $bDESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT :: DescriptorSetLayoutCreateFlagBits
$mDESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT :: forall {r}.
DescriptorSetLayoutCreateFlagBits
-> ((# #) -> r) -> ((# #) -> r) -> r
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = DescriptorSetLayoutCreateFlagBits 0x00000002

conNameDescriptorSetLayoutCreateFlagBits :: String
conNameDescriptorSetLayoutCreateFlagBits :: String
conNameDescriptorSetLayoutCreateFlagBits = String
"DescriptorSetLayoutCreateFlagBits"

enumPrefixDescriptorSetLayoutCreateFlagBits :: String
enumPrefixDescriptorSetLayoutCreateFlagBits :: String
enumPrefixDescriptorSetLayoutCreateFlagBits = String
"DESCRIPTOR_SET_LAYOUT_CREATE_"

showTableDescriptorSetLayoutCreateFlagBits :: [(DescriptorSetLayoutCreateFlagBits, String)]
showTableDescriptorSetLayoutCreateFlagBits :: [(DescriptorSetLayoutCreateFlagBits, String)]
showTableDescriptorSetLayoutCreateFlagBits =
  [
    ( DescriptorSetLayoutCreateFlagBits
DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT
    , String
"HOST_ONLY_POOL_BIT_EXT"
    )
  ,
    ( DescriptorSetLayoutCreateFlagBits
DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV
    , String
"INDIRECT_BINDABLE_BIT_NV"
    )
  ,
    ( DescriptorSetLayoutCreateFlagBits
DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT
    , String
"EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT"
    )
  ,
    ( DescriptorSetLayoutCreateFlagBits
DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
    , String
"DESCRIPTOR_BUFFER_BIT_EXT"
    )
  ,
    ( DescriptorSetLayoutCreateFlagBits
DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
    , String
"PUSH_DESCRIPTOR_BIT_KHR"
    )
  ,
    ( DescriptorSetLayoutCreateFlagBits
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
    , String
"UPDATE_AFTER_BIND_POOL_BIT"
    )
  ]

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