{-# 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
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
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
Ord, Ptr AttachmentDescriptionFlagBits
-> IO AttachmentDescriptionFlagBits
Ptr AttachmentDescriptionFlagBits
-> Int -> IO AttachmentDescriptionFlagBits
Ptr AttachmentDescriptionFlagBits
-> Int -> AttachmentDescriptionFlagBits -> IO ()
Ptr AttachmentDescriptionFlagBits
-> AttachmentDescriptionFlagBits -> IO ()
AttachmentDescriptionFlagBits -> Int
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 :: forall b. Ptr b -> Int -> AttachmentDescriptionFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> AttachmentDescriptionFlagBits -> IO ()
peekByteOff :: forall b. 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
forall a. a -> Zero a
zero :: AttachmentDescriptionFlagBits
$czero :: AttachmentDescriptionFlagBits
Zero, Eq AttachmentDescriptionFlagBits
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
Bits, Bits 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
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 =
    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" forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

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