{-# OPTIONS_HADDOCK ignore-exports#-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE Strict #-} {-# LANGUAGE TypeSynonymInstances #-} module Graphics.Vulkan.Types.Enum.Sparse (VkSparseImageFormatBitmask(VkSparseImageFormatBitmask, VkSparseImageFormatFlags, VkSparseImageFormatFlagBits, VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT, VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT, VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT), VkSparseImageFormatFlags, VkSparseImageFormatFlagBits, VkSparseMemoryBindBitmask(VkSparseMemoryBindBitmask, VkSparseMemoryBindFlags, VkSparseMemoryBindFlagBits, VK_SPARSE_MEMORY_BIND_METADATA_BIT), VkSparseMemoryBindFlags, VkSparseMemoryBindFlagBits) where import Data.Bits (Bits, FiniteBits) import Data.Data (Data) import Foreign.Storable (Storable) import GHC.Generics (Generic) 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 VkSparseImageFormatBitmask (a :: FlagType) = VkSparseImageFormatBitmask VkFlags deriving (Eq, Ord, Storable, Data, Generic) type VkSparseImageFormatFlags = VkSparseImageFormatBitmask FlagMask type VkSparseImageFormatFlagBits = VkSparseImageFormatBitmask FlagBit pattern VkSparseImageFormatFlagBits :: VkFlags -> VkSparseImageFormatBitmask FlagBit pattern VkSparseImageFormatFlagBits n = VkSparseImageFormatBitmask n pattern VkSparseImageFormatFlags :: VkFlags -> VkSparseImageFormatBitmask FlagMask pattern VkSparseImageFormatFlags n = VkSparseImageFormatBitmask n deriving instance Bits (VkSparseImageFormatBitmask FlagMask) deriving instance FiniteBits (VkSparseImageFormatBitmask FlagMask) deriving instance Integral (VkSparseImageFormatBitmask FlagMask) deriving instance Num (VkSparseImageFormatBitmask FlagMask) deriving instance Bounded (VkSparseImageFormatBitmask FlagMask) deriving instance Enum (VkSparseImageFormatBitmask FlagMask) deriving instance Real (VkSparseImageFormatBitmask FlagMask) instance Show (VkSparseImageFormatBitmask a) where showsPrec _ VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = showString "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT" showsPrec _ VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = showString "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT" showsPrec _ VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = showString "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT" showsPrec p (VkSparseImageFormatBitmask x) = showParen (p >= 11) (showString "VkSparseImageFormatBitmask " . showsPrec 11 x) instance Read (VkSparseImageFormatBitmask a) where readPrec = parens (choose [("VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT", pure VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT), ("VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT", pure VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT), ("VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT", pure VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT)] +++ prec 10 (expectP (Ident "VkSparseImageFormatBitmask") >> (VkSparseImageFormatBitmask <$> step readPrec))) -- | Image uses a single mip tail region for all array layers -- -- bitpos = @0@ pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT :: VkSparseImageFormatBitmask a pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = VkSparseImageFormatBitmask 1 -- | Image requires mip level dimensions to be an integer multiple of the sparse image block dimensions for non-tail mip levels. -- -- bitpos = @1@ pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT :: VkSparseImageFormatBitmask a pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = VkSparseImageFormatBitmask 2 -- | Image uses a non-standard sparse image block dimensions -- -- bitpos = @2@ pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT :: VkSparseImageFormatBitmask a pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = VkSparseImageFormatBitmask 4 newtype VkSparseMemoryBindBitmask (a :: FlagType) = VkSparseMemoryBindBitmask VkFlags deriving (Eq, Ord, Storable, Data, Generic) type VkSparseMemoryBindFlags = VkSparseMemoryBindBitmask FlagMask type VkSparseMemoryBindFlagBits = VkSparseMemoryBindBitmask FlagBit pattern VkSparseMemoryBindFlagBits :: VkFlags -> VkSparseMemoryBindBitmask FlagBit pattern VkSparseMemoryBindFlagBits n = VkSparseMemoryBindBitmask n pattern VkSparseMemoryBindFlags :: VkFlags -> VkSparseMemoryBindBitmask FlagMask pattern VkSparseMemoryBindFlags n = VkSparseMemoryBindBitmask n deriving instance Bits (VkSparseMemoryBindBitmask FlagMask) deriving instance FiniteBits (VkSparseMemoryBindBitmask FlagMask) deriving instance Integral (VkSparseMemoryBindBitmask FlagMask) deriving instance Num (VkSparseMemoryBindBitmask FlagMask) deriving instance Bounded (VkSparseMemoryBindBitmask FlagMask) deriving instance Enum (VkSparseMemoryBindBitmask FlagMask) deriving instance Real (VkSparseMemoryBindBitmask FlagMask) instance Show (VkSparseMemoryBindBitmask a) where showsPrec _ VK_SPARSE_MEMORY_BIND_METADATA_BIT = showString "VK_SPARSE_MEMORY_BIND_METADATA_BIT" showsPrec p (VkSparseMemoryBindBitmask x) = showParen (p >= 11) (showString "VkSparseMemoryBindBitmask " . showsPrec 11 x) instance Read (VkSparseMemoryBindBitmask a) where readPrec = parens (choose [("VK_SPARSE_MEMORY_BIND_METADATA_BIT", pure VK_SPARSE_MEMORY_BIND_METADATA_BIT)] +++ prec 10 (expectP (Ident "VkSparseMemoryBindBitmask") >> (VkSparseMemoryBindBitmask <$> step readPrec))) -- | Operation binds resource metadata to memory -- -- bitpos = @0@ pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT :: VkSparseMemoryBindBitmask a pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT = VkSparseMemoryBindBitmask 1