{-# 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(..),
        VkQueryPoolSamplingModeINTEL(VkQueryPoolSamplingModeINTEL,
                                     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL),
        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 (VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
(VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool)
-> (VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool)
-> Eq (VkQueryControlBitmask a)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
/= :: VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
$c/= :: forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
== :: VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
$c== :: forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
Eq, Eq (VkQueryControlBitmask a)
Eq (VkQueryControlBitmask a)
-> (VkQueryControlBitmask a -> VkQueryControlBitmask a -> Ordering)
-> (VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool)
-> (VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool)
-> (VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool)
-> (VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool)
-> (VkQueryControlBitmask a
    -> VkQueryControlBitmask a -> VkQueryControlBitmask a)
-> (VkQueryControlBitmask a
    -> VkQueryControlBitmask a -> VkQueryControlBitmask a)
-> Ord (VkQueryControlBitmask a)
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Ordering
VkQueryControlBitmask a
-> VkQueryControlBitmask a -> VkQueryControlBitmask a
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall (a :: FlagType). Eq (VkQueryControlBitmask a)
forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Ordering
forall (a :: FlagType).
VkQueryControlBitmask a
-> VkQueryControlBitmask a -> VkQueryControlBitmask a
min :: VkQueryControlBitmask a
-> VkQueryControlBitmask a -> VkQueryControlBitmask a
$cmin :: forall (a :: FlagType).
VkQueryControlBitmask a
-> VkQueryControlBitmask a -> VkQueryControlBitmask a
max :: VkQueryControlBitmask a
-> VkQueryControlBitmask a -> VkQueryControlBitmask a
$cmax :: forall (a :: FlagType).
VkQueryControlBitmask a
-> VkQueryControlBitmask a -> VkQueryControlBitmask a
>= :: VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
$c>= :: forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
> :: VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
$c> :: forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
<= :: VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
$c<= :: forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
< :: VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
$c< :: forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Bool
compare :: VkQueryControlBitmask a -> VkQueryControlBitmask a -> Ordering
$ccompare :: forall (a :: FlagType).
VkQueryControlBitmask a -> VkQueryControlBitmask a -> Ordering
Ord, Ptr (VkQueryControlBitmask a) -> IO (VkQueryControlBitmask a)
Ptr (VkQueryControlBitmask a)
-> Int -> IO (VkQueryControlBitmask a)
Ptr (VkQueryControlBitmask a)
-> Int -> VkQueryControlBitmask a -> IO ()
Ptr (VkQueryControlBitmask a) -> VkQueryControlBitmask a -> IO ()
VkQueryControlBitmask a -> Int
(VkQueryControlBitmask a -> Int)
-> (VkQueryControlBitmask a -> Int)
-> (Ptr (VkQueryControlBitmask a)
    -> Int -> IO (VkQueryControlBitmask a))
-> (Ptr (VkQueryControlBitmask a)
    -> Int -> VkQueryControlBitmask a -> IO ())
-> (forall b. Ptr b -> Int -> IO (VkQueryControlBitmask a))
-> (forall b. Ptr b -> Int -> VkQueryControlBitmask a -> IO ())
-> (Ptr (VkQueryControlBitmask a) -> IO (VkQueryControlBitmask a))
-> (Ptr (VkQueryControlBitmask a)
    -> VkQueryControlBitmask a -> IO ())
-> Storable (VkQueryControlBitmask a)
forall b. Ptr b -> Int -> IO (VkQueryControlBitmask a)
forall b. Ptr b -> Int -> VkQueryControlBitmask a -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
forall (a :: FlagType).
Ptr (VkQueryControlBitmask a) -> IO (VkQueryControlBitmask a)
forall (a :: FlagType).
Ptr (VkQueryControlBitmask a)
-> Int -> IO (VkQueryControlBitmask a)
forall (a :: FlagType).
Ptr (VkQueryControlBitmask a)
-> Int -> VkQueryControlBitmask a -> IO ()
forall (a :: FlagType).
Ptr (VkQueryControlBitmask a) -> VkQueryControlBitmask a -> IO ()
forall (a :: FlagType). VkQueryControlBitmask a -> Int
forall (a :: FlagType) b.
Ptr b -> Int -> IO (VkQueryControlBitmask a)
forall (a :: FlagType) b.
Ptr b -> Int -> VkQueryControlBitmask a -> IO ()
poke :: Ptr (VkQueryControlBitmask a) -> VkQueryControlBitmask a -> IO ()
$cpoke :: forall (a :: FlagType).
Ptr (VkQueryControlBitmask a) -> VkQueryControlBitmask a -> IO ()
peek :: Ptr (VkQueryControlBitmask a) -> IO (VkQueryControlBitmask a)
$cpeek :: forall (a :: FlagType).
Ptr (VkQueryControlBitmask a) -> IO (VkQueryControlBitmask a)
pokeByteOff :: forall b. Ptr b -> Int -> VkQueryControlBitmask a -> IO ()
$cpokeByteOff :: forall (a :: FlagType) b.
Ptr b -> Int -> VkQueryControlBitmask a -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO (VkQueryControlBitmask a)
$cpeekByteOff :: forall (a :: FlagType) b.
Ptr b -> Int -> IO (VkQueryControlBitmask a)
pokeElemOff :: Ptr (VkQueryControlBitmask a)
-> Int -> VkQueryControlBitmask a -> IO ()
$cpokeElemOff :: forall (a :: FlagType).
Ptr (VkQueryControlBitmask a)
-> Int -> VkQueryControlBitmask a -> IO ()
peekElemOff :: Ptr (VkQueryControlBitmask a)
-> Int -> IO (VkQueryControlBitmask a)
$cpeekElemOff :: forall (a :: FlagType).
Ptr (VkQueryControlBitmask a)
-> Int -> IO (VkQueryControlBitmask a)
alignment :: VkQueryControlBitmask a -> Int
$calignment :: forall (a :: FlagType). VkQueryControlBitmask a -> Int
sizeOf :: VkQueryControlBitmask a -> Int
$csizeOf :: forall (a :: FlagType). VkQueryControlBitmask a -> Int
Storable)

type VkQueryControlFlags = VkQueryControlBitmask FlagMask

type VkQueryControlFlagBits = VkQueryControlBitmask FlagBit

pattern VkQueryControlFlagBits ::
        VkFlags -> VkQueryControlBitmask FlagBit

pattern $bVkQueryControlFlagBits :: VkFlags -> VkQueryControlBitmask FlagBit
$mVkQueryControlFlagBits :: forall {r}.
VkQueryControlBitmask FlagBit
-> (VkFlags -> r) -> (Void# -> r) -> r
VkQueryControlFlagBits n = VkQueryControlBitmask n

pattern VkQueryControlFlags ::
        VkFlags -> VkQueryControlBitmask FlagMask

pattern $bVkQueryControlFlags :: VkFlags -> VkQueryControlBitmask FlagMask
$mVkQueryControlFlags :: forall {r}.
VkQueryControlBitmask FlagMask
-> (VkFlags -> r) -> (Void# -> r) -> r
VkQueryControlFlags n = VkQueryControlBitmask n

deriving instance Bits (VkQueryControlBitmask FlagMask)

deriving instance FiniteBits (VkQueryControlBitmask FlagMask)

instance Show (VkQueryControlBitmask a) where
    showsPrec :: Int -> VkQueryControlBitmask a -> ShowS
showsPrec Int
_ VkQueryControlBitmask a
VK_QUERY_CONTROL_PRECISE_BIT
      = String -> ShowS
showString String
"VK_QUERY_CONTROL_PRECISE_BIT"
    showsPrec Int
p (VkQueryControlBitmask VkFlags
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkQueryControlBitmask " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> VkFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 VkFlags
x)

instance Read (VkQueryControlBitmask a) where
    readPrec :: ReadPrec (VkQueryControlBitmask a)
readPrec
      = ReadPrec (VkQueryControlBitmask a)
-> ReadPrec (VkQueryControlBitmask a)
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec (VkQueryControlBitmask a))]
-> ReadPrec (VkQueryControlBitmask a)
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_QUERY_CONTROL_PRECISE_BIT",
               VkQueryControlBitmask a -> ReadPrec (VkQueryControlBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryControlBitmask a
forall (a :: FlagType). VkQueryControlBitmask a
VK_QUERY_CONTROL_PRECISE_BIT)]
             ReadPrec (VkQueryControlBitmask a)
-> ReadPrec (VkQueryControlBitmask a)
-> ReadPrec (VkQueryControlBitmask a)
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec (VkQueryControlBitmask a)
-> ReadPrec (VkQueryControlBitmask a)
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkQueryControlBitmask") ReadPrec ()
-> ReadPrec (VkQueryControlBitmask a)
-> ReadPrec (VkQueryControlBitmask a)
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (VkFlags -> VkQueryControlBitmask a
forall (a :: FlagType). VkFlags -> VkQueryControlBitmask a
VkQueryControlBitmask (VkFlags -> VkQueryControlBitmask a)
-> ReadPrec VkFlags -> ReadPrec (VkQueryControlBitmask a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec VkFlags -> ReadPrec VkFlags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec VkFlags
forall a. Read a => ReadPrec a
readPrec)))

-- | Require precise results to be collected by the query
--
--   bitpos = @0@
pattern VK_QUERY_CONTROL_PRECISE_BIT :: VkQueryControlBitmask a

pattern $bVK_QUERY_CONTROL_PRECISE_BIT :: forall (a :: FlagType). VkQueryControlBitmask a
$mVK_QUERY_CONTROL_PRECISE_BIT :: forall {r} {a :: FlagType}.
VkQueryControlBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_CONTROL_PRECISE_BIT = VkQueryControlBitmask 1

newtype VkQueryPipelineStatisticBitmask (a ::
                                           FlagType) = VkQueryPipelineStatisticBitmask VkFlags
                                                       deriving (VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
(VkQueryPipelineStatisticBitmask a
 -> VkQueryPipelineStatisticBitmask a -> Bool)
-> (VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a -> Bool)
-> Eq (VkQueryPipelineStatisticBitmask a)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
/= :: VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
$c/= :: forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
== :: VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
$c== :: forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
Eq, Eq (VkQueryPipelineStatisticBitmask a)
Eq (VkQueryPipelineStatisticBitmask a)
-> (VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a -> Ordering)
-> (VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a -> Bool)
-> (VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a -> Bool)
-> (VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a -> Bool)
-> (VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a -> Bool)
-> (VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a)
-> (VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a
    -> VkQueryPipelineStatisticBitmask a)
-> Ord (VkQueryPipelineStatisticBitmask a)
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Ordering
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall (a :: FlagType). Eq (VkQueryPipelineStatisticBitmask a)
forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Ordering
forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
min :: VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
$cmin :: forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
max :: VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
$cmax :: forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a
>= :: VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
$c>= :: forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
> :: VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
$c> :: forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
<= :: VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
$c<= :: forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
< :: VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
$c< :: forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Bool
compare :: VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Ordering
$ccompare :: forall (a :: FlagType).
VkQueryPipelineStatisticBitmask a
-> VkQueryPipelineStatisticBitmask a -> Ordering
Ord, Ptr (VkQueryPipelineStatisticBitmask a)
-> IO (VkQueryPipelineStatisticBitmask a)
Ptr (VkQueryPipelineStatisticBitmask a)
-> Int -> IO (VkQueryPipelineStatisticBitmask a)
Ptr (VkQueryPipelineStatisticBitmask a)
-> Int -> VkQueryPipelineStatisticBitmask a -> IO ()
Ptr (VkQueryPipelineStatisticBitmask a)
-> VkQueryPipelineStatisticBitmask a -> IO ()
VkQueryPipelineStatisticBitmask a -> Int
(VkQueryPipelineStatisticBitmask a -> Int)
-> (VkQueryPipelineStatisticBitmask a -> Int)
-> (Ptr (VkQueryPipelineStatisticBitmask a)
    -> Int -> IO (VkQueryPipelineStatisticBitmask a))
-> (Ptr (VkQueryPipelineStatisticBitmask a)
    -> Int -> VkQueryPipelineStatisticBitmask a -> IO ())
-> (forall b.
    Ptr b -> Int -> IO (VkQueryPipelineStatisticBitmask a))
-> (forall b.
    Ptr b -> Int -> VkQueryPipelineStatisticBitmask a -> IO ())
-> (Ptr (VkQueryPipelineStatisticBitmask a)
    -> IO (VkQueryPipelineStatisticBitmask a))
-> (Ptr (VkQueryPipelineStatisticBitmask a)
    -> VkQueryPipelineStatisticBitmask a -> IO ())
-> Storable (VkQueryPipelineStatisticBitmask a)
forall b. Ptr b -> Int -> IO (VkQueryPipelineStatisticBitmask a)
forall b.
Ptr b -> Int -> VkQueryPipelineStatisticBitmask a -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
forall (a :: FlagType).
Ptr (VkQueryPipelineStatisticBitmask a)
-> IO (VkQueryPipelineStatisticBitmask a)
forall (a :: FlagType).
Ptr (VkQueryPipelineStatisticBitmask a)
-> Int -> IO (VkQueryPipelineStatisticBitmask a)
forall (a :: FlagType).
Ptr (VkQueryPipelineStatisticBitmask a)
-> Int -> VkQueryPipelineStatisticBitmask a -> IO ()
forall (a :: FlagType).
Ptr (VkQueryPipelineStatisticBitmask a)
-> VkQueryPipelineStatisticBitmask a -> IO ()
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a -> Int
forall (a :: FlagType) b.
Ptr b -> Int -> IO (VkQueryPipelineStatisticBitmask a)
forall (a :: FlagType) b.
Ptr b -> Int -> VkQueryPipelineStatisticBitmask a -> IO ()
poke :: Ptr (VkQueryPipelineStatisticBitmask a)
-> VkQueryPipelineStatisticBitmask a -> IO ()
$cpoke :: forall (a :: FlagType).
Ptr (VkQueryPipelineStatisticBitmask a)
-> VkQueryPipelineStatisticBitmask a -> IO ()
peek :: Ptr (VkQueryPipelineStatisticBitmask a)
-> IO (VkQueryPipelineStatisticBitmask a)
$cpeek :: forall (a :: FlagType).
Ptr (VkQueryPipelineStatisticBitmask a)
-> IO (VkQueryPipelineStatisticBitmask a)
pokeByteOff :: forall b.
Ptr b -> Int -> VkQueryPipelineStatisticBitmask a -> IO ()
$cpokeByteOff :: forall (a :: FlagType) b.
Ptr b -> Int -> VkQueryPipelineStatisticBitmask a -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO (VkQueryPipelineStatisticBitmask a)
$cpeekByteOff :: forall (a :: FlagType) b.
Ptr b -> Int -> IO (VkQueryPipelineStatisticBitmask a)
pokeElemOff :: Ptr (VkQueryPipelineStatisticBitmask a)
-> Int -> VkQueryPipelineStatisticBitmask a -> IO ()
$cpokeElemOff :: forall (a :: FlagType).
Ptr (VkQueryPipelineStatisticBitmask a)
-> Int -> VkQueryPipelineStatisticBitmask a -> IO ()
peekElemOff :: Ptr (VkQueryPipelineStatisticBitmask a)
-> Int -> IO (VkQueryPipelineStatisticBitmask a)
$cpeekElemOff :: forall (a :: FlagType).
Ptr (VkQueryPipelineStatisticBitmask a)
-> Int -> IO (VkQueryPipelineStatisticBitmask a)
alignment :: VkQueryPipelineStatisticBitmask a -> Int
$calignment :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a -> Int
sizeOf :: VkQueryPipelineStatisticBitmask a -> Int
$csizeOf :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a -> Int
Storable)

type VkQueryPipelineStatisticFlags =
     VkQueryPipelineStatisticBitmask FlagMask

type VkQueryPipelineStatisticFlagBits =
     VkQueryPipelineStatisticBitmask FlagBit

pattern VkQueryPipelineStatisticFlagBits ::
        VkFlags -> VkQueryPipelineStatisticBitmask FlagBit

pattern $bVkQueryPipelineStatisticFlagBits :: VkFlags -> VkQueryPipelineStatisticBitmask FlagBit
$mVkQueryPipelineStatisticFlagBits :: forall {r}.
VkQueryPipelineStatisticBitmask FlagBit
-> (VkFlags -> r) -> (Void# -> r) -> r
VkQueryPipelineStatisticFlagBits n =
        VkQueryPipelineStatisticBitmask n

pattern VkQueryPipelineStatisticFlags ::
        VkFlags -> VkQueryPipelineStatisticBitmask FlagMask

pattern $bVkQueryPipelineStatisticFlags :: VkFlags -> VkQueryPipelineStatisticBitmask FlagMask
$mVkQueryPipelineStatisticFlags :: forall {r}.
VkQueryPipelineStatisticBitmask FlagMask
-> (VkFlags -> r) -> (Void# -> r) -> r
VkQueryPipelineStatisticFlags n =
        VkQueryPipelineStatisticBitmask n

deriving instance Bits (VkQueryPipelineStatisticBitmask FlagMask)

deriving instance
         FiniteBits (VkQueryPipelineStatisticBitmask FlagMask)

instance Show (VkQueryPipelineStatisticBitmask a) where
    showsPrec :: Int -> VkQueryPipelineStatisticBitmask a -> ShowS
showsPrec Int
_ VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT
      = String -> ShowS
showString
          String
"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"
    showsPrec Int
_
      VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
      = String -> ShowS
showString
          String
"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"
    showsPrec Int
_
      VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
      = String -> ShowS
showString
          String
"VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"
    showsPrec Int
_
      VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
      = String -> ShowS
showString
          String
"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"
    showsPrec Int
_
      VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
      = String -> ShowS
showString
          String
"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"
    showsPrec Int
_ VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT
      = String -> ShowS
showString String
"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"
    showsPrec Int
_ VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT
      = String -> ShowS
showString String
"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"
    showsPrec Int
_
      VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
      = String -> ShowS
showString
          String
"VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"
    showsPrec Int
_
      VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
      = String -> ShowS
showString
          String
"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"
    showsPrec Int
_
      VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
      = String -> ShowS
showString
          String
"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"
    showsPrec Int
_
      VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
      = String -> ShowS
showString
          String
"VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"
    showsPrec Int
p (VkQueryPipelineStatisticBitmask VkFlags
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkQueryPipelineStatisticBitmask " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> VkFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 VkFlags
x)

instance Read (VkQueryPipelineStatisticBitmask a) where
    readPrec :: ReadPrec (VkQueryPipelineStatisticBitmask a)
readPrec
      = ReadPrec (VkQueryPipelineStatisticBitmask a)
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec (VkQueryPipelineStatisticBitmask a))]
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure
                 VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure
                 VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT),
              (String
"VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT",
               VkQueryPipelineStatisticBitmask a
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPipelineStatisticBitmask a
forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT)]
             ReadPrec (VkQueryPipelineStatisticBitmask a)
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkQueryPipelineStatisticBitmask") ReadPrec ()
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
-> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (VkFlags -> VkQueryPipelineStatisticBitmask a
forall (a :: FlagType).
VkFlags -> VkQueryPipelineStatisticBitmask a
VkQueryPipelineStatisticBitmask (VkFlags -> VkQueryPipelineStatisticBitmask a)
-> ReadPrec VkFlags -> ReadPrec (VkQueryPipelineStatisticBitmask a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec VkFlags -> ReadPrec VkFlags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec VkFlags
forall a. Read a => ReadPrec a
readPrec)))

-- | Optional
--
--   bitpos = @0@
pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT ::
        VkQueryPipelineStatisticBitmask a

pattern $bVK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
        = VkQueryPipelineStatisticBitmask 16

-- | Optional
--
--   bitpos = @5@
pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT ::
        VkQueryPipelineStatisticBitmask a

pattern $bVK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT =
        VkQueryPipelineStatisticBitmask 32

-- | Optional
--
--   bitpos = @6@
pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT ::
        VkQueryPipelineStatisticBitmask a

pattern $bVK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT =
        VkQueryPipelineStatisticBitmask 64

-- | Optional
--
--   bitpos = @7@
pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
        :: VkQueryPipelineStatisticBitmask a

pattern $bVK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT :: forall (a :: FlagType). VkQueryPipelineStatisticBitmask a
$mVK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT :: forall {r} {a :: FlagType}.
VkQueryPipelineStatisticBitmask a
-> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
        = VkQueryPipelineStatisticBitmask 1024

newtype VkQueryPoolCreateFlagBits = VkQueryPoolCreateFlagBits VkFlags
                                    deriving (VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
(VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool)
-> (VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool)
-> Eq VkQueryPoolCreateFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
$c/= :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
== :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
$c== :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
Eq, Eq VkQueryPoolCreateFlagBits
Eq VkQueryPoolCreateFlagBits
-> (VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits -> Ordering)
-> (VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool)
-> (VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool)
-> (VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool)
-> (VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool)
-> (VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits)
-> Ord VkQueryPoolCreateFlagBits
VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Ordering
VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
$cmin :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
max :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
$cmax :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
>= :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
$c>= :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
> :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
$c> :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
<= :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
$c<= :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
< :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
$c< :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Bool
compare :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Ordering
$ccompare :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> Ordering
Ord, Int -> VkQueryPoolCreateFlagBits
VkQueryPoolCreateFlagBits -> Int
VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits]
VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits]
VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits
-> [VkQueryPoolCreateFlagBits]
(VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits)
-> (Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int)
-> (VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits])
-> (VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits])
-> (VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits])
-> (VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits
    -> [VkQueryPoolCreateFlagBits])
-> Enum VkQueryPoolCreateFlagBits
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits
-> [VkQueryPoolCreateFlagBits]
$cenumFromThenTo :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits
-> [VkQueryPoolCreateFlagBits]
enumFromTo :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits]
$cenumFromTo :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits]
enumFromThen :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits]
$cenumFromThen :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits]
enumFrom :: VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits]
$cenumFrom :: VkQueryPoolCreateFlagBits -> [VkQueryPoolCreateFlagBits]
fromEnum :: VkQueryPoolCreateFlagBits -> Int
$cfromEnum :: VkQueryPoolCreateFlagBits -> Int
toEnum :: Int -> VkQueryPoolCreateFlagBits
$ctoEnum :: Int -> VkQueryPoolCreateFlagBits
pred :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
$cpred :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
succ :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
$csucc :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
Enum, Eq VkQueryPoolCreateFlagBits
VkQueryPoolCreateFlagBits
Eq VkQueryPoolCreateFlagBits
-> (VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> VkQueryPoolCreateFlagBits
-> (Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> Bool)
-> (VkQueryPoolCreateFlagBits -> Maybe Int)
-> (VkQueryPoolCreateFlagBits -> Int)
-> (VkQueryPoolCreateFlagBits -> Bool)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits)
-> (VkQueryPoolCreateFlagBits -> Int)
-> Bits VkQueryPoolCreateFlagBits
Int -> VkQueryPoolCreateFlagBits
VkQueryPoolCreateFlagBits -> Bool
VkQueryPoolCreateFlagBits -> Int
VkQueryPoolCreateFlagBits -> Maybe Int
VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
VkQueryPoolCreateFlagBits -> Int -> Bool
VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: VkQueryPoolCreateFlagBits -> Int
$cpopCount :: VkQueryPoolCreateFlagBits -> Int
rotateR :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$crotateR :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
rotateL :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$crotateL :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
unsafeShiftR :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$cunsafeShiftR :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
shiftR :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$cshiftR :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
unsafeShiftL :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$cunsafeShiftL :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
shiftL :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$cshiftL :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
isSigned :: VkQueryPoolCreateFlagBits -> Bool
$cisSigned :: VkQueryPoolCreateFlagBits -> Bool
bitSize :: VkQueryPoolCreateFlagBits -> Int
$cbitSize :: VkQueryPoolCreateFlagBits -> Int
bitSizeMaybe :: VkQueryPoolCreateFlagBits -> Maybe Int
$cbitSizeMaybe :: VkQueryPoolCreateFlagBits -> Maybe Int
testBit :: VkQueryPoolCreateFlagBits -> Int -> Bool
$ctestBit :: VkQueryPoolCreateFlagBits -> Int -> Bool
complementBit :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$ccomplementBit :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
clearBit :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$cclearBit :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
setBit :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$csetBit :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
bit :: Int -> VkQueryPoolCreateFlagBits
$cbit :: Int -> VkQueryPoolCreateFlagBits
zeroBits :: VkQueryPoolCreateFlagBits
$czeroBits :: VkQueryPoolCreateFlagBits
rotate :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$crotate :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
shift :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
$cshift :: VkQueryPoolCreateFlagBits -> Int -> VkQueryPoolCreateFlagBits
complement :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
$ccomplement :: VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
xor :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
$cxor :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
.|. :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
$c.|. :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
.&. :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
$c.&. :: VkQueryPoolCreateFlagBits
-> VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits
Bits, Bits VkQueryPoolCreateFlagBits
Bits VkQueryPoolCreateFlagBits
-> (VkQueryPoolCreateFlagBits -> Int)
-> (VkQueryPoolCreateFlagBits -> Int)
-> (VkQueryPoolCreateFlagBits -> Int)
-> FiniteBits VkQueryPoolCreateFlagBits
VkQueryPoolCreateFlagBits -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: VkQueryPoolCreateFlagBits -> Int
$ccountTrailingZeros :: VkQueryPoolCreateFlagBits -> Int
countLeadingZeros :: VkQueryPoolCreateFlagBits -> Int
$ccountLeadingZeros :: VkQueryPoolCreateFlagBits -> Int
finiteBitSize :: VkQueryPoolCreateFlagBits -> Int
$cfiniteBitSize :: VkQueryPoolCreateFlagBits -> Int
FiniteBits, Ptr VkQueryPoolCreateFlagBits -> IO VkQueryPoolCreateFlagBits
Ptr VkQueryPoolCreateFlagBits
-> Int -> IO VkQueryPoolCreateFlagBits
Ptr VkQueryPoolCreateFlagBits
-> Int -> VkQueryPoolCreateFlagBits -> IO ()
Ptr VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> IO ()
VkQueryPoolCreateFlagBits -> Int
(VkQueryPoolCreateFlagBits -> Int)
-> (VkQueryPoolCreateFlagBits -> Int)
-> (Ptr VkQueryPoolCreateFlagBits
    -> Int -> IO VkQueryPoolCreateFlagBits)
-> (Ptr VkQueryPoolCreateFlagBits
    -> Int -> VkQueryPoolCreateFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO VkQueryPoolCreateFlagBits)
-> (forall b. Ptr b -> Int -> VkQueryPoolCreateFlagBits -> IO ())
-> (Ptr VkQueryPoolCreateFlagBits -> IO VkQueryPoolCreateFlagBits)
-> (Ptr VkQueryPoolCreateFlagBits
    -> VkQueryPoolCreateFlagBits -> IO ())
-> Storable VkQueryPoolCreateFlagBits
forall b. Ptr b -> Int -> IO VkQueryPoolCreateFlagBits
forall b. Ptr b -> Int -> VkQueryPoolCreateFlagBits -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> IO ()
$cpoke :: Ptr VkQueryPoolCreateFlagBits -> VkQueryPoolCreateFlagBits -> IO ()
peek :: Ptr VkQueryPoolCreateFlagBits -> IO VkQueryPoolCreateFlagBits
$cpeek :: Ptr VkQueryPoolCreateFlagBits -> IO VkQueryPoolCreateFlagBits
pokeByteOff :: forall b. Ptr b -> Int -> VkQueryPoolCreateFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkQueryPoolCreateFlagBits -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkQueryPoolCreateFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkQueryPoolCreateFlagBits
pokeElemOff :: Ptr VkQueryPoolCreateFlagBits
-> Int -> VkQueryPoolCreateFlagBits -> IO ()
$cpokeElemOff :: Ptr VkQueryPoolCreateFlagBits
-> Int -> VkQueryPoolCreateFlagBits -> IO ()
peekElemOff :: Ptr VkQueryPoolCreateFlagBits
-> Int -> IO VkQueryPoolCreateFlagBits
$cpeekElemOff :: Ptr VkQueryPoolCreateFlagBits
-> Int -> IO VkQueryPoolCreateFlagBits
alignment :: VkQueryPoolCreateFlagBits -> Int
$calignment :: VkQueryPoolCreateFlagBits -> Int
sizeOf :: VkQueryPoolCreateFlagBits -> Int
$csizeOf :: VkQueryPoolCreateFlagBits -> Int
Storable)

instance Show VkQueryPoolCreateFlagBits where
    {-# INLINE showsPrec #-}
    showsPrec :: Int -> VkQueryPoolCreateFlagBits -> ShowS
showsPrec = (Int -> VkFlags -> ShowS)
-> Int -> VkQueryPoolCreateFlagBits -> ShowS
coerce (Int -> VkFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec :: Int -> VkFlags -> ShowS)

instance Read VkQueryPoolCreateFlagBits where
    {-# INLINE readsPrec #-}
    readsPrec :: Int -> ReadS VkQueryPoolCreateFlagBits
readsPrec = (Int -> ReadS VkFlags) -> Int -> ReadS VkQueryPoolCreateFlagBits
coerce (Int -> ReadS VkFlags
forall a. Read a => Int -> ReadS a
readsPrec :: Int -> ReadS VkFlags)

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryPoolSamplingModeINTEL VkQueryPoolSamplingModeINTEL registry at www.khronos.org>
newtype VkQueryPoolSamplingModeINTEL = VkQueryPoolSamplingModeINTEL Int32
                                       deriving (VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
(VkQueryPoolSamplingModeINTEL
 -> VkQueryPoolSamplingModeINTEL -> Bool)
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> Bool)
-> Eq VkQueryPoolSamplingModeINTEL
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
$c/= :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
== :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
$c== :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
Eq, Eq VkQueryPoolSamplingModeINTEL
Eq VkQueryPoolSamplingModeINTEL
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> Ordering)
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> Bool)
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> Bool)
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> Bool)
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> Bool)
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL)
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL)
-> Ord VkQueryPoolSamplingModeINTEL
VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Ordering
VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
$cmin :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
max :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
$cmax :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
>= :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
$c>= :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
> :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
$c> :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
<= :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
$c<= :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
< :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
$c< :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Bool
compare :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Ordering
$ccompare :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> Ordering
Ord, Int -> VkQueryPoolSamplingModeINTEL
VkQueryPoolSamplingModeINTEL -> Int
VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL]
VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL]
VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL
-> [VkQueryPoolSamplingModeINTEL]
(VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL)
-> (VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL)
-> (Int -> VkQueryPoolSamplingModeINTEL)
-> (VkQueryPoolSamplingModeINTEL -> Int)
-> (VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL])
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL])
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL])
-> (VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL
    -> [VkQueryPoolSamplingModeINTEL])
-> Enum VkQueryPoolSamplingModeINTEL
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL
-> [VkQueryPoolSamplingModeINTEL]
$cenumFromThenTo :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL
-> [VkQueryPoolSamplingModeINTEL]
enumFromTo :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL]
$cenumFromTo :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL]
enumFromThen :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL]
$cenumFromThen :: VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL]
enumFrom :: VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL]
$cenumFrom :: VkQueryPoolSamplingModeINTEL -> [VkQueryPoolSamplingModeINTEL]
fromEnum :: VkQueryPoolSamplingModeINTEL -> Int
$cfromEnum :: VkQueryPoolSamplingModeINTEL -> Int
toEnum :: Int -> VkQueryPoolSamplingModeINTEL
$ctoEnum :: Int -> VkQueryPoolSamplingModeINTEL
pred :: VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
$cpred :: VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
succ :: VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
$csucc :: VkQueryPoolSamplingModeINTEL -> VkQueryPoolSamplingModeINTEL
Enum, Ptr VkQueryPoolSamplingModeINTEL -> IO VkQueryPoolSamplingModeINTEL
Ptr VkQueryPoolSamplingModeINTEL
-> Int -> IO VkQueryPoolSamplingModeINTEL
Ptr VkQueryPoolSamplingModeINTEL
-> Int -> VkQueryPoolSamplingModeINTEL -> IO ()
Ptr VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> IO ()
VkQueryPoolSamplingModeINTEL -> Int
(VkQueryPoolSamplingModeINTEL -> Int)
-> (VkQueryPoolSamplingModeINTEL -> Int)
-> (Ptr VkQueryPoolSamplingModeINTEL
    -> Int -> IO VkQueryPoolSamplingModeINTEL)
-> (Ptr VkQueryPoolSamplingModeINTEL
    -> Int -> VkQueryPoolSamplingModeINTEL -> IO ())
-> (forall b. Ptr b -> Int -> IO VkQueryPoolSamplingModeINTEL)
-> (forall b.
    Ptr b -> Int -> VkQueryPoolSamplingModeINTEL -> IO ())
-> (Ptr VkQueryPoolSamplingModeINTEL
    -> IO VkQueryPoolSamplingModeINTEL)
-> (Ptr VkQueryPoolSamplingModeINTEL
    -> VkQueryPoolSamplingModeINTEL -> IO ())
-> Storable VkQueryPoolSamplingModeINTEL
forall b. Ptr b -> Int -> IO VkQueryPoolSamplingModeINTEL
forall b. Ptr b -> Int -> VkQueryPoolSamplingModeINTEL -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> IO ()
$cpoke :: Ptr VkQueryPoolSamplingModeINTEL
-> VkQueryPoolSamplingModeINTEL -> IO ()
peek :: Ptr VkQueryPoolSamplingModeINTEL -> IO VkQueryPoolSamplingModeINTEL
$cpeek :: Ptr VkQueryPoolSamplingModeINTEL -> IO VkQueryPoolSamplingModeINTEL
pokeByteOff :: forall b. Ptr b -> Int -> VkQueryPoolSamplingModeINTEL -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkQueryPoolSamplingModeINTEL -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkQueryPoolSamplingModeINTEL
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkQueryPoolSamplingModeINTEL
pokeElemOff :: Ptr VkQueryPoolSamplingModeINTEL
-> Int -> VkQueryPoolSamplingModeINTEL -> IO ()
$cpokeElemOff :: Ptr VkQueryPoolSamplingModeINTEL
-> Int -> VkQueryPoolSamplingModeINTEL -> IO ()
peekElemOff :: Ptr VkQueryPoolSamplingModeINTEL
-> Int -> IO VkQueryPoolSamplingModeINTEL
$cpeekElemOff :: Ptr VkQueryPoolSamplingModeINTEL
-> Int -> IO VkQueryPoolSamplingModeINTEL
alignment :: VkQueryPoolSamplingModeINTEL -> Int
$calignment :: VkQueryPoolSamplingModeINTEL -> Int
sizeOf :: VkQueryPoolSamplingModeINTEL -> Int
$csizeOf :: VkQueryPoolSamplingModeINTEL -> Int
Storable)

instance Show VkQueryPoolSamplingModeINTEL where
    showsPrec :: Int -> VkQueryPoolSamplingModeINTEL -> ShowS
showsPrec Int
_ VkQueryPoolSamplingModeINTEL
VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
      = String -> ShowS
showString String
"VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL"
    showsPrec Int
p (VkQueryPoolSamplingModeINTEL Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkQueryPoolSamplingModeINTEL " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkQueryPoolSamplingModeINTEL where
    readPrec :: ReadPrec VkQueryPoolSamplingModeINTEL
readPrec
      = ReadPrec VkQueryPoolSamplingModeINTEL
-> ReadPrec VkQueryPoolSamplingModeINTEL
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkQueryPoolSamplingModeINTEL)]
-> ReadPrec VkQueryPoolSamplingModeINTEL
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL",
               VkQueryPoolSamplingModeINTEL
-> ReadPrec VkQueryPoolSamplingModeINTEL
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryPoolSamplingModeINTEL
VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL)]
             ReadPrec VkQueryPoolSamplingModeINTEL
-> ReadPrec VkQueryPoolSamplingModeINTEL
-> ReadPrec VkQueryPoolSamplingModeINTEL
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec VkQueryPoolSamplingModeINTEL
-> ReadPrec VkQueryPoolSamplingModeINTEL
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkQueryPoolSamplingModeINTEL") ReadPrec ()
-> ReadPrec VkQueryPoolSamplingModeINTEL
-> ReadPrec VkQueryPoolSamplingModeINTEL
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkQueryPoolSamplingModeINTEL
VkQueryPoolSamplingModeINTEL (Int32 -> VkQueryPoolSamplingModeINTEL)
-> ReadPrec Int32 -> ReadPrec VkQueryPoolSamplingModeINTEL
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL ::
        VkQueryPoolSamplingModeINTEL

pattern $bVK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL :: VkQueryPoolSamplingModeINTEL
$mVK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL :: forall {r}.
VkQueryPoolSamplingModeINTEL -> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL =
        VkQueryPoolSamplingModeINTEL 0

newtype VkQueryResultBitmask (a ::
                                FlagType) = VkQueryResultBitmask VkFlags
                                            deriving (VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
(VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool)
-> (VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool)
-> Eq (VkQueryResultBitmask a)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
/= :: VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
$c/= :: forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
== :: VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
$c== :: forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
Eq, Eq (VkQueryResultBitmask a)
Eq (VkQueryResultBitmask a)
-> (VkQueryResultBitmask a -> VkQueryResultBitmask a -> Ordering)
-> (VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool)
-> (VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool)
-> (VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool)
-> (VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool)
-> (VkQueryResultBitmask a
    -> VkQueryResultBitmask a -> VkQueryResultBitmask a)
-> (VkQueryResultBitmask a
    -> VkQueryResultBitmask a -> VkQueryResultBitmask a)
-> Ord (VkQueryResultBitmask a)
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Ordering
VkQueryResultBitmask a
-> VkQueryResultBitmask a -> VkQueryResultBitmask a
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall (a :: FlagType). Eq (VkQueryResultBitmask a)
forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Ordering
forall (a :: FlagType).
VkQueryResultBitmask a
-> VkQueryResultBitmask a -> VkQueryResultBitmask a
min :: VkQueryResultBitmask a
-> VkQueryResultBitmask a -> VkQueryResultBitmask a
$cmin :: forall (a :: FlagType).
VkQueryResultBitmask a
-> VkQueryResultBitmask a -> VkQueryResultBitmask a
max :: VkQueryResultBitmask a
-> VkQueryResultBitmask a -> VkQueryResultBitmask a
$cmax :: forall (a :: FlagType).
VkQueryResultBitmask a
-> VkQueryResultBitmask a -> VkQueryResultBitmask a
>= :: VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
$c>= :: forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
> :: VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
$c> :: forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
<= :: VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
$c<= :: forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
< :: VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
$c< :: forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Bool
compare :: VkQueryResultBitmask a -> VkQueryResultBitmask a -> Ordering
$ccompare :: forall (a :: FlagType).
VkQueryResultBitmask a -> VkQueryResultBitmask a -> Ordering
Ord, Ptr (VkQueryResultBitmask a) -> IO (VkQueryResultBitmask a)
Ptr (VkQueryResultBitmask a) -> Int -> IO (VkQueryResultBitmask a)
Ptr (VkQueryResultBitmask a)
-> Int -> VkQueryResultBitmask a -> IO ()
Ptr (VkQueryResultBitmask a) -> VkQueryResultBitmask a -> IO ()
VkQueryResultBitmask a -> Int
(VkQueryResultBitmask a -> Int)
-> (VkQueryResultBitmask a -> Int)
-> (Ptr (VkQueryResultBitmask a)
    -> Int -> IO (VkQueryResultBitmask a))
-> (Ptr (VkQueryResultBitmask a)
    -> Int -> VkQueryResultBitmask a -> IO ())
-> (forall b. Ptr b -> Int -> IO (VkQueryResultBitmask a))
-> (forall b. Ptr b -> Int -> VkQueryResultBitmask a -> IO ())
-> (Ptr (VkQueryResultBitmask a) -> IO (VkQueryResultBitmask a))
-> (Ptr (VkQueryResultBitmask a)
    -> VkQueryResultBitmask a -> IO ())
-> Storable (VkQueryResultBitmask a)
forall b. Ptr b -> Int -> IO (VkQueryResultBitmask a)
forall b. Ptr b -> Int -> VkQueryResultBitmask a -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
forall (a :: FlagType).
Ptr (VkQueryResultBitmask a) -> IO (VkQueryResultBitmask a)
forall (a :: FlagType).
Ptr (VkQueryResultBitmask a) -> Int -> IO (VkQueryResultBitmask a)
forall (a :: FlagType).
Ptr (VkQueryResultBitmask a)
-> Int -> VkQueryResultBitmask a -> IO ()
forall (a :: FlagType).
Ptr (VkQueryResultBitmask a) -> VkQueryResultBitmask a -> IO ()
forall (a :: FlagType). VkQueryResultBitmask a -> Int
forall (a :: FlagType) b.
Ptr b -> Int -> IO (VkQueryResultBitmask a)
forall (a :: FlagType) b.
Ptr b -> Int -> VkQueryResultBitmask a -> IO ()
poke :: Ptr (VkQueryResultBitmask a) -> VkQueryResultBitmask a -> IO ()
$cpoke :: forall (a :: FlagType).
Ptr (VkQueryResultBitmask a) -> VkQueryResultBitmask a -> IO ()
peek :: Ptr (VkQueryResultBitmask a) -> IO (VkQueryResultBitmask a)
$cpeek :: forall (a :: FlagType).
Ptr (VkQueryResultBitmask a) -> IO (VkQueryResultBitmask a)
pokeByteOff :: forall b. Ptr b -> Int -> VkQueryResultBitmask a -> IO ()
$cpokeByteOff :: forall (a :: FlagType) b.
Ptr b -> Int -> VkQueryResultBitmask a -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO (VkQueryResultBitmask a)
$cpeekByteOff :: forall (a :: FlagType) b.
Ptr b -> Int -> IO (VkQueryResultBitmask a)
pokeElemOff :: Ptr (VkQueryResultBitmask a)
-> Int -> VkQueryResultBitmask a -> IO ()
$cpokeElemOff :: forall (a :: FlagType).
Ptr (VkQueryResultBitmask a)
-> Int -> VkQueryResultBitmask a -> IO ()
peekElemOff :: Ptr (VkQueryResultBitmask a) -> Int -> IO (VkQueryResultBitmask a)
$cpeekElemOff :: forall (a :: FlagType).
Ptr (VkQueryResultBitmask a) -> Int -> IO (VkQueryResultBitmask a)
alignment :: VkQueryResultBitmask a -> Int
$calignment :: forall (a :: FlagType). VkQueryResultBitmask a -> Int
sizeOf :: VkQueryResultBitmask a -> Int
$csizeOf :: forall (a :: FlagType). VkQueryResultBitmask a -> Int
Storable)

type VkQueryResultFlags = VkQueryResultBitmask FlagMask

type VkQueryResultFlagBits = VkQueryResultBitmask FlagBit

pattern VkQueryResultFlagBits ::
        VkFlags -> VkQueryResultBitmask FlagBit

pattern $bVkQueryResultFlagBits :: VkFlags -> VkQueryResultBitmask FlagBit
$mVkQueryResultFlagBits :: forall {r}.
VkQueryResultBitmask FlagBit -> (VkFlags -> r) -> (Void# -> r) -> r
VkQueryResultFlagBits n = VkQueryResultBitmask n

pattern VkQueryResultFlags ::
        VkFlags -> VkQueryResultBitmask FlagMask

pattern $bVkQueryResultFlags :: VkFlags -> VkQueryResultBitmask FlagMask
$mVkQueryResultFlags :: forall {r}.
VkQueryResultBitmask FlagMask
-> (VkFlags -> r) -> (Void# -> r) -> r
VkQueryResultFlags n = VkQueryResultBitmask n

deriving instance Bits (VkQueryResultBitmask FlagMask)

deriving instance FiniteBits (VkQueryResultBitmask FlagMask)

instance Show (VkQueryResultBitmask a) where
    showsPrec :: Int -> VkQueryResultBitmask a -> ShowS
showsPrec Int
_ VkQueryResultBitmask a
VK_QUERY_RESULT_64_BIT
      = String -> ShowS
showString String
"VK_QUERY_RESULT_64_BIT"
    showsPrec Int
_ VkQueryResultBitmask a
VK_QUERY_RESULT_WAIT_BIT
      = String -> ShowS
showString String
"VK_QUERY_RESULT_WAIT_BIT"
    showsPrec Int
_ VkQueryResultBitmask a
VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
      = String -> ShowS
showString String
"VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"
    showsPrec Int
_ VkQueryResultBitmask a
VK_QUERY_RESULT_PARTIAL_BIT
      = String -> ShowS
showString String
"VK_QUERY_RESULT_PARTIAL_BIT"
    showsPrec Int
p (VkQueryResultBitmask VkFlags
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkQueryResultBitmask " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> VkFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 VkFlags
x)

instance Read (VkQueryResultBitmask a) where
    readPrec :: ReadPrec (VkQueryResultBitmask a)
readPrec
      = ReadPrec (VkQueryResultBitmask a)
-> ReadPrec (VkQueryResultBitmask a)
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec (VkQueryResultBitmask a))]
-> ReadPrec (VkQueryResultBitmask a)
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_QUERY_RESULT_64_BIT", VkQueryResultBitmask a -> ReadPrec (VkQueryResultBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryResultBitmask a
forall (a :: FlagType). VkQueryResultBitmask a
VK_QUERY_RESULT_64_BIT),
              (String
"VK_QUERY_RESULT_WAIT_BIT", VkQueryResultBitmask a -> ReadPrec (VkQueryResultBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryResultBitmask a
forall (a :: FlagType). VkQueryResultBitmask a
VK_QUERY_RESULT_WAIT_BIT),
              (String
"VK_QUERY_RESULT_WITH_AVAILABILITY_BIT",
               VkQueryResultBitmask a -> ReadPrec (VkQueryResultBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryResultBitmask a
forall (a :: FlagType). VkQueryResultBitmask a
VK_QUERY_RESULT_WITH_AVAILABILITY_BIT),
              (String
"VK_QUERY_RESULT_PARTIAL_BIT", VkQueryResultBitmask a -> ReadPrec (VkQueryResultBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryResultBitmask a
forall (a :: FlagType). VkQueryResultBitmask a
VK_QUERY_RESULT_PARTIAL_BIT)]
             ReadPrec (VkQueryResultBitmask a)
-> ReadPrec (VkQueryResultBitmask a)
-> ReadPrec (VkQueryResultBitmask a)
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec (VkQueryResultBitmask a)
-> ReadPrec (VkQueryResultBitmask a)
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkQueryResultBitmask") ReadPrec ()
-> ReadPrec (VkQueryResultBitmask a)
-> ReadPrec (VkQueryResultBitmask a)
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (VkFlags -> VkQueryResultBitmask a
forall (a :: FlagType). VkFlags -> VkQueryResultBitmask a
VkQueryResultBitmask (VkFlags -> VkQueryResultBitmask a)
-> ReadPrec VkFlags -> ReadPrec (VkQueryResultBitmask a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec VkFlags -> ReadPrec VkFlags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec VkFlags
forall a. Read a => ReadPrec a
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 $bVK_QUERY_RESULT_64_BIT :: forall (a :: FlagType). VkQueryResultBitmask a
$mVK_QUERY_RESULT_64_BIT :: forall {r} {a :: FlagType}.
VkQueryResultBitmask a -> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_RESULT_WAIT_BIT :: forall (a :: FlagType). VkQueryResultBitmask a
$mVK_QUERY_RESULT_WAIT_BIT :: forall {r} {a :: FlagType}.
VkQueryResultBitmask a -> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_RESULT_WITH_AVAILABILITY_BIT :: forall (a :: FlagType). VkQueryResultBitmask a
$mVK_QUERY_RESULT_WITH_AVAILABILITY_BIT :: forall {r} {a :: FlagType}.
VkQueryResultBitmask a -> (Void# -> r) -> (Void# -> r) -> r
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 $bVK_QUERY_RESULT_PARTIAL_BIT :: forall (a :: FlagType). VkQueryResultBitmask a
$mVK_QUERY_RESULT_PARTIAL_BIT :: forall {r} {a :: FlagType}.
VkQueryResultBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_RESULT_PARTIAL_BIT = VkQueryResultBitmask 8

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryType VkQueryType registry at www.khronos.org>
newtype VkQueryType = VkQueryType Int32
                      deriving (VkQueryType -> VkQueryType -> Bool
(VkQueryType -> VkQueryType -> Bool)
-> (VkQueryType -> VkQueryType -> Bool) -> Eq VkQueryType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkQueryType -> VkQueryType -> Bool
$c/= :: VkQueryType -> VkQueryType -> Bool
== :: VkQueryType -> VkQueryType -> Bool
$c== :: VkQueryType -> VkQueryType -> Bool
Eq, Eq VkQueryType
Eq VkQueryType
-> (VkQueryType -> VkQueryType -> Ordering)
-> (VkQueryType -> VkQueryType -> Bool)
-> (VkQueryType -> VkQueryType -> Bool)
-> (VkQueryType -> VkQueryType -> Bool)
-> (VkQueryType -> VkQueryType -> Bool)
-> (VkQueryType -> VkQueryType -> VkQueryType)
-> (VkQueryType -> VkQueryType -> VkQueryType)
-> Ord VkQueryType
VkQueryType -> VkQueryType -> Bool
VkQueryType -> VkQueryType -> Ordering
VkQueryType -> VkQueryType -> VkQueryType
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: VkQueryType -> VkQueryType -> VkQueryType
$cmin :: VkQueryType -> VkQueryType -> VkQueryType
max :: VkQueryType -> VkQueryType -> VkQueryType
$cmax :: VkQueryType -> VkQueryType -> VkQueryType
>= :: VkQueryType -> VkQueryType -> Bool
$c>= :: VkQueryType -> VkQueryType -> Bool
> :: VkQueryType -> VkQueryType -> Bool
$c> :: VkQueryType -> VkQueryType -> Bool
<= :: VkQueryType -> VkQueryType -> Bool
$c<= :: VkQueryType -> VkQueryType -> Bool
< :: VkQueryType -> VkQueryType -> Bool
$c< :: VkQueryType -> VkQueryType -> Bool
compare :: VkQueryType -> VkQueryType -> Ordering
$ccompare :: VkQueryType -> VkQueryType -> Ordering
Ord, Int -> VkQueryType
VkQueryType -> Int
VkQueryType -> [VkQueryType]
VkQueryType -> VkQueryType
VkQueryType -> VkQueryType -> [VkQueryType]
VkQueryType -> VkQueryType -> VkQueryType -> [VkQueryType]
(VkQueryType -> VkQueryType)
-> (VkQueryType -> VkQueryType)
-> (Int -> VkQueryType)
-> (VkQueryType -> Int)
-> (VkQueryType -> [VkQueryType])
-> (VkQueryType -> VkQueryType -> [VkQueryType])
-> (VkQueryType -> VkQueryType -> [VkQueryType])
-> (VkQueryType -> VkQueryType -> VkQueryType -> [VkQueryType])
-> Enum VkQueryType
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkQueryType -> VkQueryType -> VkQueryType -> [VkQueryType]
$cenumFromThenTo :: VkQueryType -> VkQueryType -> VkQueryType -> [VkQueryType]
enumFromTo :: VkQueryType -> VkQueryType -> [VkQueryType]
$cenumFromTo :: VkQueryType -> VkQueryType -> [VkQueryType]
enumFromThen :: VkQueryType -> VkQueryType -> [VkQueryType]
$cenumFromThen :: VkQueryType -> VkQueryType -> [VkQueryType]
enumFrom :: VkQueryType -> [VkQueryType]
$cenumFrom :: VkQueryType -> [VkQueryType]
fromEnum :: VkQueryType -> Int
$cfromEnum :: VkQueryType -> Int
toEnum :: Int -> VkQueryType
$ctoEnum :: Int -> VkQueryType
pred :: VkQueryType -> VkQueryType
$cpred :: VkQueryType -> VkQueryType
succ :: VkQueryType -> VkQueryType
$csucc :: VkQueryType -> VkQueryType
Enum, Ptr VkQueryType -> IO VkQueryType
Ptr VkQueryType -> Int -> IO VkQueryType
Ptr VkQueryType -> Int -> VkQueryType -> IO ()
Ptr VkQueryType -> VkQueryType -> IO ()
VkQueryType -> Int
(VkQueryType -> Int)
-> (VkQueryType -> Int)
-> (Ptr VkQueryType -> Int -> IO VkQueryType)
-> (Ptr VkQueryType -> Int -> VkQueryType -> IO ())
-> (forall b. Ptr b -> Int -> IO VkQueryType)
-> (forall b. Ptr b -> Int -> VkQueryType -> IO ())
-> (Ptr VkQueryType -> IO VkQueryType)
-> (Ptr VkQueryType -> VkQueryType -> IO ())
-> Storable VkQueryType
forall b. Ptr b -> Int -> IO VkQueryType
forall b. Ptr b -> Int -> VkQueryType -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr VkQueryType -> VkQueryType -> IO ()
$cpoke :: Ptr VkQueryType -> VkQueryType -> IO ()
peek :: Ptr VkQueryType -> IO VkQueryType
$cpeek :: Ptr VkQueryType -> IO VkQueryType
pokeByteOff :: forall b. Ptr b -> Int -> VkQueryType -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkQueryType -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkQueryType
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkQueryType
pokeElemOff :: Ptr VkQueryType -> Int -> VkQueryType -> IO ()
$cpokeElemOff :: Ptr VkQueryType -> Int -> VkQueryType -> IO ()
peekElemOff :: Ptr VkQueryType -> Int -> IO VkQueryType
$cpeekElemOff :: Ptr VkQueryType -> Int -> IO VkQueryType
alignment :: VkQueryType -> Int
$calignment :: VkQueryType -> Int
sizeOf :: VkQueryType -> Int
$csizeOf :: VkQueryType -> Int
Storable)

instance Show VkQueryType where
    showsPrec :: Int -> VkQueryType -> ShowS
showsPrec Int
_ VkQueryType
VK_QUERY_TYPE_OCCLUSION
      = String -> ShowS
showString String
"VK_QUERY_TYPE_OCCLUSION"
    showsPrec Int
_ VkQueryType
VK_QUERY_TYPE_PIPELINE_STATISTICS
      = String -> ShowS
showString String
"VK_QUERY_TYPE_PIPELINE_STATISTICS"
    showsPrec Int
_ VkQueryType
VK_QUERY_TYPE_TIMESTAMP
      = String -> ShowS
showString String
"VK_QUERY_TYPE_TIMESTAMP"
    showsPrec Int
p (VkQueryType Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"VkQueryType " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkQueryType where
    readPrec :: ReadPrec VkQueryType
readPrec
      = ReadPrec VkQueryType -> ReadPrec VkQueryType
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkQueryType)] -> ReadPrec VkQueryType
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_QUERY_TYPE_OCCLUSION", VkQueryType -> ReadPrec VkQueryType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryType
VK_QUERY_TYPE_OCCLUSION),
              (String
"VK_QUERY_TYPE_PIPELINE_STATISTICS",
               VkQueryType -> ReadPrec VkQueryType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryType
VK_QUERY_TYPE_PIPELINE_STATISTICS),
              (String
"VK_QUERY_TYPE_TIMESTAMP", VkQueryType -> ReadPrec VkQueryType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkQueryType
VK_QUERY_TYPE_TIMESTAMP)]
             ReadPrec VkQueryType
-> ReadPrec VkQueryType -> ReadPrec VkQueryType
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int -> ReadPrec VkQueryType -> ReadPrec VkQueryType
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkQueryType") ReadPrec () -> ReadPrec VkQueryType -> ReadPrec VkQueryType
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> (Int32 -> VkQueryType
VkQueryType (Int32 -> VkQueryType) -> ReadPrec Int32 -> ReadPrec VkQueryType
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_QUERY_TYPE_OCCLUSION :: VkQueryType

pattern $bVK_QUERY_TYPE_OCCLUSION :: VkQueryType
$mVK_QUERY_TYPE_OCCLUSION :: forall {r}. VkQueryType -> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_TYPE_OCCLUSION = VkQueryType 0

-- | Optional
pattern VK_QUERY_TYPE_PIPELINE_STATISTICS :: VkQueryType

pattern $bVK_QUERY_TYPE_PIPELINE_STATISTICS :: VkQueryType
$mVK_QUERY_TYPE_PIPELINE_STATISTICS :: forall {r}. VkQueryType -> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_TYPE_PIPELINE_STATISTICS = VkQueryType 1

pattern VK_QUERY_TYPE_TIMESTAMP :: VkQueryType

pattern $bVK_QUERY_TYPE_TIMESTAMP :: VkQueryType
$mVK_QUERY_TYPE_TIMESTAMP :: forall {r}. VkQueryType -> (Void# -> r) -> (Void# -> r) -> r
VK_QUERY_TYPE_TIMESTAMP = VkQueryType 2