{-# language CPP #-}
module Vulkan.Core10.Enums.ImageUsageFlagBits  ( ImageUsageFlagBits( IMAGE_USAGE_TRANSFER_SRC_BIT
                                                                   , IMAGE_USAGE_TRANSFER_DST_BIT
                                                                   , IMAGE_USAGE_SAMPLED_BIT
                                                                   , IMAGE_USAGE_STORAGE_BIT
                                                                   , IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                                                                   , IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
                                                                   , IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
                                                                   , IMAGE_USAGE_INPUT_ATTACHMENT_BIT
                                                                   , IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
                                                                   , IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
                                                                   , ..
                                                                   )
                                               , ImageUsageFlags
                                               ) 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)
-- | VkImageUsageFlagBits - Bitmask specifying intended usage of an image
--
-- = See Also
--
-- 'ImageUsageFlags'
newtype ImageUsageFlagBits = ImageUsageFlagBits Flags
  deriving newtype (ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
(ImageUsageFlagBits -> ImageUsageFlagBits -> Bool)
-> (ImageUsageFlagBits -> ImageUsageFlagBits -> Bool)
-> Eq ImageUsageFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
$c/= :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
== :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
$c== :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
Eq, Eq ImageUsageFlagBits
Eq ImageUsageFlagBits =>
(ImageUsageFlagBits -> ImageUsageFlagBits -> Ordering)
-> (ImageUsageFlagBits -> ImageUsageFlagBits -> Bool)
-> (ImageUsageFlagBits -> ImageUsageFlagBits -> Bool)
-> (ImageUsageFlagBits -> ImageUsageFlagBits -> Bool)
-> (ImageUsageFlagBits -> ImageUsageFlagBits -> Bool)
-> (ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits)
-> Ord ImageUsageFlagBits
ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
ImageUsageFlagBits -> ImageUsageFlagBits -> Ordering
ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
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 :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
$cmin :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
max :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
$cmax :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
>= :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
$c>= :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
> :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
$c> :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
<= :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
$c<= :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
< :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
$c< :: ImageUsageFlagBits -> ImageUsageFlagBits -> Bool
compare :: ImageUsageFlagBits -> ImageUsageFlagBits -> Ordering
$ccompare :: ImageUsageFlagBits -> ImageUsageFlagBits -> Ordering
$cp1Ord :: Eq ImageUsageFlagBits
Ord, Ptr b -> Int -> IO ImageUsageFlagBits
Ptr b -> Int -> ImageUsageFlagBits -> IO ()
Ptr ImageUsageFlagBits -> IO ImageUsageFlagBits
Ptr ImageUsageFlagBits -> Int -> IO ImageUsageFlagBits
Ptr ImageUsageFlagBits -> Int -> ImageUsageFlagBits -> IO ()
Ptr ImageUsageFlagBits -> ImageUsageFlagBits -> IO ()
ImageUsageFlagBits -> Int
(ImageUsageFlagBits -> Int)
-> (ImageUsageFlagBits -> Int)
-> (Ptr ImageUsageFlagBits -> Int -> IO ImageUsageFlagBits)
-> (Ptr ImageUsageFlagBits -> Int -> ImageUsageFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO ImageUsageFlagBits)
-> (forall b. Ptr b -> Int -> ImageUsageFlagBits -> IO ())
-> (Ptr ImageUsageFlagBits -> IO ImageUsageFlagBits)
-> (Ptr ImageUsageFlagBits -> ImageUsageFlagBits -> IO ())
-> Storable ImageUsageFlagBits
forall b. Ptr b -> Int -> IO ImageUsageFlagBits
forall b. Ptr b -> Int -> ImageUsageFlagBits -> 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 ImageUsageFlagBits -> ImageUsageFlagBits -> IO ()
$cpoke :: Ptr ImageUsageFlagBits -> ImageUsageFlagBits -> IO ()
peek :: Ptr ImageUsageFlagBits -> IO ImageUsageFlagBits
$cpeek :: Ptr ImageUsageFlagBits -> IO ImageUsageFlagBits
pokeByteOff :: Ptr b -> Int -> ImageUsageFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> ImageUsageFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO ImageUsageFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ImageUsageFlagBits
pokeElemOff :: Ptr ImageUsageFlagBits -> Int -> ImageUsageFlagBits -> IO ()
$cpokeElemOff :: Ptr ImageUsageFlagBits -> Int -> ImageUsageFlagBits -> IO ()
peekElemOff :: Ptr ImageUsageFlagBits -> Int -> IO ImageUsageFlagBits
$cpeekElemOff :: Ptr ImageUsageFlagBits -> Int -> IO ImageUsageFlagBits
alignment :: ImageUsageFlagBits -> Int
$calignment :: ImageUsageFlagBits -> Int
sizeOf :: ImageUsageFlagBits -> Int
$csizeOf :: ImageUsageFlagBits -> Int
Storable, ImageUsageFlagBits
ImageUsageFlagBits -> Zero ImageUsageFlagBits
forall a. a -> Zero a
zero :: ImageUsageFlagBits
$czero :: ImageUsageFlagBits
Zero, Eq ImageUsageFlagBits
ImageUsageFlagBits
Eq ImageUsageFlagBits =>
(ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> ImageUsageFlagBits
-> (Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> Bool)
-> (ImageUsageFlagBits -> Maybe Int)
-> (ImageUsageFlagBits -> Int)
-> (ImageUsageFlagBits -> Bool)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int -> ImageUsageFlagBits)
-> (ImageUsageFlagBits -> Int)
-> Bits ImageUsageFlagBits
Int -> ImageUsageFlagBits
ImageUsageFlagBits -> Bool
ImageUsageFlagBits -> Int
ImageUsageFlagBits -> Maybe Int
ImageUsageFlagBits -> ImageUsageFlagBits
ImageUsageFlagBits -> Int -> Bool
ImageUsageFlagBits -> Int -> ImageUsageFlagBits
ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
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 :: ImageUsageFlagBits -> Int
$cpopCount :: ImageUsageFlagBits -> Int
rotateR :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$crotateR :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
rotateL :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$crotateL :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
unsafeShiftR :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$cunsafeShiftR :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
shiftR :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$cshiftR :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
unsafeShiftL :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$cunsafeShiftL :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
shiftL :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$cshiftL :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
isSigned :: ImageUsageFlagBits -> Bool
$cisSigned :: ImageUsageFlagBits -> Bool
bitSize :: ImageUsageFlagBits -> Int
$cbitSize :: ImageUsageFlagBits -> Int
bitSizeMaybe :: ImageUsageFlagBits -> Maybe Int
$cbitSizeMaybe :: ImageUsageFlagBits -> Maybe Int
testBit :: ImageUsageFlagBits -> Int -> Bool
$ctestBit :: ImageUsageFlagBits -> Int -> Bool
complementBit :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$ccomplementBit :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
clearBit :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$cclearBit :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
setBit :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$csetBit :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
bit :: Int -> ImageUsageFlagBits
$cbit :: Int -> ImageUsageFlagBits
zeroBits :: ImageUsageFlagBits
$czeroBits :: ImageUsageFlagBits
rotate :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$crotate :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
shift :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
$cshift :: ImageUsageFlagBits -> Int -> ImageUsageFlagBits
complement :: ImageUsageFlagBits -> ImageUsageFlagBits
$ccomplement :: ImageUsageFlagBits -> ImageUsageFlagBits
xor :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
$cxor :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
.|. :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
$c.|. :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
.&. :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
$c.&. :: ImageUsageFlagBits -> ImageUsageFlagBits -> ImageUsageFlagBits
$cp1Bits :: Eq ImageUsageFlagBits
Bits)

-- | 'IMAGE_USAGE_TRANSFER_SRC_BIT' specifies that the image /can/ be used as
-- the source of a transfer command.
pattern $bIMAGE_USAGE_TRANSFER_SRC_BIT :: ImageUsageFlagBits
$mIMAGE_USAGE_TRANSFER_SRC_BIT :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_TRANSFER_SRC_BIT = ImageUsageFlagBits 0x00000001
-- | 'IMAGE_USAGE_TRANSFER_DST_BIT' specifies that the image /can/ be used as
-- the destination of a transfer command.
pattern $bIMAGE_USAGE_TRANSFER_DST_BIT :: ImageUsageFlagBits
$mIMAGE_USAGE_TRANSFER_DST_BIT :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_TRANSFER_DST_BIT = ImageUsageFlagBits 0x00000002
-- | 'IMAGE_USAGE_SAMPLED_BIT' specifies that the image /can/ be used to
-- create a 'Vulkan.Core10.Handles.ImageView' suitable for occupying a
-- 'Vulkan.Core10.Handles.DescriptorSet' slot either of type
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE' or
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
-- and be sampled by a shader.
pattern $bIMAGE_USAGE_SAMPLED_BIT :: ImageUsageFlagBits
$mIMAGE_USAGE_SAMPLED_BIT :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_SAMPLED_BIT = ImageUsageFlagBits 0x00000004
-- | 'IMAGE_USAGE_STORAGE_BIT' specifies that the image /can/ be used to
-- create a 'Vulkan.Core10.Handles.ImageView' suitable for occupying a
-- 'Vulkan.Core10.Handles.DescriptorSet' slot of type
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'.
pattern $bIMAGE_USAGE_STORAGE_BIT :: ImageUsageFlagBits
$mIMAGE_USAGE_STORAGE_BIT :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_STORAGE_BIT = ImageUsageFlagBits 0x00000008
-- | 'IMAGE_USAGE_COLOR_ATTACHMENT_BIT' specifies that the image /can/ be
-- used to create a 'Vulkan.Core10.Handles.ImageView' suitable for use as a
-- color or resolve attachment in a 'Vulkan.Core10.Handles.Framebuffer'.
pattern $bIMAGE_USAGE_COLOR_ATTACHMENT_BIT :: ImageUsageFlagBits
$mIMAGE_USAGE_COLOR_ATTACHMENT_BIT :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_COLOR_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000010
-- | 'IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' specifies that the image
-- /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for
-- use as a depth\/stencil or depth\/stencil resolve attachment in a
-- 'Vulkan.Core10.Handles.Framebuffer'.
pattern $bIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT :: ImageUsageFlagBits
$mIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000020
-- | 'IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT' specifies that the memory bound
-- to this image will have been allocated with the
-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT'
-- (see
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory>
-- for more detail). This bit /can/ be set for any image that /can/ be used
-- to create a 'Vulkan.Core10.Handles.ImageView' suitable for use as a
-- color, resolve, depth\/stencil, or input attachment.
pattern $bIMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT :: ImageUsageFlagBits
$mIMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000040
-- | 'IMAGE_USAGE_INPUT_ATTACHMENT_BIT' specifies that the image /can/ be
-- used to create a 'Vulkan.Core10.Handles.ImageView' suitable for
-- occupying 'Vulkan.Core10.Handles.DescriptorSet' slot of type
-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT';
-- be read from a shader as an input attachment; and be used as an input
-- attachment in a framebuffer.
pattern $bIMAGE_USAGE_INPUT_ATTACHMENT_BIT :: ImageUsageFlagBits
$mIMAGE_USAGE_INPUT_ATTACHMENT_BIT :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_INPUT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000080
-- | 'IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that the image
-- /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for
-- use as a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map image>.
pattern $bIMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT :: ImageUsageFlagBits
$mIMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = ImageUsageFlagBits 0x00000200
-- | 'IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV' specifies that the image /can/
-- be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for use
-- as a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>.
pattern $bIMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV :: ImageUsageFlagBits
$mIMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV :: forall r. ImageUsageFlagBits -> (Void# -> r) -> (Void# -> r) -> r
IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = ImageUsageFlagBits 0x00000100

type ImageUsageFlags = ImageUsageFlagBits

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