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

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

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

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

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

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 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 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