{-# 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.Shader (VkShaderInfoTypeAMD(VkShaderInfoTypeAMD, VK_SHADER_INFO_TYPE_STATISTICS_AMD, VK_SHADER_INFO_TYPE_BINARY_AMD, VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD), VkShaderStageBitmask(VkShaderStageBitmask, VkShaderStageFlags, VkShaderStageFlagBits, VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, VK_SHADER_STAGE_FRAGMENT_BIT, VK_SHADER_STAGE_COMPUTE_BIT, VK_SHADER_STAGE_ALL_GRAPHICS, VK_SHADER_STAGE_ALL), VkShaderStageFlags, VkShaderStageFlagBits) 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 (..)) -- | type = @enum@ -- -- newtype VkShaderInfoTypeAMD = VkShaderInfoTypeAMD Int32 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic) instance Show VkShaderInfoTypeAMD where showsPrec _ VK_SHADER_INFO_TYPE_STATISTICS_AMD = showString "VK_SHADER_INFO_TYPE_STATISTICS_AMD" showsPrec _ VK_SHADER_INFO_TYPE_BINARY_AMD = showString "VK_SHADER_INFO_TYPE_BINARY_AMD" showsPrec _ VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = showString "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD" showsPrec p (VkShaderInfoTypeAMD x) = showParen (p >= 11) (showString "VkShaderInfoTypeAMD " . showsPrec 11 x) instance Read VkShaderInfoTypeAMD where readPrec = parens (choose [("VK_SHADER_INFO_TYPE_STATISTICS_AMD", pure VK_SHADER_INFO_TYPE_STATISTICS_AMD), ("VK_SHADER_INFO_TYPE_BINARY_AMD", pure VK_SHADER_INFO_TYPE_BINARY_AMD), ("VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD", pure VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD)] +++ prec 10 (expectP (Ident "VkShaderInfoTypeAMD") >> (VkShaderInfoTypeAMD <$> step readPrec))) pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD :: VkShaderInfoTypeAMD pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD = VkShaderInfoTypeAMD 0 pattern VK_SHADER_INFO_TYPE_BINARY_AMD :: VkShaderInfoTypeAMD pattern VK_SHADER_INFO_TYPE_BINARY_AMD = VkShaderInfoTypeAMD 1 pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD :: VkShaderInfoTypeAMD pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = VkShaderInfoTypeAMD 2 newtype VkShaderStageBitmask (a :: FlagType) = VkShaderStageBitmask VkFlags deriving (Eq, Ord, Storable, Data, Generic) type VkShaderStageFlags = VkShaderStageBitmask FlagMask type VkShaderStageFlagBits = VkShaderStageBitmask FlagBit pattern VkShaderStageFlagBits :: VkFlags -> VkShaderStageBitmask FlagBit pattern VkShaderStageFlagBits n = VkShaderStageBitmask n pattern VkShaderStageFlags :: VkFlags -> VkShaderStageBitmask FlagMask pattern VkShaderStageFlags n = VkShaderStageBitmask n deriving instance Bits (VkShaderStageBitmask FlagMask) deriving instance FiniteBits (VkShaderStageBitmask FlagMask) deriving instance Integral (VkShaderStageBitmask FlagMask) deriving instance Num (VkShaderStageBitmask FlagMask) deriving instance Bounded (VkShaderStageBitmask FlagMask) deriving instance Enum (VkShaderStageBitmask FlagMask) deriving instance Real (VkShaderStageBitmask FlagMask) instance Show (VkShaderStageBitmask a) where showsPrec _ VK_SHADER_STAGE_VERTEX_BIT = showString "VK_SHADER_STAGE_VERTEX_BIT" showsPrec _ VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = showString "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT" showsPrec _ VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = showString "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" showsPrec _ VK_SHADER_STAGE_GEOMETRY_BIT = showString "VK_SHADER_STAGE_GEOMETRY_BIT" showsPrec _ VK_SHADER_STAGE_FRAGMENT_BIT = showString "VK_SHADER_STAGE_FRAGMENT_BIT" showsPrec _ VK_SHADER_STAGE_COMPUTE_BIT = showString "VK_SHADER_STAGE_COMPUTE_BIT" showsPrec _ VK_SHADER_STAGE_ALL_GRAPHICS = showString "VK_SHADER_STAGE_ALL_GRAPHICS" showsPrec _ VK_SHADER_STAGE_ALL = showString "VK_SHADER_STAGE_ALL" showsPrec p (VkShaderStageBitmask x) = showParen (p >= 11) (showString "VkShaderStageBitmask " . showsPrec 11 x) instance Read (VkShaderStageBitmask a) where readPrec = parens (choose [("VK_SHADER_STAGE_VERTEX_BIT", pure VK_SHADER_STAGE_VERTEX_BIT), ("VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", pure VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT), ("VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", pure VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT), ("VK_SHADER_STAGE_GEOMETRY_BIT", pure VK_SHADER_STAGE_GEOMETRY_BIT), ("VK_SHADER_STAGE_FRAGMENT_BIT", pure VK_SHADER_STAGE_FRAGMENT_BIT), ("VK_SHADER_STAGE_COMPUTE_BIT", pure VK_SHADER_STAGE_COMPUTE_BIT), ("VK_SHADER_STAGE_ALL_GRAPHICS", pure VK_SHADER_STAGE_ALL_GRAPHICS), ("VK_SHADER_STAGE_ALL", pure VK_SHADER_STAGE_ALL)] +++ prec 10 (expectP (Ident "VkShaderStageBitmask") >> (VkShaderStageBitmask <$> step readPrec))) -- | bitpos = @0@ pattern VK_SHADER_STAGE_VERTEX_BIT :: VkShaderStageBitmask a pattern VK_SHADER_STAGE_VERTEX_BIT = VkShaderStageBitmask 1 -- | bitpos = @1@ pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT :: VkShaderStageBitmask a pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = VkShaderStageBitmask 2 -- | bitpos = @2@ pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT :: VkShaderStageBitmask a pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = VkShaderStageBitmask 4 -- | bitpos = @3@ pattern VK_SHADER_STAGE_GEOMETRY_BIT :: VkShaderStageBitmask a pattern VK_SHADER_STAGE_GEOMETRY_BIT = VkShaderStageBitmask 8 -- | bitpos = @4@ pattern VK_SHADER_STAGE_FRAGMENT_BIT :: VkShaderStageBitmask a pattern VK_SHADER_STAGE_FRAGMENT_BIT = VkShaderStageBitmask 16 -- | bitpos = @5@ pattern VK_SHADER_STAGE_COMPUTE_BIT :: VkShaderStageBitmask a pattern VK_SHADER_STAGE_COMPUTE_BIT = VkShaderStageBitmask 32 pattern VK_SHADER_STAGE_ALL_GRAPHICS :: VkShaderStageBitmask a pattern VK_SHADER_STAGE_ALL_GRAPHICS = VkShaderStageBitmask 31 pattern VK_SHADER_STAGE_ALL :: VkShaderStageBitmask a pattern VK_SHADER_STAGE_ALL = VkShaderStageBitmask 2147483647