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

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

-- | 'FRAMEBUFFER_CREATE_IMAGELESS_BIT' specifies that image views are not
-- specified, and only attachment compatibility information will be
-- provided via a
-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentImageInfo'
-- structure.
pattern $bFRAMEBUFFER_CREATE_IMAGELESS_BIT :: FramebufferCreateFlagBits
$mFRAMEBUFFER_CREATE_IMAGELESS_BIT :: forall {r}.
FramebufferCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
FRAMEBUFFER_CREATE_IMAGELESS_BIT = FramebufferCreateFlagBits 0x00000001

conNameFramebufferCreateFlagBits :: String
conNameFramebufferCreateFlagBits :: String
conNameFramebufferCreateFlagBits = String
"FramebufferCreateFlagBits"

enumPrefixFramebufferCreateFlagBits :: String
enumPrefixFramebufferCreateFlagBits :: String
enumPrefixFramebufferCreateFlagBits = String
"FRAMEBUFFER_CREATE_IMAGELESS_BIT"

showTableFramebufferCreateFlagBits :: [(FramebufferCreateFlagBits, String)]
showTableFramebufferCreateFlagBits :: [(FramebufferCreateFlagBits, String)]
showTableFramebufferCreateFlagBits = [(FramebufferCreateFlagBits
FRAMEBUFFER_CREATE_IMAGELESS_BIT, String
"")]

instance Show FramebufferCreateFlagBits where
  showsPrec :: Int -> FramebufferCreateFlagBits -> ShowS
showsPrec =
    String
-> [(FramebufferCreateFlagBits, String)]
-> String
-> (FramebufferCreateFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> FramebufferCreateFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixFramebufferCreateFlagBits
      [(FramebufferCreateFlagBits, String)]
showTableFramebufferCreateFlagBits
      String
conNameFramebufferCreateFlagBits
      (\(FramebufferCreateFlagBits 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 FramebufferCreateFlagBits where
  readPrec :: ReadPrec FramebufferCreateFlagBits
readPrec =
    String
-> [(FramebufferCreateFlagBits, String)]
-> String
-> (Flags -> FramebufferCreateFlagBits)
-> ReadPrec FramebufferCreateFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixFramebufferCreateFlagBits
      [(FramebufferCreateFlagBits, String)]
showTableFramebufferCreateFlagBits
      String
conNameFramebufferCreateFlagBits
      Flags -> FramebufferCreateFlagBits
FramebufferCreateFlagBits