{-# 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.Stencil
(VkStencilFaceBitmask(VkStencilFaceBitmask, VkStencilFaceFlags,
VkStencilFaceFlagBits, VK_STENCIL_FACE_FRONT_BIT,
VK_STENCIL_FACE_BACK_BIT, VK_STENCIL_FRONT_AND_BACK),
VkStencilFaceFlags, VkStencilFaceFlagBits,
VkStencilOp(VkStencilOp, VK_STENCIL_OP_KEEP, VK_STENCIL_OP_ZERO,
VK_STENCIL_OP_REPLACE, VK_STENCIL_OP_INCREMENT_AND_CLAMP,
VK_STENCIL_OP_DECREMENT_AND_CLAMP, VK_STENCIL_OP_INVERT,
VK_STENCIL_OP_INCREMENT_AND_WRAP,
VK_STENCIL_OP_DECREMENT_AND_WRAP))
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 VkStencilFaceBitmask (a ::
FlagType) = VkStencilFaceBitmask VkFlags
deriving (Eq, Ord, Storable)
type VkStencilFaceFlags = VkStencilFaceBitmask FlagMask
type VkStencilFaceFlagBits = VkStencilFaceBitmask FlagBit
pattern VkStencilFaceFlagBits ::
VkFlags -> VkStencilFaceBitmask FlagBit
pattern VkStencilFaceFlagBits n = VkStencilFaceBitmask n
pattern VkStencilFaceFlags ::
VkFlags -> VkStencilFaceBitmask FlagMask
pattern VkStencilFaceFlags n = VkStencilFaceBitmask n
deriving instance Bits (VkStencilFaceBitmask FlagMask)
deriving instance FiniteBits (VkStencilFaceBitmask FlagMask)
instance Show (VkStencilFaceBitmask a) where
showsPrec _ VK_STENCIL_FACE_FRONT_BIT
= showString "VK_STENCIL_FACE_FRONT_BIT"
showsPrec _ VK_STENCIL_FACE_BACK_BIT
= showString "VK_STENCIL_FACE_BACK_BIT"
showsPrec _ VK_STENCIL_FRONT_AND_BACK
= showString "VK_STENCIL_FRONT_AND_BACK"
showsPrec p (VkStencilFaceBitmask x)
= showParen (p >= 11)
(showString "VkStencilFaceBitmask " . showsPrec 11 x)
instance Read (VkStencilFaceBitmask a) where
readPrec
= parens
(choose
[("VK_STENCIL_FACE_FRONT_BIT", pure VK_STENCIL_FACE_FRONT_BIT),
("VK_STENCIL_FACE_BACK_BIT", pure VK_STENCIL_FACE_BACK_BIT),
("VK_STENCIL_FRONT_AND_BACK", pure VK_STENCIL_FRONT_AND_BACK)]
+++
prec 10
(expectP (Ident "VkStencilFaceBitmask") >>
(VkStencilFaceBitmask <$> step readPrec)))
pattern VK_STENCIL_FACE_FRONT_BIT :: VkStencilFaceBitmask a
pattern VK_STENCIL_FACE_FRONT_BIT = VkStencilFaceBitmask 1
pattern VK_STENCIL_FACE_BACK_BIT :: VkStencilFaceBitmask a
pattern VK_STENCIL_FACE_BACK_BIT = VkStencilFaceBitmask 2
pattern VK_STENCIL_FRONT_AND_BACK :: VkStencilFaceBitmask a
pattern VK_STENCIL_FRONT_AND_BACK = VkStencilFaceBitmask 3
newtype VkStencilOp = VkStencilOp Int32
deriving (Eq, Ord, Enum, Storable)
instance Show VkStencilOp where
showsPrec _ VK_STENCIL_OP_KEEP = showString "VK_STENCIL_OP_KEEP"
showsPrec _ VK_STENCIL_OP_ZERO = showString "VK_STENCIL_OP_ZERO"
showsPrec _ VK_STENCIL_OP_REPLACE
= showString "VK_STENCIL_OP_REPLACE"
showsPrec _ VK_STENCIL_OP_INCREMENT_AND_CLAMP
= showString "VK_STENCIL_OP_INCREMENT_AND_CLAMP"
showsPrec _ VK_STENCIL_OP_DECREMENT_AND_CLAMP
= showString "VK_STENCIL_OP_DECREMENT_AND_CLAMP"
showsPrec _ VK_STENCIL_OP_INVERT
= showString "VK_STENCIL_OP_INVERT"
showsPrec _ VK_STENCIL_OP_INCREMENT_AND_WRAP
= showString "VK_STENCIL_OP_INCREMENT_AND_WRAP"
showsPrec _ VK_STENCIL_OP_DECREMENT_AND_WRAP
= showString "VK_STENCIL_OP_DECREMENT_AND_WRAP"
showsPrec p (VkStencilOp x)
= showParen (p >= 11) (showString "VkStencilOp " . showsPrec 11 x)
instance Read VkStencilOp where
readPrec
= parens
(choose
[("VK_STENCIL_OP_KEEP", pure VK_STENCIL_OP_KEEP),
("VK_STENCIL_OP_ZERO", pure VK_STENCIL_OP_ZERO),
("VK_STENCIL_OP_REPLACE", pure VK_STENCIL_OP_REPLACE),
("VK_STENCIL_OP_INCREMENT_AND_CLAMP",
pure VK_STENCIL_OP_INCREMENT_AND_CLAMP),
("VK_STENCIL_OP_DECREMENT_AND_CLAMP",
pure VK_STENCIL_OP_DECREMENT_AND_CLAMP),
("VK_STENCIL_OP_INVERT", pure VK_STENCIL_OP_INVERT),
("VK_STENCIL_OP_INCREMENT_AND_WRAP",
pure VK_STENCIL_OP_INCREMENT_AND_WRAP),
("VK_STENCIL_OP_DECREMENT_AND_WRAP",
pure VK_STENCIL_OP_DECREMENT_AND_WRAP)]
+++
prec 10
(expectP (Ident "VkStencilOp") >> (VkStencilOp <$> step readPrec)))
pattern VK_STENCIL_OP_KEEP :: VkStencilOp
pattern VK_STENCIL_OP_KEEP = VkStencilOp 0
pattern VK_STENCIL_OP_ZERO :: VkStencilOp
pattern VK_STENCIL_OP_ZERO = VkStencilOp 1
pattern VK_STENCIL_OP_REPLACE :: VkStencilOp
pattern VK_STENCIL_OP_REPLACE = VkStencilOp 2
pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP :: VkStencilOp
pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP = VkStencilOp 3
pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP :: VkStencilOp
pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP = VkStencilOp 4
pattern VK_STENCIL_OP_INVERT :: VkStencilOp
pattern VK_STENCIL_OP_INVERT = VkStencilOp 5
pattern VK_STENCIL_OP_INCREMENT_AND_WRAP :: VkStencilOp
pattern VK_STENCIL_OP_INCREMENT_AND_WRAP = VkStencilOp 6
pattern VK_STENCIL_OP_DECREMENT_AND_WRAP :: VkStencilOp
pattern VK_STENCIL_OP_DECREMENT_AND_WRAP = VkStencilOp 7