{-# language CPP #-}
-- No documentation found for Chapter "ImageViewCreateFlagBits"
module Vulkan.Core10.Enums.ImageViewCreateFlagBits  ( ImageViewCreateFlags
                                                    , ImageViewCreateFlagBits( IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
                                                                             , IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
                                                                             , IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
                                                                             , ..
                                                                             )
                                                    ) 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 ImageViewCreateFlags = ImageViewCreateFlagBits

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

-- | 'IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT' specifies that
-- the fragment density map will be read by the host during
-- 'Vulkan.Core10.CommandBuffer.endCommandBuffer' for the primary command
-- buffer that the render pass is recorded into
pattern $bIMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT :: ImageViewCreateFlagBits
$mIMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT :: forall {r}.
ImageViewCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = ImageViewCreateFlagBits 0x00000002

-- | 'IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' specifies
-- that the image view /can/ be used with descriptor buffers when capturing
-- and replaying (e.g. for trace capture and replay), see
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'
-- for more detail.
pattern $bIMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT :: ImageViewCreateFlagBits
$mIMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT :: forall {r}.
ImageViewCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = ImageViewCreateFlagBits 0x00000004

-- | 'IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' specifies that
-- the fragment density map will be read by device during
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
pattern $bIMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT :: ImageViewCreateFlagBits
$mIMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT :: forall {r}.
ImageViewCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = ImageViewCreateFlagBits 0x00000001

conNameImageViewCreateFlagBits :: String
conNameImageViewCreateFlagBits :: String
conNameImageViewCreateFlagBits = String
"ImageViewCreateFlagBits"

enumPrefixImageViewCreateFlagBits :: String
enumPrefixImageViewCreateFlagBits :: String
enumPrefixImageViewCreateFlagBits = String
"IMAGE_VIEW_CREATE_"

showTableImageViewCreateFlagBits :: [(ImageViewCreateFlagBits, String)]
showTableImageViewCreateFlagBits :: [(ImageViewCreateFlagBits, String)]
showTableImageViewCreateFlagBits =
  [
    ( ImageViewCreateFlagBits
IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
    , String
"FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"
    )
  ,
    ( ImageViewCreateFlagBits
IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
    , String
"DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"
    )
  ,
    ( ImageViewCreateFlagBits
IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
    , String
"FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"
    )
  ]

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