{-# 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.Query (VkQueryControlBitmask(VkQueryControlBitmask, VkQueryControlFlags, VkQueryControlFlagBits, VK_QUERY_CONTROL_PRECISE_BIT), VkQueryControlFlags, VkQueryControlFlagBits, VkQueryPipelineStatisticBitmask(VkQueryPipelineStatisticBitmask, VkQueryPipelineStatisticFlags, VkQueryPipelineStatisticFlagBits, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT), VkQueryPipelineStatisticFlags, VkQueryPipelineStatisticFlagBits, VkQueryPoolCreateFlagBits(..), VkQueryResultBitmask(VkQueryResultBitmask, VkQueryResultFlags, VkQueryResultFlagBits, VK_QUERY_RESULT_64_BIT, VK_QUERY_RESULT_WAIT_BIT, VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_PARTIAL_BIT), VkQueryResultFlags, VkQueryResultFlagBits, VkQueryType(VkQueryType, VK_QUERY_TYPE_OCCLUSION, VK_QUERY_TYPE_PIPELINE_STATISTICS, VK_QUERY_TYPE_TIMESTAMP)) 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, Int32) import Graphics.Vulkan.Types.BaseTypes (VkFlags (..)) import Text.ParserCombinators.ReadPrec (prec, step, (+++)) import Text.Read (Read (..), parens) import Text.Read.Lex (Lexeme (..)) newtype VkQueryControlBitmask (a :: FlagType) = VkQueryControlBitmask VkFlags deriving (Eq, Ord, Storable) type VkQueryControlFlags = VkQueryControlBitmask FlagMask type VkQueryControlFlagBits = VkQueryControlBitmask FlagBit pattern VkQueryControlFlagBits :: VkFlags -> VkQueryControlBitmask FlagBit pattern VkQueryControlFlagBits n = VkQueryControlBitmask n pattern VkQueryControlFlags :: VkFlags -> VkQueryControlBitmask FlagMask pattern VkQueryControlFlags n = VkQueryControlBitmask n deriving instance Bits (VkQueryControlBitmask FlagMask) deriving instance FiniteBits (VkQueryControlBitmask FlagMask) instance Show (VkQueryControlBitmask a) where showsPrec _ VK_QUERY_CONTROL_PRECISE_BIT = showString "VK_QUERY_CONTROL_PRECISE_BIT" showsPrec p (VkQueryControlBitmask x) = showParen (p >= 11) (showString "VkQueryControlBitmask " . showsPrec 11 x) instance Read (VkQueryControlBitmask a) where readPrec = parens (choose [("VK_QUERY_CONTROL_PRECISE_BIT", pure VK_QUERY_CONTROL_PRECISE_BIT)] +++ prec 10 (expectP (Ident "VkQueryControlBitmask") >> (VkQueryControlBitmask <$> step readPrec))) -- | Require precise results to be collected by the query -- -- bitpos = @0@ pattern VK_QUERY_CONTROL_PRECISE_BIT :: VkQueryControlBitmask a pattern VK_QUERY_CONTROL_PRECISE_BIT = VkQueryControlBitmask 1 newtype VkQueryPipelineStatisticBitmask (a :: FlagType) = VkQueryPipelineStatisticBitmask VkFlags deriving (Eq, Ord, Storable) type VkQueryPipelineStatisticFlags = VkQueryPipelineStatisticBitmask FlagMask type VkQueryPipelineStatisticFlagBits = VkQueryPipelineStatisticBitmask FlagBit pattern VkQueryPipelineStatisticFlagBits :: VkFlags -> VkQueryPipelineStatisticBitmask FlagBit pattern VkQueryPipelineStatisticFlagBits n = VkQueryPipelineStatisticBitmask n pattern VkQueryPipelineStatisticFlags :: VkFlags -> VkQueryPipelineStatisticBitmask FlagMask pattern VkQueryPipelineStatisticFlags n = VkQueryPipelineStatisticBitmask n deriving instance Bits (VkQueryPipelineStatisticBitmask FlagMask) deriving instance FiniteBits (VkQueryPipelineStatisticBitmask FlagMask) instance Show (VkQueryPipelineStatisticBitmask a) where showsPrec _ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" showsPrec _ VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT" showsPrec p (VkQueryPipelineStatisticBitmask x) = showParen (p >= 11) (showString "VkQueryPipelineStatisticBitmask " . showsPrec 11 x) instance Read (VkQueryPipelineStatisticBitmask a) where readPrec = parens (choose [("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT), ("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT), ("VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT), ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT), ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT), ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT), ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT), ("VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT), ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT), ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT), ("VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT)] +++ prec 10 (expectP (Ident "VkQueryPipelineStatisticBitmask") >> (VkQueryPipelineStatisticBitmask <$> step readPrec))) -- | Optional -- -- bitpos = @0@ pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = VkQueryPipelineStatisticBitmask 1 -- | Optional -- -- bitpos = @1@ pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = VkQueryPipelineStatisticBitmask 2 -- | Optional -- -- bitpos = @2@ pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticBitmask 4 -- | Optional -- -- bitpos = @3@ pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticBitmask 8 -- | Optional -- -- bitpos = @4@ pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = VkQueryPipelineStatisticBitmask 16 -- | Optional -- -- bitpos = @5@ pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = VkQueryPipelineStatisticBitmask 32 -- | Optional -- -- bitpos = @6@ pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = VkQueryPipelineStatisticBitmask 64 -- | Optional -- -- bitpos = @7@ pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticBitmask 128 -- | Optional -- -- bitpos = @8@ pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = VkQueryPipelineStatisticBitmask 256 -- | Optional -- -- bitpos = @9@ pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticBitmask 512 -- | Optional -- -- bitpos = @10@ pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticBitmask a pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticBitmask 1024 newtype VkQueryPoolCreateFlagBits = VkQueryPoolCreateFlagBits VkFlags deriving (Eq, Ord, Enum, Bits, FiniteBits, Storable) instance Show VkQueryPoolCreateFlagBits where {-# INLINE showsPrec #-} showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS) instance Read VkQueryPoolCreateFlagBits where {-# INLINE readsPrec #-} readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags) newtype VkQueryResultBitmask (a :: FlagType) = VkQueryResultBitmask VkFlags deriving (Eq, Ord, Storable) type VkQueryResultFlags = VkQueryResultBitmask FlagMask type VkQueryResultFlagBits = VkQueryResultBitmask FlagBit pattern VkQueryResultFlagBits :: VkFlags -> VkQueryResultBitmask FlagBit pattern VkQueryResultFlagBits n = VkQueryResultBitmask n pattern VkQueryResultFlags :: VkFlags -> VkQueryResultBitmask FlagMask pattern VkQueryResultFlags n = VkQueryResultBitmask n deriving instance Bits (VkQueryResultBitmask FlagMask) deriving instance FiniteBits (VkQueryResultBitmask FlagMask) instance Show (VkQueryResultBitmask a) where showsPrec _ VK_QUERY_RESULT_64_BIT = showString "VK_QUERY_RESULT_64_BIT" showsPrec _ VK_QUERY_RESULT_WAIT_BIT = showString "VK_QUERY_RESULT_WAIT_BIT" showsPrec _ VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = showString "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT" showsPrec _ VK_QUERY_RESULT_PARTIAL_BIT = showString "VK_QUERY_RESULT_PARTIAL_BIT" showsPrec p (VkQueryResultBitmask x) = showParen (p >= 11) (showString "VkQueryResultBitmask " . showsPrec 11 x) instance Read (VkQueryResultBitmask a) where readPrec = parens (choose [("VK_QUERY_RESULT_64_BIT", pure VK_QUERY_RESULT_64_BIT), ("VK_QUERY_RESULT_WAIT_BIT", pure VK_QUERY_RESULT_WAIT_BIT), ("VK_QUERY_RESULT_WITH_AVAILABILITY_BIT", pure VK_QUERY_RESULT_WITH_AVAILABILITY_BIT), ("VK_QUERY_RESULT_PARTIAL_BIT", pure VK_QUERY_RESULT_PARTIAL_BIT)] +++ prec 10 (expectP (Ident "VkQueryResultBitmask") >> (VkQueryResultBitmask <$> step readPrec))) -- | Results of the queries are written to the destination buffer as 64-bit values -- -- bitpos = @0@ pattern VK_QUERY_RESULT_64_BIT :: VkQueryResultBitmask a pattern VK_QUERY_RESULT_64_BIT = VkQueryResultBitmask 1 -- | Results of the queries are waited on before proceeding with the result copy -- -- bitpos = @1@ pattern VK_QUERY_RESULT_WAIT_BIT :: VkQueryResultBitmask a pattern VK_QUERY_RESULT_WAIT_BIT = VkQueryResultBitmask 2 -- | Besides the results of the query, the availability of the results is also written -- -- bitpos = @2@ pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT :: VkQueryResultBitmask a pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = VkQueryResultBitmask 4 -- | Copy the partial results of the query even if the final results are not available -- -- bitpos = @3@ pattern VK_QUERY_RESULT_PARTIAL_BIT :: VkQueryResultBitmask a pattern VK_QUERY_RESULT_PARTIAL_BIT = VkQueryResultBitmask 8 -- | type = @enum@ -- -- newtype VkQueryType = VkQueryType Int32 deriving (Eq, Ord, Enum, Storable) instance Show VkQueryType where showsPrec _ VK_QUERY_TYPE_OCCLUSION = showString "VK_QUERY_TYPE_OCCLUSION" showsPrec _ VK_QUERY_TYPE_PIPELINE_STATISTICS = showString "VK_QUERY_TYPE_PIPELINE_STATISTICS" showsPrec _ VK_QUERY_TYPE_TIMESTAMP = showString "VK_QUERY_TYPE_TIMESTAMP" showsPrec p (VkQueryType x) = showParen (p >= 11) (showString "VkQueryType " . showsPrec 11 x) instance Read VkQueryType where readPrec = parens (choose [("VK_QUERY_TYPE_OCCLUSION", pure VK_QUERY_TYPE_OCCLUSION), ("VK_QUERY_TYPE_PIPELINE_STATISTICS", pure VK_QUERY_TYPE_PIPELINE_STATISTICS), ("VK_QUERY_TYPE_TIMESTAMP", pure VK_QUERY_TYPE_TIMESTAMP)] +++ prec 10 (expectP (Ident "VkQueryType") >> (VkQueryType <$> step readPrec))) pattern VK_QUERY_TYPE_OCCLUSION :: VkQueryType pattern VK_QUERY_TYPE_OCCLUSION = VkQueryType 0 -- | Optional pattern VK_QUERY_TYPE_PIPELINE_STATISTICS :: VkQueryType pattern VK_QUERY_TYPE_PIPELINE_STATISTICS = VkQueryType 1 pattern VK_QUERY_TYPE_TIMESTAMP :: VkQueryType pattern VK_QUERY_TYPE_TIMESTAMP = VkQueryType 2