{-# language CPP #-}
-- No documentation found for Chapter "ResolveModeFlagBits"
module Vulkan.Core12.Enums.ResolveModeFlagBits  ( ResolveModeFlags
                                                , ResolveModeFlagBits( RESOLVE_MODE_NONE
                                                                     , RESOLVE_MODE_SAMPLE_ZERO_BIT
                                                                     , RESOLVE_MODE_AVERAGE_BIT
                                                                     , RESOLVE_MODE_MIN_BIT
                                                                     , RESOLVE_MODE_MAX_BIT
                                                                     , ..
                                                                     )
                                                ) where

import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showString)
import Numeric (showHex)
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)
import Vulkan.Zero (Zero)
type ResolveModeFlags = ResolveModeFlagBits

-- | VkResolveModeFlagBits - Bitmask indicating supported depth and stencil
-- resolve modes
--
-- = See Also
--
-- 'ResolveModeFlags',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'
newtype ResolveModeFlagBits = ResolveModeFlagBits Flags
  deriving newtype (ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
(ResolveModeFlagBits -> ResolveModeFlagBits -> Bool)
-> (ResolveModeFlagBits -> ResolveModeFlagBits -> Bool)
-> Eq ResolveModeFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
$c/= :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
== :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
$c== :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
Eq, Eq ResolveModeFlagBits
Eq ResolveModeFlagBits =>
(ResolveModeFlagBits -> ResolveModeFlagBits -> Ordering)
-> (ResolveModeFlagBits -> ResolveModeFlagBits -> Bool)
-> (ResolveModeFlagBits -> ResolveModeFlagBits -> Bool)
-> (ResolveModeFlagBits -> ResolveModeFlagBits -> Bool)
-> (ResolveModeFlagBits -> ResolveModeFlagBits -> Bool)
-> (ResolveModeFlagBits
    -> ResolveModeFlagBits -> ResolveModeFlagBits)
-> (ResolveModeFlagBits
    -> ResolveModeFlagBits -> ResolveModeFlagBits)
-> Ord ResolveModeFlagBits
ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
ResolveModeFlagBits -> ResolveModeFlagBits -> Ordering
ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
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 :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
$cmin :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
max :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
$cmax :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
>= :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
$c>= :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
> :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
$c> :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
<= :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
$c<= :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
< :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
$c< :: ResolveModeFlagBits -> ResolveModeFlagBits -> Bool
compare :: ResolveModeFlagBits -> ResolveModeFlagBits -> Ordering
$ccompare :: ResolveModeFlagBits -> ResolveModeFlagBits -> Ordering
$cp1Ord :: Eq ResolveModeFlagBits
Ord, Ptr b -> Int -> IO ResolveModeFlagBits
Ptr b -> Int -> ResolveModeFlagBits -> IO ()
Ptr ResolveModeFlagBits -> IO ResolveModeFlagBits
Ptr ResolveModeFlagBits -> Int -> IO ResolveModeFlagBits
Ptr ResolveModeFlagBits -> Int -> ResolveModeFlagBits -> IO ()
Ptr ResolveModeFlagBits -> ResolveModeFlagBits -> IO ()
ResolveModeFlagBits -> Int
(ResolveModeFlagBits -> Int)
-> (ResolveModeFlagBits -> Int)
-> (Ptr ResolveModeFlagBits -> Int -> IO ResolveModeFlagBits)
-> (Ptr ResolveModeFlagBits -> Int -> ResolveModeFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO ResolveModeFlagBits)
-> (forall b. Ptr b -> Int -> ResolveModeFlagBits -> IO ())
-> (Ptr ResolveModeFlagBits -> IO ResolveModeFlagBits)
-> (Ptr ResolveModeFlagBits -> ResolveModeFlagBits -> IO ())
-> Storable ResolveModeFlagBits
forall b. Ptr b -> Int -> IO ResolveModeFlagBits
forall b. Ptr b -> Int -> ResolveModeFlagBits -> 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 ResolveModeFlagBits -> ResolveModeFlagBits -> IO ()
$cpoke :: Ptr ResolveModeFlagBits -> ResolveModeFlagBits -> IO ()
peek :: Ptr ResolveModeFlagBits -> IO ResolveModeFlagBits
$cpeek :: Ptr ResolveModeFlagBits -> IO ResolveModeFlagBits
pokeByteOff :: Ptr b -> Int -> ResolveModeFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> ResolveModeFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO ResolveModeFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ResolveModeFlagBits
pokeElemOff :: Ptr ResolveModeFlagBits -> Int -> ResolveModeFlagBits -> IO ()
$cpokeElemOff :: Ptr ResolveModeFlagBits -> Int -> ResolveModeFlagBits -> IO ()
peekElemOff :: Ptr ResolveModeFlagBits -> Int -> IO ResolveModeFlagBits
$cpeekElemOff :: Ptr ResolveModeFlagBits -> Int -> IO ResolveModeFlagBits
alignment :: ResolveModeFlagBits -> Int
$calignment :: ResolveModeFlagBits -> Int
sizeOf :: ResolveModeFlagBits -> Int
$csizeOf :: ResolveModeFlagBits -> Int
Storable, ResolveModeFlagBits
ResolveModeFlagBits -> Zero ResolveModeFlagBits
forall a. a -> Zero a
zero :: ResolveModeFlagBits
$czero :: ResolveModeFlagBits
Zero, Eq ResolveModeFlagBits
ResolveModeFlagBits
Eq ResolveModeFlagBits =>
(ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits)
-> (ResolveModeFlagBits
    -> ResolveModeFlagBits -> ResolveModeFlagBits)
-> (ResolveModeFlagBits
    -> ResolveModeFlagBits -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> ResolveModeFlagBits
-> (Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> Bool)
-> (ResolveModeFlagBits -> Maybe Int)
-> (ResolveModeFlagBits -> Int)
-> (ResolveModeFlagBits -> Bool)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int -> ResolveModeFlagBits)
-> (ResolveModeFlagBits -> Int)
-> Bits ResolveModeFlagBits
Int -> ResolveModeFlagBits
ResolveModeFlagBits -> Bool
ResolveModeFlagBits -> Int
ResolveModeFlagBits -> Maybe Int
ResolveModeFlagBits -> ResolveModeFlagBits
ResolveModeFlagBits -> Int -> Bool
ResolveModeFlagBits -> Int -> ResolveModeFlagBits
ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
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 :: ResolveModeFlagBits -> Int
$cpopCount :: ResolveModeFlagBits -> Int
rotateR :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$crotateR :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
rotateL :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$crotateL :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
unsafeShiftR :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$cunsafeShiftR :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
shiftR :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$cshiftR :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
unsafeShiftL :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$cunsafeShiftL :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
shiftL :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$cshiftL :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
isSigned :: ResolveModeFlagBits -> Bool
$cisSigned :: ResolveModeFlagBits -> Bool
bitSize :: ResolveModeFlagBits -> Int
$cbitSize :: ResolveModeFlagBits -> Int
bitSizeMaybe :: ResolveModeFlagBits -> Maybe Int
$cbitSizeMaybe :: ResolveModeFlagBits -> Maybe Int
testBit :: ResolveModeFlagBits -> Int -> Bool
$ctestBit :: ResolveModeFlagBits -> Int -> Bool
complementBit :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$ccomplementBit :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
clearBit :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$cclearBit :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
setBit :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$csetBit :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
bit :: Int -> ResolveModeFlagBits
$cbit :: Int -> ResolveModeFlagBits
zeroBits :: ResolveModeFlagBits
$czeroBits :: ResolveModeFlagBits
rotate :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$crotate :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
shift :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
$cshift :: ResolveModeFlagBits -> Int -> ResolveModeFlagBits
complement :: ResolveModeFlagBits -> ResolveModeFlagBits
$ccomplement :: ResolveModeFlagBits -> ResolveModeFlagBits
xor :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
$cxor :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
.|. :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
$c.|. :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
.&. :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
$c.&. :: ResolveModeFlagBits -> ResolveModeFlagBits -> ResolveModeFlagBits
$cp1Bits :: Eq ResolveModeFlagBits
Bits, Bits ResolveModeFlagBits
Bits ResolveModeFlagBits =>
(ResolveModeFlagBits -> Int)
-> (ResolveModeFlagBits -> Int)
-> (ResolveModeFlagBits -> Int)
-> FiniteBits ResolveModeFlagBits
ResolveModeFlagBits -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: ResolveModeFlagBits -> Int
$ccountTrailingZeros :: ResolveModeFlagBits -> Int
countLeadingZeros :: ResolveModeFlagBits -> Int
$ccountLeadingZeros :: ResolveModeFlagBits -> Int
finiteBitSize :: ResolveModeFlagBits -> Int
$cfiniteBitSize :: ResolveModeFlagBits -> Int
$cp1FiniteBits :: Bits ResolveModeFlagBits
FiniteBits)

-- | 'RESOLVE_MODE_NONE' indicates that no resolve operation is done.
pattern $bRESOLVE_MODE_NONE :: ResolveModeFlagBits
$mRESOLVE_MODE_NONE :: forall r. ResolveModeFlagBits -> (Void# -> r) -> (Void# -> r) -> r
RESOLVE_MODE_NONE            = ResolveModeFlagBits 0x00000000
-- | 'RESOLVE_MODE_SAMPLE_ZERO_BIT' indicates that result of the resolve
-- operation is equal to the value of sample 0.
pattern $bRESOLVE_MODE_SAMPLE_ZERO_BIT :: ResolveModeFlagBits
$mRESOLVE_MODE_SAMPLE_ZERO_BIT :: forall r. ResolveModeFlagBits -> (Void# -> r) -> (Void# -> r) -> r
RESOLVE_MODE_SAMPLE_ZERO_BIT = ResolveModeFlagBits 0x00000001
-- | 'RESOLVE_MODE_AVERAGE_BIT' indicates that result of the resolve
-- operation is the average of the sample values.
pattern $bRESOLVE_MODE_AVERAGE_BIT :: ResolveModeFlagBits
$mRESOLVE_MODE_AVERAGE_BIT :: forall r. ResolveModeFlagBits -> (Void# -> r) -> (Void# -> r) -> r
RESOLVE_MODE_AVERAGE_BIT     = ResolveModeFlagBits 0x00000002
-- | 'RESOLVE_MODE_MIN_BIT' indicates that result of the resolve operation is
-- the minimum of the sample values.
pattern $bRESOLVE_MODE_MIN_BIT :: ResolveModeFlagBits
$mRESOLVE_MODE_MIN_BIT :: forall r. ResolveModeFlagBits -> (Void# -> r) -> (Void# -> r) -> r
RESOLVE_MODE_MIN_BIT         = ResolveModeFlagBits 0x00000004
-- | 'RESOLVE_MODE_MAX_BIT' indicates that result of the resolve operation is
-- the maximum of the sample values.
pattern $bRESOLVE_MODE_MAX_BIT :: ResolveModeFlagBits
$mRESOLVE_MODE_MAX_BIT :: forall r. ResolveModeFlagBits -> (Void# -> r) -> (Void# -> r) -> r
RESOLVE_MODE_MAX_BIT         = ResolveModeFlagBits 0x00000008

conNameResolveModeFlagBits :: String
conNameResolveModeFlagBits :: String
conNameResolveModeFlagBits = "ResolveModeFlagBits"

enumPrefixResolveModeFlagBits :: String
enumPrefixResolveModeFlagBits :: String
enumPrefixResolveModeFlagBits = "RESOLVE_MODE_"

showTableResolveModeFlagBits :: [(ResolveModeFlagBits, String)]
showTableResolveModeFlagBits :: [(ResolveModeFlagBits, String)]
showTableResolveModeFlagBits =
  [ (ResolveModeFlagBits
RESOLVE_MODE_NONE           , "NONE")
  , (ResolveModeFlagBits
RESOLVE_MODE_SAMPLE_ZERO_BIT, "SAMPLE_ZERO_BIT")
  , (ResolveModeFlagBits
RESOLVE_MODE_AVERAGE_BIT    , "AVERAGE_BIT")
  , (ResolveModeFlagBits
RESOLVE_MODE_MIN_BIT        , "MIN_BIT")
  , (ResolveModeFlagBits
RESOLVE_MODE_MAX_BIT        , "MAX_BIT")
  ]

instance Show ResolveModeFlagBits where
  showsPrec :: Int -> ResolveModeFlagBits -> ShowS
showsPrec = String
-> [(ResolveModeFlagBits, String)]
-> String
-> (ResolveModeFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> ResolveModeFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixResolveModeFlagBits
                            [(ResolveModeFlagBits, String)]
showTableResolveModeFlagBits
                            String
conNameResolveModeFlagBits
                            (\(ResolveModeFlagBits x :: Flags
x) -> Flags
x)
                            (\x :: Flags
x -> String -> ShowS
showString "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 ResolveModeFlagBits where
  readPrec :: ReadPrec ResolveModeFlagBits
readPrec = String
-> [(ResolveModeFlagBits, String)]
-> String
-> (Flags -> ResolveModeFlagBits)
-> ReadPrec ResolveModeFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixResolveModeFlagBits
                          [(ResolveModeFlagBits, String)]
showTableResolveModeFlagBits
                          String
conNameResolveModeFlagBits
                          Flags -> ResolveModeFlagBits
ResolveModeFlagBits