{-# 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.Buffer
(VkBufferCreateBitmask(VkBufferCreateBitmask, VkBufferCreateFlags,
VkBufferCreateFlagBits, VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
VK_BUFFER_CREATE_SPARSE_ALIASED_BIT),
VkBufferCreateFlags, VkBufferCreateFlagBits,
VkBufferUsageBitmask(VkBufferUsageBitmask, VkBufferUsageFlags,
VkBufferUsageFlagBits, VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
VK_BUFFER_USAGE_TRANSFER_DST_BIT,
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT),
VkBufferUsageFlags, VkBufferUsageFlagBits,
VkBufferViewCreateFlagBits(..))
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 VkBufferCreateBitmask (a ::
FlagType) = VkBufferCreateBitmask VkFlags
deriving (Eq, Ord, Storable)
type VkBufferCreateFlags = VkBufferCreateBitmask FlagMask
type VkBufferCreateFlagBits = VkBufferCreateBitmask FlagBit
pattern VkBufferCreateFlagBits ::
VkFlags -> VkBufferCreateBitmask FlagBit
pattern VkBufferCreateFlagBits n = VkBufferCreateBitmask n
pattern VkBufferCreateFlags ::
VkFlags -> VkBufferCreateBitmask FlagMask
pattern VkBufferCreateFlags n = VkBufferCreateBitmask n
deriving instance Bits (VkBufferCreateBitmask FlagMask)
deriving instance FiniteBits (VkBufferCreateBitmask FlagMask)
instance Show (VkBufferCreateBitmask a) where
showsPrec _ VK_BUFFER_CREATE_SPARSE_BINDING_BIT
= showString "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"
showsPrec _ VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
= showString "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"
showsPrec _ VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
= showString "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"
showsPrec p (VkBufferCreateBitmask x)
= showParen (p >= 11)
(showString "VkBufferCreateBitmask " . showsPrec 11 x)
instance Read (VkBufferCreateBitmask a) where
readPrec
= parens
(choose
[("VK_BUFFER_CREATE_SPARSE_BINDING_BIT",
pure VK_BUFFER_CREATE_SPARSE_BINDING_BIT),
("VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT",
pure VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT),
("VK_BUFFER_CREATE_SPARSE_ALIASED_BIT",
pure VK_BUFFER_CREATE_SPARSE_ALIASED_BIT)]
+++
prec 10
(expectP (Ident "VkBufferCreateBitmask") >>
(VkBufferCreateBitmask <$> step readPrec)))
pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT ::
VkBufferCreateBitmask a
pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT =
VkBufferCreateBitmask 1
pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT ::
VkBufferCreateBitmask a
pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT =
VkBufferCreateBitmask 2
pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT ::
VkBufferCreateBitmask a
pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT =
VkBufferCreateBitmask 4
newtype VkBufferUsageBitmask (a ::
FlagType) = VkBufferUsageBitmask VkFlags
deriving (Eq, Ord, Storable)
type VkBufferUsageFlags = VkBufferUsageBitmask FlagMask
type VkBufferUsageFlagBits = VkBufferUsageBitmask FlagBit
pattern VkBufferUsageFlagBits ::
VkFlags -> VkBufferUsageBitmask FlagBit
pattern VkBufferUsageFlagBits n = VkBufferUsageBitmask n
pattern VkBufferUsageFlags ::
VkFlags -> VkBufferUsageBitmask FlagMask
pattern VkBufferUsageFlags n = VkBufferUsageBitmask n
deriving instance Bits (VkBufferUsageBitmask FlagMask)
deriving instance FiniteBits (VkBufferUsageBitmask FlagMask)
instance Show (VkBufferUsageBitmask a) where
showsPrec _ VK_BUFFER_USAGE_TRANSFER_SRC_BIT
= showString "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"
showsPrec _ VK_BUFFER_USAGE_TRANSFER_DST_BIT
= showString "VK_BUFFER_USAGE_TRANSFER_DST_BIT"
showsPrec _ VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
= showString "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"
showsPrec _ VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
= showString "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"
showsPrec _ VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
= showString "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"
showsPrec _ VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
= showString "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"
showsPrec _ VK_BUFFER_USAGE_INDEX_BUFFER_BIT
= showString "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"
showsPrec _ VK_BUFFER_USAGE_VERTEX_BUFFER_BIT
= showString "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"
showsPrec _ VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
= showString "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"
showsPrec p (VkBufferUsageBitmask x)
= showParen (p >= 11)
(showString "VkBufferUsageBitmask " . showsPrec 11 x)
instance Read (VkBufferUsageBitmask a) where
readPrec
= parens
(choose
[("VK_BUFFER_USAGE_TRANSFER_SRC_BIT",
pure VK_BUFFER_USAGE_TRANSFER_SRC_BIT),
("VK_BUFFER_USAGE_TRANSFER_DST_BIT",
pure VK_BUFFER_USAGE_TRANSFER_DST_BIT),
("VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT",
pure VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT),
("VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT",
pure VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT),
("VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT",
pure VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT),
("VK_BUFFER_USAGE_STORAGE_BUFFER_BIT",
pure VK_BUFFER_USAGE_STORAGE_BUFFER_BIT),
("VK_BUFFER_USAGE_INDEX_BUFFER_BIT",
pure VK_BUFFER_USAGE_INDEX_BUFFER_BIT),
("VK_BUFFER_USAGE_VERTEX_BUFFER_BIT",
pure VK_BUFFER_USAGE_VERTEX_BUFFER_BIT),
("VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT",
pure VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT)]
+++
prec 10
(expectP (Ident "VkBufferUsageBitmask") >>
(VkBufferUsageBitmask <$> step readPrec)))
pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT :: VkBufferUsageBitmask a
pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT = VkBufferUsageBitmask 1
pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT :: VkBufferUsageBitmask a
pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT = VkBufferUsageBitmask 2
pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT ::
VkBufferUsageBitmask a
pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT =
VkBufferUsageBitmask 4
pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT ::
VkBufferUsageBitmask a
pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT =
VkBufferUsageBitmask 8
pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT ::
VkBufferUsageBitmask a
pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT =
VkBufferUsageBitmask 16
pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT ::
VkBufferUsageBitmask a
pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT =
VkBufferUsageBitmask 32
pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT :: VkBufferUsageBitmask a
pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT = VkBufferUsageBitmask 64
pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT :: VkBufferUsageBitmask a
pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT =
VkBufferUsageBitmask 128
pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT ::
VkBufferUsageBitmask a
pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT =
VkBufferUsageBitmask 256
newtype VkBufferViewCreateFlagBits = VkBufferViewCreateFlagBits VkFlags
deriving (Eq, Ord, Enum, Bits, FiniteBits, Storable)
instance Show VkBufferViewCreateFlagBits where
{-# INLINE showsPrec #-}
showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS)
instance Read VkBufferViewCreateFlagBits where
{-# INLINE readsPrec #-}
readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)