{-# 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
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
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
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
forall a. a -> Zero a
zero :: FramebufferCreateFlagBits
$czero :: FramebufferCreateFlagBits
Zero, Eq FramebufferCreateFlagBits
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
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 -> ((# #) -> 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 =
    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" forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

instance Read FramebufferCreateFlagBits where
  readPrec :: ReadPrec FramebufferCreateFlagBits
readPrec =
    forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixFramebufferCreateFlagBits
      [(FramebufferCreateFlagBits, String)]
showTableFramebufferCreateFlagBits
      String
conNameFramebufferCreateFlagBits
      Flags -> FramebufferCreateFlagBits
FramebufferCreateFlagBits