{-# language CPP #-}
-- No documentation found for Chapter "RenderPassCreateFlagBits"
module Vulkan.Core10.Enums.RenderPassCreateFlagBits  ( RenderPassCreateFlags
                                                     , RenderPassCreateFlagBits( RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
                                                                               , ..
                                                                               )
                                                     ) 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 RenderPassCreateFlags = RenderPassCreateFlagBits

-- | VkRenderPassCreateFlagBits - Bitmask specifying additional properties of
-- a render pass
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'RenderPassCreateFlags'
newtype RenderPassCreateFlagBits = RenderPassCreateFlagBits Flags
  deriving newtype (RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> Bool
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
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
Ord, Ptr RenderPassCreateFlagBits -> IO RenderPassCreateFlagBits
Ptr RenderPassCreateFlagBits -> Int -> IO RenderPassCreateFlagBits
Ptr RenderPassCreateFlagBits
-> Int -> RenderPassCreateFlagBits -> IO ()
Ptr RenderPassCreateFlagBits -> RenderPassCreateFlagBits -> IO ()
RenderPassCreateFlagBits -> Int
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 :: forall b. Ptr b -> Int -> RenderPassCreateFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> RenderPassCreateFlagBits -> IO ()
peekByteOff :: forall b. 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
forall a. a -> Zero a
zero :: RenderPassCreateFlagBits
$czero :: RenderPassCreateFlagBits
Zero, Eq RenderPassCreateFlagBits
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
Bits, Bits RenderPassCreateFlagBits
RenderPassCreateFlagBits -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: RenderPassCreateFlagBits -> Int
$ccountTrailingZeros :: RenderPassCreateFlagBits -> Int
countLeadingZeros :: RenderPassCreateFlagBits -> Int
$ccountLeadingZeros :: RenderPassCreateFlagBits -> Int
finiteBitSize :: RenderPassCreateFlagBits -> Int
$cfiniteBitSize :: RenderPassCreateFlagBits -> Int
FiniteBits)

-- | 'RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM' specifies that the created
-- render pass is compatible with
-- <https://registry.khronos.org/vulkan/specs/1.3-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 -> ((# #) -> r) -> ((# #) -> r) -> r
RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = RenderPassCreateFlagBits 0x00000002

conNameRenderPassCreateFlagBits :: String
conNameRenderPassCreateFlagBits :: String
conNameRenderPassCreateFlagBits = String
"RenderPassCreateFlagBits"

enumPrefixRenderPassCreateFlagBits :: String
enumPrefixRenderPassCreateFlagBits :: String
enumPrefixRenderPassCreateFlagBits = String
"RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"

showTableRenderPassCreateFlagBits :: [(RenderPassCreateFlagBits, String)]
showTableRenderPassCreateFlagBits :: [(RenderPassCreateFlagBits, String)]
showTableRenderPassCreateFlagBits =
  [
    ( RenderPassCreateFlagBits
RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
    , String
""
    )
  ]

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

instance Read RenderPassCreateFlagBits where
  readPrec :: ReadPrec RenderPassCreateFlagBits
readPrec =
    forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixRenderPassCreateFlagBits
      [(RenderPassCreateFlagBits, String)]
showTableRenderPassCreateFlagBits
      String
conNameRenderPassCreateFlagBits
      Flags -> RenderPassCreateFlagBits
RenderPassCreateFlagBits