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

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

-- | 'ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT' specifies that the attachment
-- aliases the same device memory as other attachments.
pattern $bATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT :: AttachmentDescriptionFlagBits
$mATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT :: forall {r}.
AttachmentDescriptionFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = AttachmentDescriptionFlagBits 0x00000001

conNameAttachmentDescriptionFlagBits :: String
conNameAttachmentDescriptionFlagBits :: String
conNameAttachmentDescriptionFlagBits = String
"AttachmentDescriptionFlagBits"

enumPrefixAttachmentDescriptionFlagBits :: String
enumPrefixAttachmentDescriptionFlagBits :: String
enumPrefixAttachmentDescriptionFlagBits = String
"ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"

showTableAttachmentDescriptionFlagBits :: [(AttachmentDescriptionFlagBits, String)]
showTableAttachmentDescriptionFlagBits :: [(AttachmentDescriptionFlagBits, String)]
showTableAttachmentDescriptionFlagBits =
  [
    ( AttachmentDescriptionFlagBits
ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
    , String
""
    )
  ]

instance Show AttachmentDescriptionFlagBits where
  showsPrec :: Int -> AttachmentDescriptionFlagBits -> ShowS
showsPrec =
    String
-> [(AttachmentDescriptionFlagBits, String)]
-> String
-> (AttachmentDescriptionFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> AttachmentDescriptionFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixAttachmentDescriptionFlagBits
      [(AttachmentDescriptionFlagBits, String)]
showTableAttachmentDescriptionFlagBits
      String
conNameAttachmentDescriptionFlagBits
      (\(AttachmentDescriptionFlagBits 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 => a -> ShowS
showHex Flags
x)

instance Read AttachmentDescriptionFlagBits where
  readPrec :: ReadPrec AttachmentDescriptionFlagBits
readPrec =
    String
-> [(AttachmentDescriptionFlagBits, String)]
-> String
-> (Flags -> AttachmentDescriptionFlagBits)
-> ReadPrec AttachmentDescriptionFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixAttachmentDescriptionFlagBits
      [(AttachmentDescriptionFlagBits, String)]
showTableAttachmentDescriptionFlagBits
      String
conNameAttachmentDescriptionFlagBits
      Flags -> AttachmentDescriptionFlagBits
AttachmentDescriptionFlagBits