{-# 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.DependencyFlags (VkDependencyBitmask(VkDependencyBitmask, VkDependencyFlags, VkDependencyFlagBits, VK_DEPENDENCY_BY_REGION_BIT), VkDependencyFlags, VkDependencyFlagBits) 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 VkDependencyBitmask (a :: FlagType) = VkDependencyBitmask VkFlags deriving (Eq, Ord, Storable, Data, Generic) 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) deriving instance Integral (VkDependencyBitmask FlagMask) deriving instance Num (VkDependencyBitmask FlagMask) deriving instance Bounded (VkDependencyBitmask FlagMask) deriving instance Enum (VkDependencyBitmask FlagMask) deriving instance Real (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