{-# 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.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 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 VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBitsKHR VkFlags deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits, FiniteBits, Storable, Real, Data, Generic) instance Show VkPeerMemoryFeatureFlagBitsKHR where {-# INLINE show #-} show (VkPeerMemoryFeatureFlagBitsKHR x) = show x instance Read VkPeerMemoryFeatureFlagBitsKHR where {-# INLINE readsPrec #-} readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags) newtype VkPeerMemoryFeatureBitmask (a :: FlagType) = VkPeerMemoryFeatureBitmask VkFlags deriving (Eq, Ord, Storable, Data, Generic) 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) deriving instance Integral (VkPeerMemoryFeatureBitmask FlagMask) deriving instance Num (VkPeerMemoryFeatureBitmask FlagMask) deriving instance Bounded (VkPeerMemoryFeatureBitmask FlagMask) deriving instance Enum (VkPeerMemoryFeatureBitmask FlagMask) deriving instance Real (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