{-# 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.Fence
(VkFenceCreateBitmask(VkFenceCreateBitmask, VkFenceCreateFlags,
VkFenceCreateFlagBits, VK_FENCE_CREATE_SIGNALED_BIT),
VkFenceCreateFlags, VkFenceCreateFlagBits,
VkFenceImportFlagBitsKHR(..),
VkFenceImportBitmask(VkFenceImportBitmask, VkFenceImportFlags,
VkFenceImportFlagBits, VK_FENCE_IMPORT_TEMPORARY_BIT),
VkFenceImportFlags, VkFenceImportFlagBits)
where
import Data.Bits (Bits, FiniteBits)
import Data.Coerce (coerce)
import Foreign.Storable (Storable)
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 VkFenceCreateBitmask (a ::
FlagType) = VkFenceCreateBitmask VkFlags
deriving (Eq, Ord, Storable)
type VkFenceCreateFlags = VkFenceCreateBitmask FlagMask
type VkFenceCreateFlagBits = VkFenceCreateBitmask FlagBit
pattern VkFenceCreateFlagBits ::
VkFlags -> VkFenceCreateBitmask FlagBit
pattern VkFenceCreateFlagBits n = VkFenceCreateBitmask n
pattern VkFenceCreateFlags ::
VkFlags -> VkFenceCreateBitmask FlagMask
pattern VkFenceCreateFlags n = VkFenceCreateBitmask n
deriving instance Bits (VkFenceCreateBitmask FlagMask)
deriving instance FiniteBits (VkFenceCreateBitmask FlagMask)
instance Show (VkFenceCreateBitmask a) where
showsPrec _ VK_FENCE_CREATE_SIGNALED_BIT
= showString "VK_FENCE_CREATE_SIGNALED_BIT"
showsPrec p (VkFenceCreateBitmask x)
= showParen (p >= 11)
(showString "VkFenceCreateBitmask " . showsPrec 11 x)
instance Read (VkFenceCreateBitmask a) where
readPrec
= parens
(choose
[("VK_FENCE_CREATE_SIGNALED_BIT",
pure VK_FENCE_CREATE_SIGNALED_BIT)]
+++
prec 10
(expectP (Ident "VkFenceCreateBitmask") >>
(VkFenceCreateBitmask <$> step readPrec)))
pattern VK_FENCE_CREATE_SIGNALED_BIT :: VkFenceCreateBitmask a
pattern VK_FENCE_CREATE_SIGNALED_BIT = VkFenceCreateBitmask 1
newtype VkFenceImportFlagBitsKHR = VkFenceImportFlagBitsKHR VkFlags
deriving (Eq, Ord, Enum, Bits, FiniteBits, Storable)
instance Show VkFenceImportFlagBitsKHR where
{-# INLINE showsPrec #-}
showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS)
instance Read VkFenceImportFlagBitsKHR where
{-# INLINE readsPrec #-}
readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
newtype VkFenceImportBitmask (a ::
FlagType) = VkFenceImportBitmask VkFlags
deriving (Eq, Ord, Storable)
type VkFenceImportFlags = VkFenceImportBitmask FlagMask
type VkFenceImportFlagBits = VkFenceImportBitmask FlagBit
pattern VkFenceImportFlagBits ::
VkFlags -> VkFenceImportBitmask FlagBit
pattern VkFenceImportFlagBits n = VkFenceImportBitmask n
pattern VkFenceImportFlags ::
VkFlags -> VkFenceImportBitmask FlagMask
pattern VkFenceImportFlags n = VkFenceImportBitmask n
deriving instance Bits (VkFenceImportBitmask FlagMask)
deriving instance FiniteBits (VkFenceImportBitmask FlagMask)
instance Show (VkFenceImportBitmask a) where
showsPrec _ VK_FENCE_IMPORT_TEMPORARY_BIT
= showString "VK_FENCE_IMPORT_TEMPORARY_BIT"
showsPrec p (VkFenceImportBitmask x)
= showParen (p >= 11)
(showString "VkFenceImportBitmask " . showsPrec 11 x)
instance Read (VkFenceImportBitmask a) where
readPrec
= parens
(choose
[("VK_FENCE_IMPORT_TEMPORARY_BIT",
pure VK_FENCE_IMPORT_TEMPORARY_BIT)]
+++
prec 10
(expectP (Ident "VkFenceImportBitmask") >>
(VkFenceImportBitmask <$> step readPrec)))
pattern VK_FENCE_IMPORT_TEMPORARY_BIT :: VkFenceImportBitmask a
pattern VK_FENCE_IMPORT_TEMPORARY_BIT = VkFenceImportBitmask 1