{-# language CPP #-}
-- No documentation found for Chapter "QueryControlFlagBits"
module Vulkan.Core10.Enums.QueryControlFlagBits  ( QueryControlFlags
                                                 , QueryControlFlagBits( QUERY_CONTROL_PRECISE_BIT
                                                                       , ..
                                                                       )
                                                 ) where

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

-- | VkQueryControlFlagBits - Bitmask specifying constraints on a query
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'QueryControlFlags'
newtype QueryControlFlagBits = QueryControlFlagBits Flags
  deriving newtype (QueryControlFlagBits -> QueryControlFlagBits -> Bool
(QueryControlFlagBits -> QueryControlFlagBits -> Bool)
-> (QueryControlFlagBits -> QueryControlFlagBits -> Bool)
-> Eq QueryControlFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
$c/= :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
== :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
$c== :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
Eq, Eq QueryControlFlagBits
Eq QueryControlFlagBits
-> (QueryControlFlagBits -> QueryControlFlagBits -> Ordering)
-> (QueryControlFlagBits -> QueryControlFlagBits -> Bool)
-> (QueryControlFlagBits -> QueryControlFlagBits -> Bool)
-> (QueryControlFlagBits -> QueryControlFlagBits -> Bool)
-> (QueryControlFlagBits -> QueryControlFlagBits -> Bool)
-> (QueryControlFlagBits
    -> QueryControlFlagBits -> QueryControlFlagBits)
-> (QueryControlFlagBits
    -> QueryControlFlagBits -> QueryControlFlagBits)
-> Ord QueryControlFlagBits
QueryControlFlagBits -> QueryControlFlagBits -> Bool
QueryControlFlagBits -> QueryControlFlagBits -> Ordering
QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
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 :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
$cmin :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
max :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
$cmax :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
>= :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
$c>= :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
> :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
$c> :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
<= :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
$c<= :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
< :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
$c< :: QueryControlFlagBits -> QueryControlFlagBits -> Bool
compare :: QueryControlFlagBits -> QueryControlFlagBits -> Ordering
$ccompare :: QueryControlFlagBits -> QueryControlFlagBits -> Ordering
$cp1Ord :: Eq QueryControlFlagBits
Ord, Ptr b -> Int -> IO QueryControlFlagBits
Ptr b -> Int -> QueryControlFlagBits -> IO ()
Ptr QueryControlFlagBits -> IO QueryControlFlagBits
Ptr QueryControlFlagBits -> Int -> IO QueryControlFlagBits
Ptr QueryControlFlagBits -> Int -> QueryControlFlagBits -> IO ()
Ptr QueryControlFlagBits -> QueryControlFlagBits -> IO ()
QueryControlFlagBits -> Int
(QueryControlFlagBits -> Int)
-> (QueryControlFlagBits -> Int)
-> (Ptr QueryControlFlagBits -> Int -> IO QueryControlFlagBits)
-> (Ptr QueryControlFlagBits
    -> Int -> QueryControlFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO QueryControlFlagBits)
-> (forall b. Ptr b -> Int -> QueryControlFlagBits -> IO ())
-> (Ptr QueryControlFlagBits -> IO QueryControlFlagBits)
-> (Ptr QueryControlFlagBits -> QueryControlFlagBits -> IO ())
-> Storable QueryControlFlagBits
forall b. Ptr b -> Int -> IO QueryControlFlagBits
forall b. Ptr b -> Int -> QueryControlFlagBits -> 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 QueryControlFlagBits -> QueryControlFlagBits -> IO ()
$cpoke :: Ptr QueryControlFlagBits -> QueryControlFlagBits -> IO ()
peek :: Ptr QueryControlFlagBits -> IO QueryControlFlagBits
$cpeek :: Ptr QueryControlFlagBits -> IO QueryControlFlagBits
pokeByteOff :: Ptr b -> Int -> QueryControlFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> QueryControlFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO QueryControlFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO QueryControlFlagBits
pokeElemOff :: Ptr QueryControlFlagBits -> Int -> QueryControlFlagBits -> IO ()
$cpokeElemOff :: Ptr QueryControlFlagBits -> Int -> QueryControlFlagBits -> IO ()
peekElemOff :: Ptr QueryControlFlagBits -> Int -> IO QueryControlFlagBits
$cpeekElemOff :: Ptr QueryControlFlagBits -> Int -> IO QueryControlFlagBits
alignment :: QueryControlFlagBits -> Int
$calignment :: QueryControlFlagBits -> Int
sizeOf :: QueryControlFlagBits -> Int
$csizeOf :: QueryControlFlagBits -> Int
Storable, QueryControlFlagBits
QueryControlFlagBits -> Zero QueryControlFlagBits
forall a. a -> Zero a
zero :: QueryControlFlagBits
$czero :: QueryControlFlagBits
Zero, Eq QueryControlFlagBits
QueryControlFlagBits
Eq QueryControlFlagBits
-> (QueryControlFlagBits
    -> QueryControlFlagBits -> QueryControlFlagBits)
-> (QueryControlFlagBits
    -> QueryControlFlagBits -> QueryControlFlagBits)
-> (QueryControlFlagBits
    -> QueryControlFlagBits -> QueryControlFlagBits)
-> (QueryControlFlagBits -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> QueryControlFlagBits
-> (Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> Bool)
-> (QueryControlFlagBits -> Maybe Int)
-> (QueryControlFlagBits -> Int)
-> (QueryControlFlagBits -> Bool)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int -> QueryControlFlagBits)
-> (QueryControlFlagBits -> Int)
-> Bits QueryControlFlagBits
Int -> QueryControlFlagBits
QueryControlFlagBits -> Bool
QueryControlFlagBits -> Int
QueryControlFlagBits -> Maybe Int
QueryControlFlagBits -> QueryControlFlagBits
QueryControlFlagBits -> Int -> Bool
QueryControlFlagBits -> Int -> QueryControlFlagBits
QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
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 :: QueryControlFlagBits -> Int
$cpopCount :: QueryControlFlagBits -> Int
rotateR :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$crotateR :: QueryControlFlagBits -> Int -> QueryControlFlagBits
rotateL :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$crotateL :: QueryControlFlagBits -> Int -> QueryControlFlagBits
unsafeShiftR :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$cunsafeShiftR :: QueryControlFlagBits -> Int -> QueryControlFlagBits
shiftR :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$cshiftR :: QueryControlFlagBits -> Int -> QueryControlFlagBits
unsafeShiftL :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$cunsafeShiftL :: QueryControlFlagBits -> Int -> QueryControlFlagBits
shiftL :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$cshiftL :: QueryControlFlagBits -> Int -> QueryControlFlagBits
isSigned :: QueryControlFlagBits -> Bool
$cisSigned :: QueryControlFlagBits -> Bool
bitSize :: QueryControlFlagBits -> Int
$cbitSize :: QueryControlFlagBits -> Int
bitSizeMaybe :: QueryControlFlagBits -> Maybe Int
$cbitSizeMaybe :: QueryControlFlagBits -> Maybe Int
testBit :: QueryControlFlagBits -> Int -> Bool
$ctestBit :: QueryControlFlagBits -> Int -> Bool
complementBit :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$ccomplementBit :: QueryControlFlagBits -> Int -> QueryControlFlagBits
clearBit :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$cclearBit :: QueryControlFlagBits -> Int -> QueryControlFlagBits
setBit :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$csetBit :: QueryControlFlagBits -> Int -> QueryControlFlagBits
bit :: Int -> QueryControlFlagBits
$cbit :: Int -> QueryControlFlagBits
zeroBits :: QueryControlFlagBits
$czeroBits :: QueryControlFlagBits
rotate :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$crotate :: QueryControlFlagBits -> Int -> QueryControlFlagBits
shift :: QueryControlFlagBits -> Int -> QueryControlFlagBits
$cshift :: QueryControlFlagBits -> Int -> QueryControlFlagBits
complement :: QueryControlFlagBits -> QueryControlFlagBits
$ccomplement :: QueryControlFlagBits -> QueryControlFlagBits
xor :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
$cxor :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
.|. :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
$c.|. :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
.&. :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
$c.&. :: QueryControlFlagBits
-> QueryControlFlagBits -> QueryControlFlagBits
$cp1Bits :: Eq QueryControlFlagBits
Bits, Bits QueryControlFlagBits
Bits QueryControlFlagBits
-> (QueryControlFlagBits -> Int)
-> (QueryControlFlagBits -> Int)
-> (QueryControlFlagBits -> Int)
-> FiniteBits QueryControlFlagBits
QueryControlFlagBits -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: QueryControlFlagBits -> Int
$ccountTrailingZeros :: QueryControlFlagBits -> Int
countLeadingZeros :: QueryControlFlagBits -> Int
$ccountLeadingZeros :: QueryControlFlagBits -> Int
finiteBitSize :: QueryControlFlagBits -> Int
$cfiniteBitSize :: QueryControlFlagBits -> Int
$cp1FiniteBits :: Bits QueryControlFlagBits
FiniteBits)

-- | 'QUERY_CONTROL_PRECISE_BIT' specifies the precision of
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-occlusion occlusion queries>.
pattern $bQUERY_CONTROL_PRECISE_BIT :: QueryControlFlagBits
$mQUERY_CONTROL_PRECISE_BIT :: forall r. QueryControlFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_CONTROL_PRECISE_BIT = QueryControlFlagBits 0x00000001

conNameQueryControlFlagBits :: String
conNameQueryControlFlagBits :: String
conNameQueryControlFlagBits = String
"QueryControlFlagBits"

enumPrefixQueryControlFlagBits :: String
enumPrefixQueryControlFlagBits :: String
enumPrefixQueryControlFlagBits = String
"QUERY_CONTROL_PRECISE_BIT"

showTableQueryControlFlagBits :: [(QueryControlFlagBits, String)]
showTableQueryControlFlagBits :: [(QueryControlFlagBits, String)]
showTableQueryControlFlagBits = [(QueryControlFlagBits
QUERY_CONTROL_PRECISE_BIT, String
"")]

instance Show QueryControlFlagBits where
  showsPrec :: Int -> QueryControlFlagBits -> ShowS
showsPrec = String
-> [(QueryControlFlagBits, String)]
-> String
-> (QueryControlFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> QueryControlFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixQueryControlFlagBits
                            [(QueryControlFlagBits, String)]
showTableQueryControlFlagBits
                            String
conNameQueryControlFlagBits
                            (\(QueryControlFlagBits Flags
x) -> Flags
x)
                            (\Flags
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

instance Read QueryControlFlagBits where
  readPrec :: ReadPrec QueryControlFlagBits
readPrec = String
-> [(QueryControlFlagBits, String)]
-> String
-> (Flags -> QueryControlFlagBits)
-> ReadPrec QueryControlFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixQueryControlFlagBits
                          [(QueryControlFlagBits, String)]
showTableQueryControlFlagBits
                          String
conNameQueryControlFlagBits
                          Flags -> QueryControlFlagBits
QueryControlFlagBits