{-# language CPP #-}
module Vulkan.Core10.Enums.FramebufferCreateFlagBits  ( FramebufferCreateFlagBits( FRAMEBUFFER_CREATE_IMAGELESS_BIT
                                                                                 , ..
                                                                                 )
                                                      , FramebufferCreateFlags
                                                      ) where

import GHC.Read (choose)
import GHC.Read (expectP)
import GHC.Read (parens)
import GHC.Show (showParen)
import GHC.Show (showString)
import Numeric (showHex)
import Text.ParserCombinators.ReadPrec ((+++))
import Text.ParserCombinators.ReadPrec (prec)
import Text.ParserCombinators.ReadPrec (step)
import Data.Bits (Bits)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import Text.Read.Lex (Lexeme(Ident))
import Vulkan.Core10.FundamentalTypes (Flags)
import Vulkan.Zero (Zero)
-- | VkFramebufferCreateFlagBits - Bitmask specifying framebuffer properties
--
-- = See Also
--
-- '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
$cp1Ord :: Eq FramebufferCreateFlagBits
Ord, Ptr b -> Int -> IO FramebufferCreateFlagBits
Ptr b -> Int -> FramebufferCreateFlagBits -> IO ()
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 :: Ptr b -> Int -> FramebufferCreateFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> FramebufferCreateFlagBits -> IO ()
peekByteOff :: 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
$cp1Bits :: Eq FramebufferCreateFlagBits
Bits)

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

type FramebufferCreateFlags = FramebufferCreateFlagBits

instance Show FramebufferCreateFlagBits where
  showsPrec :: Int -> FramebufferCreateFlagBits -> ShowS
showsPrec p :: Int
p = \case
    FRAMEBUFFER_CREATE_IMAGELESS_BIT -> String -> ShowS
showString "FRAMEBUFFER_CREATE_IMAGELESS_BIT"
    FramebufferCreateFlagBits x :: Flags
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "FramebufferCreateFlagBits 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 = ReadPrec FramebufferCreateFlagBits
-> ReadPrec FramebufferCreateFlagBits
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec FramebufferCreateFlagBits)]
-> ReadPrec FramebufferCreateFlagBits
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose [("FRAMEBUFFER_CREATE_IMAGELESS_BIT", FramebufferCreateFlagBits -> ReadPrec FramebufferCreateFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure FramebufferCreateFlagBits
FRAMEBUFFER_CREATE_IMAGELESS_BIT)]
                     ReadPrec FramebufferCreateFlagBits
-> ReadPrec FramebufferCreateFlagBits
-> ReadPrec FramebufferCreateFlagBits
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec FramebufferCreateFlagBits
-> ReadPrec FramebufferCreateFlagBits
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "FramebufferCreateFlagBits")
                       Flags
v <- ReadPrec Flags -> ReadPrec Flags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Flags
forall a. Read a => ReadPrec a
readPrec
                       FramebufferCreateFlagBits -> ReadPrec FramebufferCreateFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> FramebufferCreateFlagBits
FramebufferCreateFlagBits Flags
v)))