{-# language CPP #-}
module Vulkan.Core10.Enums.RenderPassCreateFlagBits  ( RenderPassCreateFlagBits( RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
                                                                               , ..
                                                                               )
                                                     , RenderPassCreateFlags
                                                     ) where

import GHC.Read (choose)
import GHC.Read (expectP)
import GHC.Read (parens)
import GHC.Show (showParen)
import GHC.Show (showString)
import Numeric (showHex)
import Text.ParserCombinators.ReadPrec ((+++))
import Text.ParserCombinators.ReadPrec (prec)
import Text.ParserCombinators.ReadPrec (step)
import Data.Bits (Bits)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import Text.Read.Lex (Lexeme(Ident))
import Vulkan.Core10.FundamentalTypes (Flags)
import Vulkan.Zero (Zero)
-- | VkRenderPassCreateFlagBits - Bitmask specifying additional properties of
-- a renderpass
--
-- = See Also
--
-- 'RenderPassCreateFlags'
newtype RenderPassCreateFlagBits = RenderPassCreateFlagBits Flags
  deriving newtype (RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
(RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool)
-> (RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool)
-> Eq RenderPassCreateFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
$c/= :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
== :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
$c== :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
Eq, Eq RenderPassCreateFlagBits
Eq RenderPassCreateFlagBits =>
(RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Ordering)
-> (RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool)
-> (RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool)
-> (RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool)
-> (RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool)
-> (RenderPassCreateFlagBits
    -> RenderPassCreateFlagBits -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits
    -> RenderPassCreateFlagBits -> RenderPassCreateFlagBits)
-> Ord RenderPassCreateFlagBits
RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Ordering
RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
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 :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
$cmin :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
max :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
$cmax :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
>= :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
$c>= :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
> :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
$c> :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
<= :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
$c<= :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
< :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
$c< :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
compare :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Ordering
$ccompare :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Ordering
$cp1Ord :: Eq RenderPassCreateFlagBits
Ord, Ptr b -> Int -> IO RenderPassCreateFlagBits
Ptr b -> Int -> RenderPassCreateFlagBits -> IO ()
Ptr RenderPassCreateFlagBits -> IO RenderPassCreateFlagBits
Ptr RenderPassCreateFlagBits -> Int -> IO RenderPassCreateFlagBits
Ptr RenderPassCreateFlagBits
-> Int -> RenderPassCreateFlagBits -> IO ()
Ptr RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> IO ()
RenderPassCreateFlagBits -> Int
(RenderPassCreateFlagBits -> Int)
-> (RenderPassCreateFlagBits -> Int)
-> (Ptr RenderPassCreateFlagBits
    -> Int -> IO RenderPassCreateFlagBits)
-> (Ptr RenderPassCreateFlagBits
    -> Int -> RenderPassCreateFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO RenderPassCreateFlagBits)
-> (forall b. Ptr b -> Int -> RenderPassCreateFlagBits -> IO ())
-> (Ptr RenderPassCreateFlagBits -> IO RenderPassCreateFlagBits)
-> (Ptr RenderPassCreateFlagBits
    -> RenderPassCreateFlagBits -> IO ())
-> Storable RenderPassCreateFlagBits
forall b. Ptr b -> Int -> IO RenderPassCreateFlagBits
forall b. Ptr b -> Int -> RenderPassCreateFlagBits -> 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 RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> IO ()
$cpoke :: Ptr RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> IO ()
peek :: Ptr RenderPassCreateFlagBits -> IO RenderPassCreateFlagBits
$cpeek :: Ptr RenderPassCreateFlagBits -> IO RenderPassCreateFlagBits
pokeByteOff :: Ptr b -> Int -> RenderPassCreateFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> RenderPassCreateFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO RenderPassCreateFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO RenderPassCreateFlagBits
pokeElemOff :: Ptr RenderPassCreateFlagBits
-> Int -> RenderPassCreateFlagBits -> IO ()
$cpokeElemOff :: Ptr RenderPassCreateFlagBits
-> Int -> RenderPassCreateFlagBits -> IO ()
peekElemOff :: Ptr RenderPassCreateFlagBits -> Int -> IO RenderPassCreateFlagBits
$cpeekElemOff :: Ptr RenderPassCreateFlagBits -> Int -> IO RenderPassCreateFlagBits
alignment :: RenderPassCreateFlagBits -> Int
$calignment :: RenderPassCreateFlagBits -> Int
sizeOf :: RenderPassCreateFlagBits -> Int
$csizeOf :: RenderPassCreateFlagBits -> Int
Storable, RenderPassCreateFlagBits
RenderPassCreateFlagBits -> Zero RenderPassCreateFlagBits
forall a. a -> Zero a
zero :: RenderPassCreateFlagBits
$czero :: RenderPassCreateFlagBits
Zero, Eq RenderPassCreateFlagBits
RenderPassCreateFlagBits
Eq RenderPassCreateFlagBits =>
(RenderPassCreateFlagBits
 -> RenderPassCreateFlagBits -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits
    -> RenderPassCreateFlagBits -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits
    -> RenderPassCreateFlagBits -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> RenderPassCreateFlagBits
-> (Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> Bool)
-> (RenderPassCreateFlagBits -> Maybe Int)
-> (RenderPassCreateFlagBits -> Int)
-> (RenderPassCreateFlagBits -> Bool)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits)
-> (RenderPassCreateFlagBits -> Int)
-> Bits RenderPassCreateFlagBits
Int -> RenderPassCreateFlagBits
RenderPassCreateFlagBits -> Bool
RenderPassCreateFlagBits -> Int
RenderPassCreateFlagBits -> Maybe Int
RenderPassCreateFlagBits -> RenderPassCreateFlagBits
RenderPassCreateFlagBits -> Int -> Bool
RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
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 :: RenderPassCreateFlagBits -> Int
$cpopCount :: RenderPassCreateFlagBits -> Int
rotateR :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$crotateR :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
rotateL :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$crotateL :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
unsafeShiftR :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$cunsafeShiftR :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
shiftR :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$cshiftR :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
unsafeShiftL :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$cunsafeShiftL :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
shiftL :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$cshiftL :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
isSigned :: RenderPassCreateFlagBits -> Bool
$cisSigned :: RenderPassCreateFlagBits -> Bool
bitSize :: RenderPassCreateFlagBits -> Int
$cbitSize :: RenderPassCreateFlagBits -> Int
bitSizeMaybe :: RenderPassCreateFlagBits -> Maybe Int
$cbitSizeMaybe :: RenderPassCreateFlagBits -> Maybe Int
testBit :: RenderPassCreateFlagBits -> Int -> Bool
$ctestBit :: RenderPassCreateFlagBits -> Int -> Bool
complementBit :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$ccomplementBit :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
clearBit :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$cclearBit :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
setBit :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$csetBit :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
bit :: Int -> RenderPassCreateFlagBits
$cbit :: Int -> RenderPassCreateFlagBits
zeroBits :: RenderPassCreateFlagBits
$czeroBits :: RenderPassCreateFlagBits
rotate :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$crotate :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
shift :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
$cshift :: RenderPassCreateFlagBits -> Int -> RenderPassCreateFlagBits
complement :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits
$ccomplement :: RenderPassCreateFlagBits -> RenderPassCreateFlagBits
xor :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
$cxor :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
.|. :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
$c.|. :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
.&. :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
$c.&. :: RenderPassCreateFlagBits
-> RenderPassCreateFlagBits -> RenderPassCreateFlagBits
$cp1Bits :: Eq RenderPassCreateFlagBits
Bits)

-- | 'RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM' specifies that the created
-- renderpass is compatible with
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.
pattern $bRENDER_PASS_CREATE_TRANSFORM_BIT_QCOM :: RenderPassCreateFlagBits
$mRENDER_PASS_CREATE_TRANSFORM_BIT_QCOM :: forall r.
RenderPassCreateFlagBits -> (Void# -> r) -> (Void# -> r) -> r
RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = RenderPassCreateFlagBits 0x00000002

type RenderPassCreateFlags = RenderPassCreateFlagBits

instance Show RenderPassCreateFlagBits where
  showsPrec :: Int -> RenderPassCreateFlagBits -> ShowS
showsPrec p :: Int
p = \case
    RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM -> String -> ShowS
showString "RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"
    RenderPassCreateFlagBits x :: Flags
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "RenderPassCreateFlagBits 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 RenderPassCreateFlagBits where
  readPrec :: ReadPrec RenderPassCreateFlagBits
readPrec = ReadPrec RenderPassCreateFlagBits
-> ReadPrec RenderPassCreateFlagBits
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec RenderPassCreateFlagBits)]
-> ReadPrec RenderPassCreateFlagBits
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose [("RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM", RenderPassCreateFlagBits -> ReadPrec RenderPassCreateFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure RenderPassCreateFlagBits
RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM)]
                     ReadPrec RenderPassCreateFlagBits
-> ReadPrec RenderPassCreateFlagBits
-> ReadPrec RenderPassCreateFlagBits
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec RenderPassCreateFlagBits
-> ReadPrec RenderPassCreateFlagBits
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "RenderPassCreateFlagBits")
                       Flags
v <- ReadPrec Flags -> ReadPrec Flags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Flags
forall a. Read a => ReadPrec a
readPrec
                       RenderPassCreateFlagBits -> ReadPrec RenderPassCreateFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> RenderPassCreateFlagBits
RenderPassCreateFlagBits Flags
v)))