{-# OPTIONS_HADDOCK ignore-exports#-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE Strict #-} {-# LANGUAGE TypeSynonymInstances #-} module Graphics.Vulkan.Types.Enum.AccessFlags (VkAccessBitmask(VkAccessBitmask, VkAccessFlags, VkAccessFlagBits, VK_ACCESS_INDIRECT_COMMAND_READ_BIT, VK_ACCESS_INDEX_READ_BIT, VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, VK_ACCESS_UNIFORM_READ_BIT, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, VK_ACCESS_SHADER_READ_BIT, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_HOST_READ_BIT, VK_ACCESS_HOST_WRITE_BIT, VK_ACCESS_MEMORY_READ_BIT, VK_ACCESS_MEMORY_WRITE_BIT), VkAccessFlags, VkAccessFlagBits) where import Data.Bits (Bits, FiniteBits) import Foreign.Storable (Storable) import GHC.Read (choose, expectP) import Graphics.Vulkan.Marshal (FlagBit, FlagMask, FlagType) import Graphics.Vulkan.Types.BaseTypes (VkFlags (..)) import Text.ParserCombinators.ReadPrec (prec, step, (+++)) import Text.Read (Read (..), parens) import Text.Read.Lex (Lexeme (..)) newtype VkAccessBitmask (a :: FlagType) = VkAccessBitmask VkFlags deriving (Eq, Ord, Storable) type VkAccessFlags = VkAccessBitmask FlagMask type VkAccessFlagBits = VkAccessBitmask FlagBit pattern VkAccessFlagBits :: VkFlags -> VkAccessBitmask FlagBit pattern VkAccessFlagBits n = VkAccessBitmask n pattern VkAccessFlags :: VkFlags -> VkAccessBitmask FlagMask pattern VkAccessFlags n = VkAccessBitmask n deriving instance Bits (VkAccessBitmask FlagMask) deriving instance FiniteBits (VkAccessBitmask FlagMask) instance Show (VkAccessBitmask a) where showsPrec _ VK_ACCESS_INDIRECT_COMMAND_READ_BIT = showString "VK_ACCESS_INDIRECT_COMMAND_READ_BIT" showsPrec _ VK_ACCESS_INDEX_READ_BIT = showString "VK_ACCESS_INDEX_READ_BIT" showsPrec _ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = showString "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT" showsPrec _ VK_ACCESS_UNIFORM_READ_BIT = showString "VK_ACCESS_UNIFORM_READ_BIT" showsPrec _ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = showString "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT" showsPrec _ VK_ACCESS_SHADER_READ_BIT = showString "VK_ACCESS_SHADER_READ_BIT" showsPrec _ VK_ACCESS_SHADER_WRITE_BIT = showString "VK_ACCESS_SHADER_WRITE_BIT" showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = showString "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT" showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = showString "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT" showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT" showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT" showsPrec _ VK_ACCESS_TRANSFER_READ_BIT = showString "VK_ACCESS_TRANSFER_READ_BIT" showsPrec _ VK_ACCESS_TRANSFER_WRITE_BIT = showString "VK_ACCESS_TRANSFER_WRITE_BIT" showsPrec _ VK_ACCESS_HOST_READ_BIT = showString "VK_ACCESS_HOST_READ_BIT" showsPrec _ VK_ACCESS_HOST_WRITE_BIT = showString "VK_ACCESS_HOST_WRITE_BIT" showsPrec _ VK_ACCESS_MEMORY_READ_BIT = showString "VK_ACCESS_MEMORY_READ_BIT" showsPrec _ VK_ACCESS_MEMORY_WRITE_BIT = showString "VK_ACCESS_MEMORY_WRITE_BIT" showsPrec p (VkAccessBitmask x) = showParen (p >= 11) (showString "VkAccessBitmask " . showsPrec 11 x) instance Read (VkAccessBitmask a) where readPrec = parens (choose [("VK_ACCESS_INDIRECT_COMMAND_READ_BIT", pure VK_ACCESS_INDIRECT_COMMAND_READ_BIT), ("VK_ACCESS_INDEX_READ_BIT", pure VK_ACCESS_INDEX_READ_BIT), ("VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT", pure VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT), ("VK_ACCESS_UNIFORM_READ_BIT", pure VK_ACCESS_UNIFORM_READ_BIT), ("VK_ACCESS_INPUT_ATTACHMENT_READ_BIT", pure VK_ACCESS_INPUT_ATTACHMENT_READ_BIT), ("VK_ACCESS_SHADER_READ_BIT", pure VK_ACCESS_SHADER_READ_BIT), ("VK_ACCESS_SHADER_WRITE_BIT", pure VK_ACCESS_SHADER_WRITE_BIT), ("VK_ACCESS_COLOR_ATTACHMENT_READ_BIT", pure VK_ACCESS_COLOR_ATTACHMENT_READ_BIT), ("VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT", pure VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT), ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT", pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT), ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT", pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT), ("VK_ACCESS_TRANSFER_READ_BIT", pure VK_ACCESS_TRANSFER_READ_BIT), ("VK_ACCESS_TRANSFER_WRITE_BIT", pure VK_ACCESS_TRANSFER_WRITE_BIT), ("VK_ACCESS_HOST_READ_BIT", pure VK_ACCESS_HOST_READ_BIT), ("VK_ACCESS_HOST_WRITE_BIT", pure VK_ACCESS_HOST_WRITE_BIT), ("VK_ACCESS_MEMORY_READ_BIT", pure VK_ACCESS_MEMORY_READ_BIT), ("VK_ACCESS_MEMORY_WRITE_BIT", pure VK_ACCESS_MEMORY_WRITE_BIT)] +++ prec 10 (expectP (Ident "VkAccessBitmask") >> (VkAccessBitmask <$> step readPrec))) -- | Controls coherency of indirect command reads -- -- bitpos = @0@ pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT = VkAccessBitmask 1 -- | Controls coherency of index reads -- -- bitpos = @1@ pattern VK_ACCESS_INDEX_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_INDEX_READ_BIT = VkAccessBitmask 2 -- | Controls coherency of vertex attribute reads -- -- bitpos = @2@ pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = VkAccessBitmask 4 -- | Controls coherency of uniform buffer reads -- -- bitpos = @3@ pattern VK_ACCESS_UNIFORM_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_UNIFORM_READ_BIT = VkAccessBitmask 8 -- | Controls coherency of input attachment reads -- -- bitpos = @4@ pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = VkAccessBitmask 16 -- | Controls coherency of shader reads -- -- bitpos = @5@ pattern VK_ACCESS_SHADER_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_SHADER_READ_BIT = VkAccessBitmask 32 -- | Controls coherency of shader writes -- -- bitpos = @6@ pattern VK_ACCESS_SHADER_WRITE_BIT :: VkAccessBitmask a pattern VK_ACCESS_SHADER_WRITE_BIT = VkAccessBitmask 64 -- | Controls coherency of color attachment reads -- -- bitpos = @7@ pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = VkAccessBitmask 128 -- | Controls coherency of color attachment writes -- -- bitpos = @8@ pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT :: VkAccessBitmask a pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = VkAccessBitmask 256 -- | Controls coherency of depth/stencil attachment reads -- -- bitpos = @9@ pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = VkAccessBitmask 512 -- | Controls coherency of depth/stencil attachment writes -- -- bitpos = @10@ pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: VkAccessBitmask a pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = VkAccessBitmask 1024 -- | Controls coherency of transfer reads -- -- bitpos = @11@ pattern VK_ACCESS_TRANSFER_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_TRANSFER_READ_BIT = VkAccessBitmask 2048 -- | Controls coherency of transfer writes -- -- bitpos = @12@ pattern VK_ACCESS_TRANSFER_WRITE_BIT :: VkAccessBitmask a pattern VK_ACCESS_TRANSFER_WRITE_BIT = VkAccessBitmask 4096 -- | Controls coherency of host reads -- -- bitpos = @13@ pattern VK_ACCESS_HOST_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_HOST_READ_BIT = VkAccessBitmask 8192 -- | Controls coherency of host writes -- -- bitpos = @14@ pattern VK_ACCESS_HOST_WRITE_BIT :: VkAccessBitmask a pattern VK_ACCESS_HOST_WRITE_BIT = VkAccessBitmask 16384 -- | Controls coherency of memory reads -- -- bitpos = @15@ pattern VK_ACCESS_MEMORY_READ_BIT :: VkAccessBitmask a pattern VK_ACCESS_MEMORY_READ_BIT = VkAccessBitmask 32768 -- | Controls coherency of memory writes -- -- bitpos = @16@ pattern VK_ACCESS_MEMORY_WRITE_BIT :: VkAccessBitmask a pattern VK_ACCESS_MEMORY_WRITE_BIT = VkAccessBitmask 65536