{-# 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.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 Data.Data (Data)
import Foreign.Storable (Storable)
import GHC.Generics (Generic)
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, Data, Generic)
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)
deriving instance Integral (VkStencilFaceBitmask FlagMask)
deriving instance Num (VkStencilFaceBitmask FlagMask)
deriving instance Bounded (VkStencilFaceBitmask FlagMask)
deriving instance Enum (VkStencilFaceBitmask FlagMask)
deriving instance Real (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, Num, Bounded, Storable, Enum, Data, Generic)
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