{-# 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.DependencyFlags (VkDependencyBitmask(VkDependencyBitmask, VkDependencyFlags, VkDependencyFlagBits, VK_DEPENDENCY_BY_REGION_BIT), VkDependencyFlags, VkDependencyFlagBits) 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 VkDependencyBitmask (a :: FlagType) = VkDependencyBitmask VkFlags deriving (Eq, Ord, Storable) type VkDependencyFlags = VkDependencyBitmask FlagMask type VkDependencyFlagBits = VkDependencyBitmask FlagBit pattern VkDependencyFlagBits :: VkFlags -> VkDependencyBitmask FlagBit pattern VkDependencyFlagBits n = VkDependencyBitmask n pattern VkDependencyFlags :: VkFlags -> VkDependencyBitmask FlagMask pattern VkDependencyFlags n = VkDependencyBitmask n deriving instance Bits (VkDependencyBitmask FlagMask) deriving instance FiniteBits (VkDependencyBitmask FlagMask) instance Show (VkDependencyBitmask a) where showsPrec _ VK_DEPENDENCY_BY_REGION_BIT = showString "VK_DEPENDENCY_BY_REGION_BIT" showsPrec p (VkDependencyBitmask x) = showParen (p >= 11) (showString "VkDependencyBitmask " . showsPrec 11 x) instance Read (VkDependencyBitmask a) where readPrec = parens (choose [("VK_DEPENDENCY_BY_REGION_BIT", pure VK_DEPENDENCY_BY_REGION_BIT)] +++ prec 10 (expectP (Ident "VkDependencyBitmask") >> (VkDependencyBitmask <$> step readPrec))) -- | Dependency is per pixel region -- -- bitpos = @0@ pattern VK_DEPENDENCY_BY_REGION_BIT :: VkDependencyBitmask a pattern VK_DEPENDENCY_BY_REGION_BIT = VkDependencyBitmask 1