{-# language CPP #-}
-- No documentation found for Chapter "AccessFlagBits"
module Vulkan.Core10.Enums.AccessFlagBits  ( AccessFlags
                                           , AccessFlagBits( ACCESS_INDIRECT_COMMAND_READ_BIT
                                                           , ACCESS_INDEX_READ_BIT
                                                           , ACCESS_VERTEX_ATTRIBUTE_READ_BIT
                                                           , ACCESS_UNIFORM_READ_BIT
                                                           , ACCESS_INPUT_ATTACHMENT_READ_BIT
                                                           , ACCESS_SHADER_READ_BIT
                                                           , ACCESS_SHADER_WRITE_BIT
                                                           , ACCESS_COLOR_ATTACHMENT_READ_BIT
                                                           , ACCESS_COLOR_ATTACHMENT_WRITE_BIT
                                                           , ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
                                                           , ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
                                                           , ACCESS_TRANSFER_READ_BIT
                                                           , ACCESS_TRANSFER_WRITE_BIT
                                                           , ACCESS_HOST_READ_BIT
                                                           , ACCESS_HOST_WRITE_BIT
                                                           , ACCESS_MEMORY_READ_BIT
                                                           , ACCESS_MEMORY_WRITE_BIT
                                                           , ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV
                                                           , ACCESS_COMMAND_PREPROCESS_READ_BIT_NV
                                                           , ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
                                                           , ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV
                                                           , ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
                                                           , ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR
                                                           , ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
                                                           , ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT
                                                           , ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT
                                                           , ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
                                                           , ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT
                                                           , ..
                                                           )
                                           ) where

import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showString)
import Numeric (showHex)
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)
import Vulkan.Zero (Zero)
type AccessFlags = AccessFlagBits

-- | VkAccessFlagBits - Bitmask specifying memory access types that will
-- participate in a memory dependency
--
-- = Description
--
-- Certain access types are only performed by a subset of pipeline stages.
-- Any synchronization command that takes both stage masks and access masks
-- uses both to define the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>
-- - only the specified access types performed by the specified stages are
-- included in the access scope. An application /must/ not specify an
-- access flag in a synchronization command if it does not include a
-- pipeline stage in the corresponding stage mask that is able to perform
-- accesses of that type. The following table lists, for each access flag,
-- which pipeline stages /can/ perform that type of access.
--
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | Access flag                                                                                           | Supported pipeline stages                                                                                |
-- +=======================================================================================================+==========================================================================================================+
-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' ,                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_INDEX_READ_BIT'                                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                              |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                              |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_UNIFORM_READ_BIT'                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',                   |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                       |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                            |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_SHADER_READ_BIT'                                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',         |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',                   |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                       |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                            |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_SHADER_WRITE_BIT'                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',                   |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                       |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                            |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                           |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'                   |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'                   |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or                  |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                       |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or                  |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                       |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFER_READ_BIT'                                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                               |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFER_WRITE_BIT'                                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                               |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_HOST_READ_BIT'                                                                                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                      |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_HOST_WRITE_BIT'                                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                      |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_MEMORY_READ_BIT'                                                                              | Any                                                                                                      |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_MEMORY_WRITE_BIT'                                                                             | Any                                                                                                      |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'                   |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                     |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                     |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'                 |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'                    |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'                                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'                    |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                             |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'                                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT',                          |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT',                           |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or                |
-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'                                                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'              |
-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
--
-- Supported access types
--
-- = See Also
--
-- 'AccessFlags'
newtype AccessFlagBits = AccessFlagBits Flags
  deriving newtype (AccessFlagBits -> AccessFlagBits -> Bool
(AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool) -> Eq AccessFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AccessFlagBits -> AccessFlagBits -> Bool
$c/= :: AccessFlagBits -> AccessFlagBits -> Bool
== :: AccessFlagBits -> AccessFlagBits -> Bool
$c== :: AccessFlagBits -> AccessFlagBits -> Bool
Eq, Eq AccessFlagBits
Eq AccessFlagBits =>
(AccessFlagBits -> AccessFlagBits -> Ordering)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> Ord AccessFlagBits
AccessFlagBits -> AccessFlagBits -> Bool
AccessFlagBits -> AccessFlagBits -> Ordering
AccessFlagBits -> AccessFlagBits -> AccessFlagBits
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 :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cmin :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
max :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cmax :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
>= :: AccessFlagBits -> AccessFlagBits -> Bool
$c>= :: AccessFlagBits -> AccessFlagBits -> Bool
> :: AccessFlagBits -> AccessFlagBits -> Bool
$c> :: AccessFlagBits -> AccessFlagBits -> Bool
<= :: AccessFlagBits -> AccessFlagBits -> Bool
$c<= :: AccessFlagBits -> AccessFlagBits -> Bool
< :: AccessFlagBits -> AccessFlagBits -> Bool
$c< :: AccessFlagBits -> AccessFlagBits -> Bool
compare :: AccessFlagBits -> AccessFlagBits -> Ordering
$ccompare :: AccessFlagBits -> AccessFlagBits -> Ordering
$cp1Ord :: Eq AccessFlagBits
Ord, Ptr b -> Int -> IO AccessFlagBits
Ptr b -> Int -> AccessFlagBits -> IO ()
Ptr AccessFlagBits -> IO AccessFlagBits
Ptr AccessFlagBits -> Int -> IO AccessFlagBits
Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ()
Ptr AccessFlagBits -> AccessFlagBits -> IO ()
AccessFlagBits -> Int
(AccessFlagBits -> Int)
-> (AccessFlagBits -> Int)
-> (Ptr AccessFlagBits -> Int -> IO AccessFlagBits)
-> (Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO AccessFlagBits)
-> (forall b. Ptr b -> Int -> AccessFlagBits -> IO ())
-> (Ptr AccessFlagBits -> IO AccessFlagBits)
-> (Ptr AccessFlagBits -> AccessFlagBits -> IO ())
-> Storable AccessFlagBits
forall b. Ptr b -> Int -> IO AccessFlagBits
forall b. Ptr b -> Int -> AccessFlagBits -> 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 AccessFlagBits -> AccessFlagBits -> IO ()
$cpoke :: Ptr AccessFlagBits -> AccessFlagBits -> IO ()
peek :: Ptr AccessFlagBits -> IO AccessFlagBits
$cpeek :: Ptr AccessFlagBits -> IO AccessFlagBits
pokeByteOff :: Ptr b -> Int -> AccessFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> AccessFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO AccessFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO AccessFlagBits
pokeElemOff :: Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ()
$cpokeElemOff :: Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ()
peekElemOff :: Ptr AccessFlagBits -> Int -> IO AccessFlagBits
$cpeekElemOff :: Ptr AccessFlagBits -> Int -> IO AccessFlagBits
alignment :: AccessFlagBits -> Int
$calignment :: AccessFlagBits -> Int
sizeOf :: AccessFlagBits -> Int
$csizeOf :: AccessFlagBits -> Int
Storable, AccessFlagBits
AccessFlagBits -> Zero AccessFlagBits
forall a. a -> Zero a
zero :: AccessFlagBits
$czero :: AccessFlagBits
Zero, Eq AccessFlagBits
AccessFlagBits
Eq AccessFlagBits =>
(AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> AccessFlagBits
-> (Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> Bool)
-> (AccessFlagBits -> Maybe Int)
-> (AccessFlagBits -> Int)
-> (AccessFlagBits -> Bool)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int)
-> Bits AccessFlagBits
Int -> AccessFlagBits
AccessFlagBits -> Bool
AccessFlagBits -> Int
AccessFlagBits -> Maybe Int
AccessFlagBits -> AccessFlagBits
AccessFlagBits -> Int -> Bool
AccessFlagBits -> Int -> AccessFlagBits
AccessFlagBits -> AccessFlagBits -> AccessFlagBits
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 :: AccessFlagBits -> Int
$cpopCount :: AccessFlagBits -> Int
rotateR :: AccessFlagBits -> Int -> AccessFlagBits
$crotateR :: AccessFlagBits -> Int -> AccessFlagBits
rotateL :: AccessFlagBits -> Int -> AccessFlagBits
$crotateL :: AccessFlagBits -> Int -> AccessFlagBits
unsafeShiftR :: AccessFlagBits -> Int -> AccessFlagBits
$cunsafeShiftR :: AccessFlagBits -> Int -> AccessFlagBits
shiftR :: AccessFlagBits -> Int -> AccessFlagBits
$cshiftR :: AccessFlagBits -> Int -> AccessFlagBits
unsafeShiftL :: AccessFlagBits -> Int -> AccessFlagBits
$cunsafeShiftL :: AccessFlagBits -> Int -> AccessFlagBits
shiftL :: AccessFlagBits -> Int -> AccessFlagBits
$cshiftL :: AccessFlagBits -> Int -> AccessFlagBits
isSigned :: AccessFlagBits -> Bool
$cisSigned :: AccessFlagBits -> Bool
bitSize :: AccessFlagBits -> Int
$cbitSize :: AccessFlagBits -> Int
bitSizeMaybe :: AccessFlagBits -> Maybe Int
$cbitSizeMaybe :: AccessFlagBits -> Maybe Int
testBit :: AccessFlagBits -> Int -> Bool
$ctestBit :: AccessFlagBits -> Int -> Bool
complementBit :: AccessFlagBits -> Int -> AccessFlagBits
$ccomplementBit :: AccessFlagBits -> Int -> AccessFlagBits
clearBit :: AccessFlagBits -> Int -> AccessFlagBits
$cclearBit :: AccessFlagBits -> Int -> AccessFlagBits
setBit :: AccessFlagBits -> Int -> AccessFlagBits
$csetBit :: AccessFlagBits -> Int -> AccessFlagBits
bit :: Int -> AccessFlagBits
$cbit :: Int -> AccessFlagBits
zeroBits :: AccessFlagBits
$czeroBits :: AccessFlagBits
rotate :: AccessFlagBits -> Int -> AccessFlagBits
$crotate :: AccessFlagBits -> Int -> AccessFlagBits
shift :: AccessFlagBits -> Int -> AccessFlagBits
$cshift :: AccessFlagBits -> Int -> AccessFlagBits
complement :: AccessFlagBits -> AccessFlagBits
$ccomplement :: AccessFlagBits -> AccessFlagBits
xor :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cxor :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
.|. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$c.|. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
.&. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$c.&. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cp1Bits :: Eq AccessFlagBits
Bits, Bits AccessFlagBits
Bits AccessFlagBits =>
(AccessFlagBits -> Int)
-> (AccessFlagBits -> Int)
-> (AccessFlagBits -> Int)
-> FiniteBits AccessFlagBits
AccessFlagBits -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: AccessFlagBits -> Int
$ccountTrailingZeros :: AccessFlagBits -> Int
countLeadingZeros :: AccessFlagBits -> Int
$ccountLeadingZeros :: AccessFlagBits -> Int
finiteBitSize :: AccessFlagBits -> Int
$cfiniteBitSize :: AccessFlagBits -> Int
$cp1FiniteBits :: Bits AccessFlagBits
FiniteBits)

-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT' specifies read access to indirect
-- command data read as part of an indirect build, trace, drawing or
-- dispatch command.
pattern $bACCESS_INDIRECT_COMMAND_READ_BIT :: AccessFlagBits
$mACCESS_INDIRECT_COMMAND_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_INDIRECT_COMMAND_READ_BIT                 = AccessFlagBits 0x00000001
-- | 'ACCESS_INDEX_READ_BIT' specifies read access to an index buffer as part
-- of an indexed drawing command, bound by
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'.
pattern $bACCESS_INDEX_READ_BIT :: AccessFlagBits
$mACCESS_INDEX_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_INDEX_READ_BIT                            = AccessFlagBits 0x00000002
-- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT' specifies read access to a vertex
-- buffer as part of a drawing command, bound by
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'.
pattern $bACCESS_VERTEX_ATTRIBUTE_READ_BIT :: AccessFlagBits
$mACCESS_VERTEX_ATTRIBUTE_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_VERTEX_ATTRIBUTE_READ_BIT                 = AccessFlagBits 0x00000004
-- | 'ACCESS_UNIFORM_READ_BIT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>.
pattern $bACCESS_UNIFORM_READ_BIT :: AccessFlagBits
$mACCESS_UNIFORM_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_UNIFORM_READ_BIT                          = AccessFlagBits 0x00000008
-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT' specifies read access to an
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass input attachment>
-- within a render pass during fragment shading.
pattern $bACCESS_INPUT_ATTACHMENT_READ_BIT :: AccessFlagBits
$mACCESS_INPUT_ATTACHMENT_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_INPUT_ATTACHMENT_READ_BIT                 = AccessFlagBits 0x00000010
-- | 'ACCESS_SHADER_READ_BIT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shader-binding-table shader binding table>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>,
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.
pattern $bACCESS_SHADER_READ_BIT :: AccessFlagBits
$mACCESS_SHADER_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_SHADER_READ_BIT                           = AccessFlagBits 0x00000020
-- | 'ACCESS_SHADER_WRITE_BIT' specifies write access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.
pattern $bACCESS_SHADER_WRITE_BIT :: AccessFlagBits
$mACCESS_SHADER_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_SHADER_WRITE_BIT                          = AccessFlagBits 0x00000040
-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachment>,
-- such as via
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-logicop logic operations>,
-- or via certain
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.
-- It does not include
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.
pattern $bACCESS_COLOR_ATTACHMENT_READ_BIT :: AccessFlagBits
$mACCESS_COLOR_ATTACHMENT_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COLOR_ATTACHMENT_READ_BIT                 = AccessFlagBits 0x00000080
-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT' specifies write access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment>
-- during a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass render pass>
-- or via certain
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.
pattern $bACCESS_COLOR_ATTACHMENT_WRITE_BIT :: AccessFlagBits
$mACCESS_COLOR_ATTACHMENT_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COLOR_ATTACHMENT_WRITE_BIT                = AccessFlagBits 0x00000100
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,
-- via
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
-- or via certain
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.
pattern $bACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: AccessFlagBits
$mACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT         = AccessFlagBits 0x00000200
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,
-- via
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
-- or via certain
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.
pattern $bACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: AccessFlagBits
$mACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT        = AccessFlagBits 0x00000400
-- | 'ACCESS_TRANSFER_READ_BIT' specifies read access to an image or buffer
-- in a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>
-- operation.
pattern $bACCESS_TRANSFER_READ_BIT :: AccessFlagBits
$mACCESS_TRANSFER_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFER_READ_BIT                         = AccessFlagBits 0x00000800
-- | 'ACCESS_TRANSFER_WRITE_BIT' specifies write access to an image or buffer
-- in a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear>
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>
-- operation.
pattern $bACCESS_TRANSFER_WRITE_BIT :: AccessFlagBits
$mACCESS_TRANSFER_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFER_WRITE_BIT                        = AccessFlagBits 0x00001000
-- | 'ACCESS_HOST_READ_BIT' specifies read access by a host operation.
-- Accesses of this type are not performed through a resource, but directly
-- on memory.
pattern $bACCESS_HOST_READ_BIT :: AccessFlagBits
$mACCESS_HOST_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_HOST_READ_BIT                             = AccessFlagBits 0x00002000
-- | 'ACCESS_HOST_WRITE_BIT' specifies write access by a host operation.
-- Accesses of this type are not performed through a resource, but directly
-- on memory.
pattern $bACCESS_HOST_WRITE_BIT :: AccessFlagBits
$mACCESS_HOST_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_HOST_WRITE_BIT                            = AccessFlagBits 0x00004000
-- | 'ACCESS_MEMORY_READ_BIT' specifies all read accesses. It is always valid
-- in any access mask, and is treated as equivalent to setting all @READ@
-- access flags that are valid where it is used.
pattern $bACCESS_MEMORY_READ_BIT :: AccessFlagBits
$mACCESS_MEMORY_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_MEMORY_READ_BIT                           = AccessFlagBits 0x00008000
-- | 'ACCESS_MEMORY_WRITE_BIT' specifies all write accesses. It is always
-- valid in any access mask, and is treated as equivalent to setting all
-- @WRITE@ access flags that are valid where it is used.
pattern $bACCESS_MEMORY_WRITE_BIT :: AccessFlagBits
$mACCESS_MEMORY_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_MEMORY_WRITE_BIT                          = AccessFlagBits 0x00010000
-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the
-- 'Vulkan.Core10.Handles.Buffer' preprocess outputs in
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.
pattern $bACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV :: AccessFlagBits
$mACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV           = AccessFlagBits 0x00040000
-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from
-- 'Vulkan.Core10.Handles.Buffer' inputs to
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.
pattern $bACCESS_COMMAND_PREPROCESS_READ_BIT_NV :: AccessFlagBits
$mACCESS_COMMAND_PREPROCESS_READ_BIT_NV :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COMMAND_PREPROCESS_READ_BIT_NV            = AccessFlagBits 0x00020000
-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>
-- during dynamic
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>
pattern $bACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT :: AccessFlagBits
$mACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT         = AccessFlagBits 0x01000000
-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"
pattern $bACCESS_SHADING_RATE_IMAGE_READ_BIT_NV :: AccessFlagBits
$mACCESS_SHADING_RATE_IMAGE_READ_BIT_NV :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV            = AccessFlagBits 0x00800000
-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access to
-- an acceleration structure or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>
-- as part of a build or copy command.
pattern $bACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: AccessFlagBits
$mACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR      = AccessFlagBits 0x00400000
-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to an
-- acceleration structure as part of a trace, build, or copy command, or to
-- an
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>
-- as part of a build command.
pattern $bACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR :: AccessFlagBits
$mACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR       = AccessFlagBits 0x00200000
-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' is similar to
-- 'ACCESS_COLOR_ATTACHMENT_READ_BIT', but also includes
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.
pattern $bACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: AccessFlagBits
$mACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits 0x00080000
-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a
-- predicate as part of conditional rendering.
pattern $bACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT :: AccessFlagBits
$mACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT        = AccessFlagBits 0x00100000
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write access
-- to a transform feedback counter buffer which is written when
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'
-- executes.
pattern $bACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: AccessFlagBits
$mACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT  = AccessFlagBits 0x08000000
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' specifies read access
-- to a transform feedback counter buffer which is read when
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'
-- executes.
pattern $bACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: AccessFlagBits
$mACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT   = AccessFlagBits 0x04000000
-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' specifies write access to a
-- transform feedback buffer made when transform feedback is active.
pattern $bACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: AccessFlagBits
$mACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT          = AccessFlagBits 0x02000000

conNameAccessFlagBits :: String
conNameAccessFlagBits :: String
conNameAccessFlagBits = "AccessFlagBits"

enumPrefixAccessFlagBits :: String
enumPrefixAccessFlagBits :: String
enumPrefixAccessFlagBits = "ACCESS_"

showTableAccessFlagBits :: [(AccessFlagBits, String)]
showTableAccessFlagBits :: [(AccessFlagBits, String)]
showTableAccessFlagBits =
  [ (AccessFlagBits
ACCESS_INDIRECT_COMMAND_READ_BIT                , "INDIRECT_COMMAND_READ_BIT")
  , (AccessFlagBits
ACCESS_INDEX_READ_BIT                           , "INDEX_READ_BIT")
  , (AccessFlagBits
ACCESS_VERTEX_ATTRIBUTE_READ_BIT                , "VERTEX_ATTRIBUTE_READ_BIT")
  , (AccessFlagBits
ACCESS_UNIFORM_READ_BIT                         , "UNIFORM_READ_BIT")
  , (AccessFlagBits
ACCESS_INPUT_ATTACHMENT_READ_BIT                , "INPUT_ATTACHMENT_READ_BIT")
  , (AccessFlagBits
ACCESS_SHADER_READ_BIT                          , "SHADER_READ_BIT")
  , (AccessFlagBits
ACCESS_SHADER_WRITE_BIT                         , "SHADER_WRITE_BIT")
  , (AccessFlagBits
ACCESS_COLOR_ATTACHMENT_READ_BIT                , "COLOR_ATTACHMENT_READ_BIT")
  , (AccessFlagBits
ACCESS_COLOR_ATTACHMENT_WRITE_BIT               , "COLOR_ATTACHMENT_WRITE_BIT")
  , (AccessFlagBits
ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT        , "DEPTH_STENCIL_ATTACHMENT_READ_BIT")
  , (AccessFlagBits
ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT       , "DEPTH_STENCIL_ATTACHMENT_WRITE_BIT")
  , (AccessFlagBits
ACCESS_TRANSFER_READ_BIT                        , "TRANSFER_READ_BIT")
  , (AccessFlagBits
ACCESS_TRANSFER_WRITE_BIT                       , "TRANSFER_WRITE_BIT")
  , (AccessFlagBits
ACCESS_HOST_READ_BIT                            , "HOST_READ_BIT")
  , (AccessFlagBits
ACCESS_HOST_WRITE_BIT                           , "HOST_WRITE_BIT")
  , (AccessFlagBits
ACCESS_MEMORY_READ_BIT                          , "MEMORY_READ_BIT")
  , (AccessFlagBits
ACCESS_MEMORY_WRITE_BIT                         , "MEMORY_WRITE_BIT")
  , (AccessFlagBits
ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV          , "COMMAND_PREPROCESS_WRITE_BIT_NV")
  , (AccessFlagBits
ACCESS_COMMAND_PREPROCESS_READ_BIT_NV           , "COMMAND_PREPROCESS_READ_BIT_NV")
  , (AccessFlagBits
ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT        , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT")
  , (AccessFlagBits
ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV           , "SHADING_RATE_IMAGE_READ_BIT_NV")
  , (AccessFlagBits
ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR     , "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")
  , (AccessFlagBits
ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR      , "ACCELERATION_STRUCTURE_READ_BIT_KHR")
  , (AccessFlagBits
ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, "COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT")
  , (AccessFlagBits
ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT       , "CONDITIONAL_RENDERING_READ_BIT_EXT")
  , (AccessFlagBits
ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT , "TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT")
  , (AccessFlagBits
ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT  , "TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT")
  , (AccessFlagBits
ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT         , "TRANSFORM_FEEDBACK_WRITE_BIT_EXT")
  ]

instance Show AccessFlagBits where
  showsPrec :: Int -> AccessFlagBits -> ShowS
showsPrec = String
-> [(AccessFlagBits, String)]
-> String
-> (AccessFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> AccessFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixAccessFlagBits
                            [(AccessFlagBits, String)]
showTableAccessFlagBits
                            String
conNameAccessFlagBits
                            (\(AccessFlagBits x :: Flags
x) -> Flags
x)
                            (\x :: Flags
x -> String -> ShowS
showString "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 AccessFlagBits where
  readPrec :: ReadPrec AccessFlagBits
readPrec = String
-> [(AccessFlagBits, String)]
-> String
-> (Flags -> AccessFlagBits)
-> ReadPrec AccessFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixAccessFlagBits [(AccessFlagBits, String)]
showTableAccessFlagBits String
conNameAccessFlagBits Flags -> AccessFlagBits
AccessFlagBits