{-# 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.Queue
(VkQueueBitmask(VkQueueBitmask, VkQueueFlags, VkQueueFlagBits,
VK_QUEUE_GRAPHICS_BIT, VK_QUEUE_COMPUTE_BIT, VK_QUEUE_TRANSFER_BIT,
VK_QUEUE_SPARSE_BINDING_BIT),
VkQueueFlags, VkQueueFlagBits,
VkQueueGlobalPriorityEXT(VkQueueGlobalPriorityEXT,
VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT))
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 VkQueueBitmask (a :: FlagType) = VkQueueBitmask VkFlags
deriving (Eq, Ord, Storable)
type VkQueueFlags = VkQueueBitmask FlagMask
type VkQueueFlagBits = VkQueueBitmask FlagBit
pattern VkQueueFlagBits :: VkFlags -> VkQueueBitmask FlagBit
pattern VkQueueFlagBits n = VkQueueBitmask n
pattern VkQueueFlags :: VkFlags -> VkQueueBitmask FlagMask
pattern VkQueueFlags n = VkQueueBitmask n
deriving instance Bits (VkQueueBitmask FlagMask)
deriving instance FiniteBits (VkQueueBitmask FlagMask)
instance Show (VkQueueBitmask a) where
showsPrec _ VK_QUEUE_GRAPHICS_BIT
= showString "VK_QUEUE_GRAPHICS_BIT"
showsPrec _ VK_QUEUE_COMPUTE_BIT
= showString "VK_QUEUE_COMPUTE_BIT"
showsPrec _ VK_QUEUE_TRANSFER_BIT
= showString "VK_QUEUE_TRANSFER_BIT"
showsPrec _ VK_QUEUE_SPARSE_BINDING_BIT
= showString "VK_QUEUE_SPARSE_BINDING_BIT"
showsPrec p (VkQueueBitmask x)
= showParen (p >= 11)
(showString "VkQueueBitmask " . showsPrec 11 x)
instance Read (VkQueueBitmask a) where
readPrec
= parens
(choose
[("VK_QUEUE_GRAPHICS_BIT", pure VK_QUEUE_GRAPHICS_BIT),
("VK_QUEUE_COMPUTE_BIT", pure VK_QUEUE_COMPUTE_BIT),
("VK_QUEUE_TRANSFER_BIT", pure VK_QUEUE_TRANSFER_BIT),
("VK_QUEUE_SPARSE_BINDING_BIT", pure VK_QUEUE_SPARSE_BINDING_BIT)]
+++
prec 10
(expectP (Ident "VkQueueBitmask") >>
(VkQueueBitmask <$> step readPrec)))
pattern VK_QUEUE_GRAPHICS_BIT :: VkQueueBitmask a
pattern VK_QUEUE_GRAPHICS_BIT = VkQueueBitmask 1
pattern VK_QUEUE_COMPUTE_BIT :: VkQueueBitmask a
pattern VK_QUEUE_COMPUTE_BIT = VkQueueBitmask 2
pattern VK_QUEUE_TRANSFER_BIT :: VkQueueBitmask a
pattern VK_QUEUE_TRANSFER_BIT = VkQueueBitmask 4
pattern VK_QUEUE_SPARSE_BINDING_BIT :: VkQueueBitmask a
pattern VK_QUEUE_SPARSE_BINDING_BIT = VkQueueBitmask 8
newtype VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityEXT Int32
deriving (Eq, Ord, Enum, Storable)
instance Show VkQueueGlobalPriorityEXT where
showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT
= showString "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT"
showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
= showString "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT"
showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT
= showString "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT"
showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
= showString "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT"
showsPrec p (VkQueueGlobalPriorityEXT x)
= showParen (p >= 11)
(showString "VkQueueGlobalPriorityEXT " . showsPrec 11 x)
instance Read VkQueueGlobalPriorityEXT where
readPrec
= parens
(choose
[("VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT",
pure VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT),
("VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT",
pure VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT),
("VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT",
pure VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT),
("VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT",
pure VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT)]
+++
prec 10
(expectP (Ident "VkQueueGlobalPriorityEXT") >>
(VkQueueGlobalPriorityEXT <$> step readPrec)))
pattern VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT ::
VkQueueGlobalPriorityEXT
pattern VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT =
VkQueueGlobalPriorityEXT 128
pattern VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT ::
VkQueueGlobalPriorityEXT
pattern VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT =
VkQueueGlobalPriorityEXT 256
pattern VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT ::
VkQueueGlobalPriorityEXT
pattern VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT =
VkQueueGlobalPriorityEXT 512
pattern VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT ::
VkQueueGlobalPriorityEXT
pattern VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT =
VkQueueGlobalPriorityEXT 1024