{-# 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.SubgroupFeatureFlags
(VkSubgroupFeatureBitmask(VkSubgroupFeatureBitmask,
VkSubgroupFeatureFlags, VkSubgroupFeatureFlagBits,
VK_SUBGROUP_FEATURE_BASIC_BIT, VK_SUBGROUP_FEATURE_VOTE_BIT,
VK_SUBGROUP_FEATURE_ARITHMETIC_BIT, VK_SUBGROUP_FEATURE_BALLOT_BIT,
VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
VK_SUBGROUP_FEATURE_CLUSTERED_BIT, VK_SUBGROUP_FEATURE_QUAD_BIT),
VkSubgroupFeatureFlags, VkSubgroupFeatureFlagBits)
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 VkSubgroupFeatureBitmask (a ::
FlagType) = VkSubgroupFeatureBitmask VkFlags
deriving (Eq, Ord, Storable, Data, Generic)
type VkSubgroupFeatureFlags = VkSubgroupFeatureBitmask FlagMask
type VkSubgroupFeatureFlagBits = VkSubgroupFeatureBitmask FlagBit
pattern VkSubgroupFeatureFlagBits ::
VkFlags -> VkSubgroupFeatureBitmask FlagBit
pattern VkSubgroupFeatureFlagBits n = VkSubgroupFeatureBitmask n
pattern VkSubgroupFeatureFlags ::
VkFlags -> VkSubgroupFeatureBitmask FlagMask
pattern VkSubgroupFeatureFlags n = VkSubgroupFeatureBitmask n
deriving instance Bits (VkSubgroupFeatureBitmask FlagMask)
deriving instance FiniteBits (VkSubgroupFeatureBitmask FlagMask)
deriving instance Integral (VkSubgroupFeatureBitmask FlagMask)
deriving instance Num (VkSubgroupFeatureBitmask FlagMask)
deriving instance Bounded (VkSubgroupFeatureBitmask FlagMask)
deriving instance Enum (VkSubgroupFeatureBitmask FlagMask)
deriving instance Real (VkSubgroupFeatureBitmask FlagMask)
instance Show (VkSubgroupFeatureBitmask a) where
showsPrec _ VK_SUBGROUP_FEATURE_BASIC_BIT
= showString "VK_SUBGROUP_FEATURE_BASIC_BIT"
showsPrec _ VK_SUBGROUP_FEATURE_VOTE_BIT
= showString "VK_SUBGROUP_FEATURE_VOTE_BIT"
showsPrec _ VK_SUBGROUP_FEATURE_ARITHMETIC_BIT
= showString "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"
showsPrec _ VK_SUBGROUP_FEATURE_BALLOT_BIT
= showString "VK_SUBGROUP_FEATURE_BALLOT_BIT"
showsPrec _ VK_SUBGROUP_FEATURE_SHUFFLE_BIT
= showString "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"
showsPrec _ VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
= showString "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"
showsPrec _ VK_SUBGROUP_FEATURE_CLUSTERED_BIT
= showString "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"
showsPrec _ VK_SUBGROUP_FEATURE_QUAD_BIT
= showString "VK_SUBGROUP_FEATURE_QUAD_BIT"
showsPrec p (VkSubgroupFeatureBitmask x)
= showParen (p >= 11)
(showString "VkSubgroupFeatureBitmask " . showsPrec 11 x)
instance Read (VkSubgroupFeatureBitmask a) where
readPrec
= parens
(choose
[("VK_SUBGROUP_FEATURE_BASIC_BIT",
pure VK_SUBGROUP_FEATURE_BASIC_BIT),
("VK_SUBGROUP_FEATURE_VOTE_BIT",
pure VK_SUBGROUP_FEATURE_VOTE_BIT),
("VK_SUBGROUP_FEATURE_ARITHMETIC_BIT",
pure VK_SUBGROUP_FEATURE_ARITHMETIC_BIT),
("VK_SUBGROUP_FEATURE_BALLOT_BIT",
pure VK_SUBGROUP_FEATURE_BALLOT_BIT),
("VK_SUBGROUP_FEATURE_SHUFFLE_BIT",
pure VK_SUBGROUP_FEATURE_SHUFFLE_BIT),
("VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT",
pure VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT),
("VK_SUBGROUP_FEATURE_CLUSTERED_BIT",
pure VK_SUBGROUP_FEATURE_CLUSTERED_BIT),
("VK_SUBGROUP_FEATURE_QUAD_BIT",
pure VK_SUBGROUP_FEATURE_QUAD_BIT)]
+++
prec 10
(expectP (Ident "VkSubgroupFeatureBitmask") >>
(VkSubgroupFeatureBitmask <$> step readPrec)))
pattern VK_SUBGROUP_FEATURE_BASIC_BIT :: VkSubgroupFeatureBitmask a
pattern VK_SUBGROUP_FEATURE_BASIC_BIT = VkSubgroupFeatureBitmask 1
pattern VK_SUBGROUP_FEATURE_VOTE_BIT :: VkSubgroupFeatureBitmask a
pattern VK_SUBGROUP_FEATURE_VOTE_BIT = VkSubgroupFeatureBitmask 2
pattern VK_SUBGROUP_FEATURE_ARITHMETIC_BIT ::
VkSubgroupFeatureBitmask a
pattern VK_SUBGROUP_FEATURE_ARITHMETIC_BIT =
VkSubgroupFeatureBitmask 4
pattern VK_SUBGROUP_FEATURE_BALLOT_BIT ::
VkSubgroupFeatureBitmask a
pattern VK_SUBGROUP_FEATURE_BALLOT_BIT = VkSubgroupFeatureBitmask 8
pattern VK_SUBGROUP_FEATURE_SHUFFLE_BIT ::
VkSubgroupFeatureBitmask a
pattern VK_SUBGROUP_FEATURE_SHUFFLE_BIT =
VkSubgroupFeatureBitmask 16
pattern VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT ::
VkSubgroupFeatureBitmask a
pattern VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT =
VkSubgroupFeatureBitmask 32
pattern VK_SUBGROUP_FEATURE_CLUSTERED_BIT ::
VkSubgroupFeatureBitmask a
pattern VK_SUBGROUP_FEATURE_CLUSTERED_BIT =
VkSubgroupFeatureBitmask 64
pattern VK_SUBGROUP_FEATURE_QUAD_BIT :: VkSubgroupFeatureBitmask a
pattern VK_SUBGROUP_FEATURE_QUAD_BIT = VkSubgroupFeatureBitmask 128