{-# 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.PeerMemoryFeatureFlag (VkPeerMemoryFeatureFlagBitsKHR(..), VkPeerMemoryFeatureBitmask(VkPeerMemoryFeatureBitmask, VkPeerMemoryFeatureFlags, VkPeerMemoryFeatureFlagBits, VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT, VK_PEER_MEMORY_FEATURE_COPY_DST_BIT, VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT, VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT), VkPeerMemoryFeatureFlags, VkPeerMemoryFeatureFlagBits) where import Data.Bits (Bits, FiniteBits) import Data.Coerce (coerce) 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 VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBitsKHR VkFlags deriving (Eq, Ord, Enum, Bits, FiniteBits, Storable) instance Show VkPeerMemoryFeatureFlagBitsKHR where {-# INLINE showsPrec #-} showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS) instance Read VkPeerMemoryFeatureFlagBitsKHR where {-# INLINE readsPrec #-} readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags) newtype VkPeerMemoryFeatureBitmask (a :: FlagType) = VkPeerMemoryFeatureBitmask VkFlags deriving (Eq, Ord, Storable) type VkPeerMemoryFeatureFlags = VkPeerMemoryFeatureBitmask FlagMask type VkPeerMemoryFeatureFlagBits = VkPeerMemoryFeatureBitmask FlagBit pattern VkPeerMemoryFeatureFlagBits :: VkFlags -> VkPeerMemoryFeatureBitmask FlagBit pattern VkPeerMemoryFeatureFlagBits n = VkPeerMemoryFeatureBitmask n pattern VkPeerMemoryFeatureFlags :: VkFlags -> VkPeerMemoryFeatureBitmask FlagMask pattern VkPeerMemoryFeatureFlags n = VkPeerMemoryFeatureBitmask n deriving instance Bits (VkPeerMemoryFeatureBitmask FlagMask) deriving instance FiniteBits (VkPeerMemoryFeatureBitmask FlagMask) instance Show (VkPeerMemoryFeatureBitmask a) where showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = showString "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT" showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = showString "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT" showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = showString "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT" showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = showString "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT" showsPrec p (VkPeerMemoryFeatureBitmask x) = showParen (p >= 11) (showString "VkPeerMemoryFeatureBitmask " . showsPrec 11 x) instance Read (VkPeerMemoryFeatureBitmask a) where readPrec = parens (choose [("VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT", pure VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT), ("VK_PEER_MEMORY_FEATURE_COPY_DST_BIT", pure VK_PEER_MEMORY_FEATURE_COPY_DST_BIT), ("VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT", pure VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT), ("VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT", pure VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT)] +++ prec 10 (expectP (Ident "VkPeerMemoryFeatureBitmask") >> (VkPeerMemoryFeatureBitmask <$> step readPrec))) -- | Can read with vkCmdCopy commands -- -- bitpos = @0@ pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT :: VkPeerMemoryFeatureBitmask a pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = VkPeerMemoryFeatureBitmask 1 -- | Can write with vkCmdCopy commands -- -- bitpos = @1@ pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT :: VkPeerMemoryFeatureBitmask a pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = VkPeerMemoryFeatureBitmask 2 -- | Can read with any access type/command -- -- bitpos = @2@ pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT :: VkPeerMemoryFeatureBitmask a pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = VkPeerMemoryFeatureBitmask 4 -- | Can write with and access type/command -- -- bitpos = @3@ pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT :: VkPeerMemoryFeatureBitmask a pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = VkPeerMemoryFeatureBitmask 8