{-# language CPP #-}
-- No documentation found for Chapter "FramebufferCreateFlagBits"
module Vulkan.Core10.Enums.FramebufferCreateFlagBits  ( FramebufferCreateFlags
                                                      , FramebufferCreateFlagBits( FRAMEBUFFER_CREATE_IMAGELESS_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 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
/= :: FramebufferCreateFlagBits -> FramebufferCreateFlagBits -> Bool
$c/= :: FramebufferCreateFlagBits -> FramebufferCreateFlagBits -> Bool
== :: FramebufferCreateFlagBits -> FramebufferCreateFlagBits -> Bool
$c== :: 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
min :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
$cmin :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
max :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
$cmax :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
>= :: FramebufferCreateFlagBits -> FramebufferCreateFlagBits -> Bool
$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
compare :: FramebufferCreateFlagBits -> FramebufferCreateFlagBits -> Ordering
$ccompare :: FramebufferCreateFlagBits -> FramebufferCreateFlagBits -> Ordering
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
poke :: Ptr FramebufferCreateFlagBits -> FramebufferCreateFlagBits -> IO ()
$cpoke :: Ptr FramebufferCreateFlagBits -> FramebufferCreateFlagBits -> IO ()
peek :: Ptr FramebufferCreateFlagBits -> IO FramebufferCreateFlagBits
$cpeek :: Ptr FramebufferCreateFlagBits -> IO FramebufferCreateFlagBits
pokeByteOff :: forall b. Ptr b -> Int -> FramebufferCreateFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> FramebufferCreateFlagBits -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO FramebufferCreateFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO FramebufferCreateFlagBits
pokeElemOff :: Ptr FramebufferCreateFlagBits
-> Int -> FramebufferCreateFlagBits -> IO ()
$cpokeElemOff :: Ptr FramebufferCreateFlagBits
-> Int -> FramebufferCreateFlagBits -> IO ()
peekElemOff :: Ptr FramebufferCreateFlagBits
-> Int -> IO FramebufferCreateFlagBits
$cpeekElemOff :: Ptr FramebufferCreateFlagBits
-> Int -> IO FramebufferCreateFlagBits
alignment :: FramebufferCreateFlagBits -> Int
$calignment :: FramebufferCreateFlagBits -> Int
sizeOf :: FramebufferCreateFlagBits -> Int
$csizeOf :: FramebufferCreateFlagBits -> Int
Storable, FramebufferCreateFlagBits
FramebufferCreateFlagBits -> Zero FramebufferCreateFlagBits
forall a. a -> Zero a
zero :: FramebufferCreateFlagBits
$czero :: 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
popCount :: FramebufferCreateFlagBits -> Int
$cpopCount :: FramebufferCreateFlagBits -> Int
rotateR :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$crotateR :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
rotateL :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$crotateL :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
unsafeShiftR :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$cunsafeShiftR :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
shiftR :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$cshiftR :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
unsafeShiftL :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$cunsafeShiftL :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
shiftL :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$cshiftL :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
isSigned :: FramebufferCreateFlagBits -> Bool
$cisSigned :: FramebufferCreateFlagBits -> Bool
bitSize :: FramebufferCreateFlagBits -> Int
$cbitSize :: FramebufferCreateFlagBits -> Int
bitSizeMaybe :: FramebufferCreateFlagBits -> Maybe Int
$cbitSizeMaybe :: FramebufferCreateFlagBits -> Maybe Int
testBit :: FramebufferCreateFlagBits -> Int -> Bool
$ctestBit :: FramebufferCreateFlagBits -> Int -> Bool
complementBit :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$ccomplementBit :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
clearBit :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$cclearBit :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
setBit :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$csetBit :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
bit :: Int -> FramebufferCreateFlagBits
$cbit :: Int -> FramebufferCreateFlagBits
zeroBits :: FramebufferCreateFlagBits
$czeroBits :: FramebufferCreateFlagBits
rotate :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$crotate :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
shift :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
$cshift :: FramebufferCreateFlagBits -> Int -> FramebufferCreateFlagBits
complement :: FramebufferCreateFlagBits -> FramebufferCreateFlagBits
$ccomplement :: FramebufferCreateFlagBits -> FramebufferCreateFlagBits
xor :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
$cxor :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
.|. :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
$c.|. :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
.&. :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
$c.&. :: FramebufferCreateFlagBits
-> FramebufferCreateFlagBits -> FramebufferCreateFlagBits
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
countTrailingZeros :: FramebufferCreateFlagBits -> Int
$ccountTrailingZeros :: FramebufferCreateFlagBits -> Int
countLeadingZeros :: FramebufferCreateFlagBits -> Int
$ccountLeadingZeros :: FramebufferCreateFlagBits -> Int
finiteBitSize :: FramebufferCreateFlagBits -> Int
$cfiniteBitSize :: 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 -> (Void# -> r) -> (Void# -> 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, Show 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