{-# 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.Subpass
(VkSubpassContents(VkSubpassContents, VK_SUBPASS_CONTENTS_INLINE,
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS),
VkSubpassDescriptionBitmask(VkSubpassDescriptionBitmask,
VkSubpassDescriptionFlags, VkSubpassDescriptionFlagBits),
VkSubpassDescriptionFlags, VkSubpassDescriptionFlagBits)
where
import Data.Bits (Bits, FiniteBits)
import Foreign.Storable (Storable)
import GHC.Read (choose, expectP)
import Graphics.Vulkan.Marshal (FlagBit, FlagMask, FlagType, Int32)
import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
import Text.ParserCombinators.ReadPrec (prec, step, (+++))
import Text.Read (Read (..), parens)
import Text.Read.Lex (Lexeme (..))
newtype VkSubpassContents = VkSubpassContents Int32
deriving (Eq, Ord, Enum, Storable)
instance Show VkSubpassContents where
showsPrec _ VK_SUBPASS_CONTENTS_INLINE
= showString "VK_SUBPASS_CONTENTS_INLINE"
showsPrec _ VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
= showString "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS"
showsPrec p (VkSubpassContents x)
= showParen (p >= 11)
(showString "VkSubpassContents " . showsPrec 11 x)
instance Read VkSubpassContents where
readPrec
= parens
(choose
[("VK_SUBPASS_CONTENTS_INLINE", pure VK_SUBPASS_CONTENTS_INLINE),
("VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS",
pure VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS)]
+++
prec 10
(expectP (Ident "VkSubpassContents") >>
(VkSubpassContents <$> step readPrec)))
pattern VK_SUBPASS_CONTENTS_INLINE :: VkSubpassContents
pattern VK_SUBPASS_CONTENTS_INLINE = VkSubpassContents 0
pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS ::
VkSubpassContents
pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS =
VkSubpassContents 1
newtype VkSubpassDescriptionBitmask (a ::
FlagType) = VkSubpassDescriptionBitmask VkFlags
deriving (Eq, Ord, Storable)
type VkSubpassDescriptionFlags =
VkSubpassDescriptionBitmask FlagMask
type VkSubpassDescriptionFlagBits =
VkSubpassDescriptionBitmask FlagBit
pattern VkSubpassDescriptionFlagBits ::
VkFlags -> VkSubpassDescriptionBitmask FlagBit
pattern VkSubpassDescriptionFlagBits n =
VkSubpassDescriptionBitmask n
pattern VkSubpassDescriptionFlags ::
VkFlags -> VkSubpassDescriptionBitmask FlagMask
pattern VkSubpassDescriptionFlags n = VkSubpassDescriptionBitmask n
deriving instance Bits (VkSubpassDescriptionBitmask FlagMask)
deriving instance FiniteBits (VkSubpassDescriptionBitmask FlagMask)
instance Show (VkSubpassDescriptionBitmask a) where
showsPrec p (VkSubpassDescriptionBitmask x)
= showParen (p >= 11)
(showString "VkSubpassDescriptionBitmask " . showsPrec 11 x)
instance Read (VkSubpassDescriptionBitmask a) where
readPrec
= parens
(choose [] +++
prec 10
(expectP (Ident "VkSubpassDescriptionBitmask") >>
(VkSubpassDescriptionBitmask <$> step readPrec)))