{-# language CPP #-}
-- No documentation found for Chapter "QueryPoolCreateFlagBits"
module Vulkan.Core10.Enums.QueryPoolCreateFlagBits  ( QueryPoolCreateFlags
                                                    , QueryPoolCreateFlagBits( QUERY_POOL_CREATE_RESET_BIT_KHR
                                                                             , ..
                                                                             )
                                                    ) where

import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showString)
import Numeric (showHex)
import Vulkan.Zero (Zero)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Vulkan.Core10.FundamentalTypes (Flags)
type QueryPoolCreateFlags = QueryPoolCreateFlagBits

-- | VkQueryPoolCreateFlagBits - Bitmask specifying query pool properties
--
-- = Description
--
-- -   'QUERY_POOL_CREATE_RESET_BIT_KHR' specifies that queries in the
--     query pool are initialized on creation and do not need to be reset
--     before first use.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'QueryPoolCreateFlags'
newtype QueryPoolCreateFlagBits = QueryPoolCreateFlagBits Flags
  deriving newtype (QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
(QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool)
-> (QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool)
-> Eq QueryPoolCreateFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
== :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
$c/= :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
/= :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
Eq, Eq QueryPoolCreateFlagBits
Eq QueryPoolCreateFlagBits =>
(QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Ordering)
-> (QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool)
-> (QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool)
-> (QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool)
-> (QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool)
-> (QueryPoolCreateFlagBits
    -> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits
    -> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits)
-> Ord QueryPoolCreateFlagBits
QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Ordering
QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
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
$ccompare :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Ordering
compare :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Ordering
$c< :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
< :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
$c<= :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
<= :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
$c> :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
> :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
$c>= :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
>= :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> Bool
$cmax :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
max :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
$cmin :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
min :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
Ord, Ptr QueryPoolCreateFlagBits -> IO QueryPoolCreateFlagBits
Ptr QueryPoolCreateFlagBits -> Int -> IO QueryPoolCreateFlagBits
Ptr QueryPoolCreateFlagBits
-> Int -> QueryPoolCreateFlagBits -> IO ()
Ptr QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> IO ()
QueryPoolCreateFlagBits -> Int
(QueryPoolCreateFlagBits -> Int)
-> (QueryPoolCreateFlagBits -> Int)
-> (Ptr QueryPoolCreateFlagBits
    -> Int -> IO QueryPoolCreateFlagBits)
-> (Ptr QueryPoolCreateFlagBits
    -> Int -> QueryPoolCreateFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO QueryPoolCreateFlagBits)
-> (forall b. Ptr b -> Int -> QueryPoolCreateFlagBits -> IO ())
-> (Ptr QueryPoolCreateFlagBits -> IO QueryPoolCreateFlagBits)
-> (Ptr QueryPoolCreateFlagBits
    -> QueryPoolCreateFlagBits -> IO ())
-> Storable QueryPoolCreateFlagBits
forall b. Ptr b -> Int -> IO QueryPoolCreateFlagBits
forall b. Ptr b -> Int -> QueryPoolCreateFlagBits -> 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
$csizeOf :: QueryPoolCreateFlagBits -> Int
sizeOf :: QueryPoolCreateFlagBits -> Int
$calignment :: QueryPoolCreateFlagBits -> Int
alignment :: QueryPoolCreateFlagBits -> Int
$cpeekElemOff :: Ptr QueryPoolCreateFlagBits -> Int -> IO QueryPoolCreateFlagBits
peekElemOff :: Ptr QueryPoolCreateFlagBits -> Int -> IO QueryPoolCreateFlagBits
$cpokeElemOff :: Ptr QueryPoolCreateFlagBits
-> Int -> QueryPoolCreateFlagBits -> IO ()
pokeElemOff :: Ptr QueryPoolCreateFlagBits
-> Int -> QueryPoolCreateFlagBits -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO QueryPoolCreateFlagBits
peekByteOff :: forall b. Ptr b -> Int -> IO QueryPoolCreateFlagBits
$cpokeByteOff :: forall b. Ptr b -> Int -> QueryPoolCreateFlagBits -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> QueryPoolCreateFlagBits -> IO ()
$cpeek :: Ptr QueryPoolCreateFlagBits -> IO QueryPoolCreateFlagBits
peek :: Ptr QueryPoolCreateFlagBits -> IO QueryPoolCreateFlagBits
$cpoke :: Ptr QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> IO ()
poke :: Ptr QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits -> IO ()
Storable, QueryPoolCreateFlagBits
QueryPoolCreateFlagBits -> Zero QueryPoolCreateFlagBits
forall a. a -> Zero a
$czero :: QueryPoolCreateFlagBits
zero :: QueryPoolCreateFlagBits
Zero, Eq QueryPoolCreateFlagBits
QueryPoolCreateFlagBits
Eq QueryPoolCreateFlagBits =>
(QueryPoolCreateFlagBits
 -> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits
    -> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits
    -> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> QueryPoolCreateFlagBits
-> (Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> Bool)
-> (QueryPoolCreateFlagBits -> Maybe Int)
-> (QueryPoolCreateFlagBits -> Int)
-> (QueryPoolCreateFlagBits -> Bool)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits)
-> (QueryPoolCreateFlagBits -> Int)
-> Bits QueryPoolCreateFlagBits
Int -> QueryPoolCreateFlagBits
QueryPoolCreateFlagBits -> Bool
QueryPoolCreateFlagBits -> Int
QueryPoolCreateFlagBits -> Maybe Int
QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
QueryPoolCreateFlagBits -> Int -> Bool
QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
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
$c.&. :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
.&. :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
$c.|. :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
.|. :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
$cxor :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
xor :: QueryPoolCreateFlagBits
-> QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
$ccomplement :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
complement :: QueryPoolCreateFlagBits -> QueryPoolCreateFlagBits
$cshift :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
shift :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$crotate :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
rotate :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$czeroBits :: QueryPoolCreateFlagBits
zeroBits :: QueryPoolCreateFlagBits
$cbit :: Int -> QueryPoolCreateFlagBits
bit :: Int -> QueryPoolCreateFlagBits
$csetBit :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
setBit :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$cclearBit :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
clearBit :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$ccomplementBit :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
complementBit :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$ctestBit :: QueryPoolCreateFlagBits -> Int -> Bool
testBit :: QueryPoolCreateFlagBits -> Int -> Bool
$cbitSizeMaybe :: QueryPoolCreateFlagBits -> Maybe Int
bitSizeMaybe :: QueryPoolCreateFlagBits -> Maybe Int
$cbitSize :: QueryPoolCreateFlagBits -> Int
bitSize :: QueryPoolCreateFlagBits -> Int
$cisSigned :: QueryPoolCreateFlagBits -> Bool
isSigned :: QueryPoolCreateFlagBits -> Bool
$cshiftL :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
shiftL :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$cunsafeShiftL :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
unsafeShiftL :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$cshiftR :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
shiftR :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$cunsafeShiftR :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
unsafeShiftR :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$crotateL :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
rotateL :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$crotateR :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
rotateR :: QueryPoolCreateFlagBits -> Int -> QueryPoolCreateFlagBits
$cpopCount :: QueryPoolCreateFlagBits -> Int
popCount :: QueryPoolCreateFlagBits -> Int
Bits, Bits QueryPoolCreateFlagBits
Bits QueryPoolCreateFlagBits =>
(QueryPoolCreateFlagBits -> Int)
-> (QueryPoolCreateFlagBits -> Int)
-> (QueryPoolCreateFlagBits -> Int)
-> FiniteBits QueryPoolCreateFlagBits
QueryPoolCreateFlagBits -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: QueryPoolCreateFlagBits -> Int
finiteBitSize :: QueryPoolCreateFlagBits -> Int
$ccountLeadingZeros :: QueryPoolCreateFlagBits -> Int
countLeadingZeros :: QueryPoolCreateFlagBits -> Int
$ccountTrailingZeros :: QueryPoolCreateFlagBits -> Int
countTrailingZeros :: QueryPoolCreateFlagBits -> Int
FiniteBits)

-- No documentation found for Nested "VkQueryPoolCreateFlagBits" "VK_QUERY_POOL_CREATE_RESET_BIT_KHR"
pattern $mQUERY_POOL_CREATE_RESET_BIT_KHR :: forall {r}.
QueryPoolCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bQUERY_POOL_CREATE_RESET_BIT_KHR :: QueryPoolCreateFlagBits
QUERY_POOL_CREATE_RESET_BIT_KHR = QueryPoolCreateFlagBits 0x00000001

conNameQueryPoolCreateFlagBits :: String
conNameQueryPoolCreateFlagBits :: String
conNameQueryPoolCreateFlagBits = String
"QueryPoolCreateFlagBits"

enumPrefixQueryPoolCreateFlagBits :: String
enumPrefixQueryPoolCreateFlagBits :: String
enumPrefixQueryPoolCreateFlagBits = String
"QUERY_POOL_CREATE_RESET_BIT_KHR"

showTableQueryPoolCreateFlagBits :: [(QueryPoolCreateFlagBits, String)]
showTableQueryPoolCreateFlagBits :: [(QueryPoolCreateFlagBits, String)]
showTableQueryPoolCreateFlagBits = [(QueryPoolCreateFlagBits
QUERY_POOL_CREATE_RESET_BIT_KHR, String
"")]

instance Show QueryPoolCreateFlagBits where
  showsPrec :: Int -> QueryPoolCreateFlagBits -> ShowS
showsPrec =
    String
-> [(QueryPoolCreateFlagBits, String)]
-> String
-> (QueryPoolCreateFlagBits -> Word32)
-> (Word32 -> ShowS)
-> Int
-> QueryPoolCreateFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixQueryPoolCreateFlagBits
      [(QueryPoolCreateFlagBits, String)]
showTableQueryPoolCreateFlagBits
      String
conNameQueryPoolCreateFlagBits
      (\(QueryPoolCreateFlagBits Word32
x) -> Word32
x)
      (\Word32
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word32 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word32
x)

instance Read QueryPoolCreateFlagBits where
  readPrec :: ReadPrec QueryPoolCreateFlagBits
readPrec =
    String
-> [(QueryPoolCreateFlagBits, String)]
-> String
-> (Word32 -> QueryPoolCreateFlagBits)
-> ReadPrec QueryPoolCreateFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixQueryPoolCreateFlagBits
      [(QueryPoolCreateFlagBits, String)]
showTableQueryPoolCreateFlagBits
      String
conNameQueryPoolCreateFlagBits
      Word32 -> QueryPoolCreateFlagBits
QueryPoolCreateFlagBits