{-# OPTIONS_HADDOCK ignore-exports#-}
{-# LANGUAGE DataKinds                  #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms            #-}
{-# LANGUAGE Strict                     #-}
module Graphics.Vulkan.Types.Enum.Coverage
       (VkCoverageModulationModeNV(VkCoverageModulationModeNV,
                                   VK_COVERAGE_MODULATION_MODE_NONE_NV,
                                   VK_COVERAGE_MODULATION_MODE_RGB_NV,
                                   VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
                                   VK_COVERAGE_MODULATION_MODE_RGBA_NV),
        VkCoverageReductionModeNV(VkCoverageReductionModeNV,
                                  VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
                                  VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV))
       where
import Foreign.Storable                (Storable)
import GHC.Read                        (choose, expectP)
import Graphics.Vulkan.Marshal         (Int32)
import Text.ParserCombinators.ReadPrec (prec, step, (+++))
import Text.Read                       (Read (..), parens)
import Text.Read.Lex                   (Lexeme (..))

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCoverageModulationModeNV VkCoverageModulationModeNV registry at www.khronos.org>
newtype VkCoverageModulationModeNV = VkCoverageModulationModeNV Int32
                                     deriving (VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
(VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool)
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> Bool)
-> Eq VkCoverageModulationModeNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
$c/= :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
== :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
$c== :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
Eq, Eq VkCoverageModulationModeNV
Eq VkCoverageModulationModeNV
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> Ordering)
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> Bool)
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> Bool)
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> Bool)
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> Bool)
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> VkCoverageModulationModeNV)
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> VkCoverageModulationModeNV)
-> Ord VkCoverageModulationModeNV
VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> Ordering
VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> VkCoverageModulationModeNV
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 :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> VkCoverageModulationModeNV
$cmin :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> VkCoverageModulationModeNV
max :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> VkCoverageModulationModeNV
$cmax :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> VkCoverageModulationModeNV
>= :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
$c>= :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
> :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
$c> :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
<= :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
$c<= :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
< :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
$c< :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV -> Bool
compare :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> Ordering
$ccompare :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> Ordering
Ord, Int -> VkCoverageModulationModeNV
VkCoverageModulationModeNV -> Int
VkCoverageModulationModeNV -> [VkCoverageModulationModeNV]
VkCoverageModulationModeNV -> VkCoverageModulationModeNV
VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> [VkCoverageModulationModeNV]
VkCoverageModulationModeNV
-> VkCoverageModulationModeNV
-> VkCoverageModulationModeNV
-> [VkCoverageModulationModeNV]
(VkCoverageModulationModeNV -> VkCoverageModulationModeNV)
-> (VkCoverageModulationModeNV -> VkCoverageModulationModeNV)
-> (Int -> VkCoverageModulationModeNV)
-> (VkCoverageModulationModeNV -> Int)
-> (VkCoverageModulationModeNV -> [VkCoverageModulationModeNV])
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> [VkCoverageModulationModeNV])
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> [VkCoverageModulationModeNV])
-> (VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV
    -> [VkCoverageModulationModeNV])
-> Enum VkCoverageModulationModeNV
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV
-> VkCoverageModulationModeNV
-> [VkCoverageModulationModeNV]
$cenumFromThenTo :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV
-> VkCoverageModulationModeNV
-> [VkCoverageModulationModeNV]
enumFromTo :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> [VkCoverageModulationModeNV]
$cenumFromTo :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> [VkCoverageModulationModeNV]
enumFromThen :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> [VkCoverageModulationModeNV]
$cenumFromThen :: VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> [VkCoverageModulationModeNV]
enumFrom :: VkCoverageModulationModeNV -> [VkCoverageModulationModeNV]
$cenumFrom :: VkCoverageModulationModeNV -> [VkCoverageModulationModeNV]
fromEnum :: VkCoverageModulationModeNV -> Int
$cfromEnum :: VkCoverageModulationModeNV -> Int
toEnum :: Int -> VkCoverageModulationModeNV
$ctoEnum :: Int -> VkCoverageModulationModeNV
pred :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV
$cpred :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV
succ :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV
$csucc :: VkCoverageModulationModeNV -> VkCoverageModulationModeNV
Enum, Ptr VkCoverageModulationModeNV -> IO VkCoverageModulationModeNV
Ptr VkCoverageModulationModeNV
-> Int -> IO VkCoverageModulationModeNV
Ptr VkCoverageModulationModeNV
-> Int -> VkCoverageModulationModeNV -> IO ()
Ptr VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> IO ()
VkCoverageModulationModeNV -> Int
(VkCoverageModulationModeNV -> Int)
-> (VkCoverageModulationModeNV -> Int)
-> (Ptr VkCoverageModulationModeNV
    -> Int -> IO VkCoverageModulationModeNV)
-> (Ptr VkCoverageModulationModeNV
    -> Int -> VkCoverageModulationModeNV -> IO ())
-> (forall b. Ptr b -> Int -> IO VkCoverageModulationModeNV)
-> (forall b. Ptr b -> Int -> VkCoverageModulationModeNV -> IO ())
-> (Ptr VkCoverageModulationModeNV
    -> IO VkCoverageModulationModeNV)
-> (Ptr VkCoverageModulationModeNV
    -> VkCoverageModulationModeNV -> IO ())
-> Storable VkCoverageModulationModeNV
forall b. Ptr b -> Int -> IO VkCoverageModulationModeNV
forall b. Ptr b -> Int -> VkCoverageModulationModeNV -> 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 VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> IO ()
$cpoke :: Ptr VkCoverageModulationModeNV
-> VkCoverageModulationModeNV -> IO ()
peek :: Ptr VkCoverageModulationModeNV -> IO VkCoverageModulationModeNV
$cpeek :: Ptr VkCoverageModulationModeNV -> IO VkCoverageModulationModeNV
pokeByteOff :: forall b. Ptr b -> Int -> VkCoverageModulationModeNV -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkCoverageModulationModeNV -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkCoverageModulationModeNV
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkCoverageModulationModeNV
pokeElemOff :: Ptr VkCoverageModulationModeNV
-> Int -> VkCoverageModulationModeNV -> IO ()
$cpokeElemOff :: Ptr VkCoverageModulationModeNV
-> Int -> VkCoverageModulationModeNV -> IO ()
peekElemOff :: Ptr VkCoverageModulationModeNV
-> Int -> IO VkCoverageModulationModeNV
$cpeekElemOff :: Ptr VkCoverageModulationModeNV
-> Int -> IO VkCoverageModulationModeNV
alignment :: VkCoverageModulationModeNV -> Int
$calignment :: VkCoverageModulationModeNV -> Int
sizeOf :: VkCoverageModulationModeNV -> Int
$csizeOf :: VkCoverageModulationModeNV -> Int
Storable)

instance Show VkCoverageModulationModeNV where
    showsPrec :: Int -> VkCoverageModulationModeNV -> ShowS
showsPrec Int
_ VkCoverageModulationModeNV
VK_COVERAGE_MODULATION_MODE_NONE_NV
      = String -> ShowS
showString String
"VK_COVERAGE_MODULATION_MODE_NONE_NV"
    showsPrec Int
_ VkCoverageModulationModeNV
VK_COVERAGE_MODULATION_MODE_RGB_NV
      = String -> ShowS
showString String
"VK_COVERAGE_MODULATION_MODE_RGB_NV"
    showsPrec Int
_ VkCoverageModulationModeNV
VK_COVERAGE_MODULATION_MODE_ALPHA_NV
      = String -> ShowS
showString String
"VK_COVERAGE_MODULATION_MODE_ALPHA_NV"
    showsPrec Int
_ VkCoverageModulationModeNV
VK_COVERAGE_MODULATION_MODE_RGBA_NV
      = String -> ShowS
showString String
"VK_COVERAGE_MODULATION_MODE_RGBA_NV"
    showsPrec Int
p (VkCoverageModulationModeNV Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkCoverageModulationModeNV " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkCoverageModulationModeNV where
    readPrec :: ReadPrec VkCoverageModulationModeNV
readPrec
      = ReadPrec VkCoverageModulationModeNV
-> ReadPrec VkCoverageModulationModeNV
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkCoverageModulationModeNV)]
-> ReadPrec VkCoverageModulationModeNV
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_COVERAGE_MODULATION_MODE_NONE_NV",
               VkCoverageModulationModeNV -> ReadPrec VkCoverageModulationModeNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCoverageModulationModeNV
VK_COVERAGE_MODULATION_MODE_NONE_NV),
              (String
"VK_COVERAGE_MODULATION_MODE_RGB_NV",
               VkCoverageModulationModeNV -> ReadPrec VkCoverageModulationModeNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCoverageModulationModeNV
VK_COVERAGE_MODULATION_MODE_RGB_NV),
              (String
"VK_COVERAGE_MODULATION_MODE_ALPHA_NV",
               VkCoverageModulationModeNV -> ReadPrec VkCoverageModulationModeNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCoverageModulationModeNV
VK_COVERAGE_MODULATION_MODE_ALPHA_NV),
              (String
"VK_COVERAGE_MODULATION_MODE_RGBA_NV",
               VkCoverageModulationModeNV -> ReadPrec VkCoverageModulationModeNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCoverageModulationModeNV
VK_COVERAGE_MODULATION_MODE_RGBA_NV)]
             ReadPrec VkCoverageModulationModeNV
-> ReadPrec VkCoverageModulationModeNV
-> ReadPrec VkCoverageModulationModeNV
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec VkCoverageModulationModeNV
-> ReadPrec VkCoverageModulationModeNV
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkCoverageModulationModeNV") ReadPrec ()
-> ReadPrec VkCoverageModulationModeNV
-> ReadPrec VkCoverageModulationModeNV
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkCoverageModulationModeNV
VkCoverageModulationModeNV (Int32 -> VkCoverageModulationModeNV)
-> ReadPrec Int32 -> ReadPrec VkCoverageModulationModeNV
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_COVERAGE_MODULATION_MODE_NONE_NV ::
        VkCoverageModulationModeNV

pattern $bVK_COVERAGE_MODULATION_MODE_NONE_NV :: VkCoverageModulationModeNV
$mVK_COVERAGE_MODULATION_MODE_NONE_NV :: forall {r}.
VkCoverageModulationModeNV -> (Void# -> r) -> (Void# -> r) -> r
VK_COVERAGE_MODULATION_MODE_NONE_NV =
        VkCoverageModulationModeNV 0

pattern VK_COVERAGE_MODULATION_MODE_RGB_NV ::
        VkCoverageModulationModeNV

pattern $bVK_COVERAGE_MODULATION_MODE_RGB_NV :: VkCoverageModulationModeNV
$mVK_COVERAGE_MODULATION_MODE_RGB_NV :: forall {r}.
VkCoverageModulationModeNV -> (Void# -> r) -> (Void# -> r) -> r
VK_COVERAGE_MODULATION_MODE_RGB_NV =
        VkCoverageModulationModeNV 1

pattern VK_COVERAGE_MODULATION_MODE_ALPHA_NV ::
        VkCoverageModulationModeNV

pattern $bVK_COVERAGE_MODULATION_MODE_ALPHA_NV :: VkCoverageModulationModeNV
$mVK_COVERAGE_MODULATION_MODE_ALPHA_NV :: forall {r}.
VkCoverageModulationModeNV -> (Void# -> r) -> (Void# -> r) -> r
VK_COVERAGE_MODULATION_MODE_ALPHA_NV =
        VkCoverageModulationModeNV 2

pattern VK_COVERAGE_MODULATION_MODE_RGBA_NV ::
        VkCoverageModulationModeNV

pattern $bVK_COVERAGE_MODULATION_MODE_RGBA_NV :: VkCoverageModulationModeNV
$mVK_COVERAGE_MODULATION_MODE_RGBA_NV :: forall {r}.
VkCoverageModulationModeNV -> (Void# -> r) -> (Void# -> r) -> r
VK_COVERAGE_MODULATION_MODE_RGBA_NV =
        VkCoverageModulationModeNV 3

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCoverageReductionModeNV VkCoverageReductionModeNV registry at www.khronos.org>
newtype VkCoverageReductionModeNV = VkCoverageReductionModeNV Int32
                                    deriving (VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
(VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool)
-> (VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool)
-> Eq VkCoverageReductionModeNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
$c/= :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
== :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
$c== :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
Eq, Eq VkCoverageReductionModeNV
Eq VkCoverageReductionModeNV
-> (VkCoverageReductionModeNV
    -> VkCoverageReductionModeNV -> Ordering)
-> (VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool)
-> (VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool)
-> (VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool)
-> (VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool)
-> (VkCoverageReductionModeNV
    -> VkCoverageReductionModeNV -> VkCoverageReductionModeNV)
-> (VkCoverageReductionModeNV
    -> VkCoverageReductionModeNV -> VkCoverageReductionModeNV)
-> Ord VkCoverageReductionModeNV
VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Ordering
VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> VkCoverageReductionModeNV
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 :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> VkCoverageReductionModeNV
$cmin :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> VkCoverageReductionModeNV
max :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> VkCoverageReductionModeNV
$cmax :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> VkCoverageReductionModeNV
>= :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
$c>= :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
> :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
$c> :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
<= :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
$c<= :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
< :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
$c< :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Bool
compare :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Ordering
$ccompare :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> Ordering
Ord, Int -> VkCoverageReductionModeNV
VkCoverageReductionModeNV -> Int
VkCoverageReductionModeNV -> [VkCoverageReductionModeNV]
VkCoverageReductionModeNV -> VkCoverageReductionModeNV
VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> [VkCoverageReductionModeNV]
VkCoverageReductionModeNV
-> VkCoverageReductionModeNV
-> VkCoverageReductionModeNV
-> [VkCoverageReductionModeNV]
(VkCoverageReductionModeNV -> VkCoverageReductionModeNV)
-> (VkCoverageReductionModeNV -> VkCoverageReductionModeNV)
-> (Int -> VkCoverageReductionModeNV)
-> (VkCoverageReductionModeNV -> Int)
-> (VkCoverageReductionModeNV -> [VkCoverageReductionModeNV])
-> (VkCoverageReductionModeNV
    -> VkCoverageReductionModeNV -> [VkCoverageReductionModeNV])
-> (VkCoverageReductionModeNV
    -> VkCoverageReductionModeNV -> [VkCoverageReductionModeNV])
-> (VkCoverageReductionModeNV
    -> VkCoverageReductionModeNV
    -> VkCoverageReductionModeNV
    -> [VkCoverageReductionModeNV])
-> Enum VkCoverageReductionModeNV
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV
-> VkCoverageReductionModeNV
-> [VkCoverageReductionModeNV]
$cenumFromThenTo :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV
-> VkCoverageReductionModeNV
-> [VkCoverageReductionModeNV]
enumFromTo :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> [VkCoverageReductionModeNV]
$cenumFromTo :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> [VkCoverageReductionModeNV]
enumFromThen :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> [VkCoverageReductionModeNV]
$cenumFromThen :: VkCoverageReductionModeNV
-> VkCoverageReductionModeNV -> [VkCoverageReductionModeNV]
enumFrom :: VkCoverageReductionModeNV -> [VkCoverageReductionModeNV]
$cenumFrom :: VkCoverageReductionModeNV -> [VkCoverageReductionModeNV]
fromEnum :: VkCoverageReductionModeNV -> Int
$cfromEnum :: VkCoverageReductionModeNV -> Int
toEnum :: Int -> VkCoverageReductionModeNV
$ctoEnum :: Int -> VkCoverageReductionModeNV
pred :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV
$cpred :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV
succ :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV
$csucc :: VkCoverageReductionModeNV -> VkCoverageReductionModeNV
Enum, Ptr VkCoverageReductionModeNV -> IO VkCoverageReductionModeNV
Ptr VkCoverageReductionModeNV
-> Int -> IO VkCoverageReductionModeNV
Ptr VkCoverageReductionModeNV
-> Int -> VkCoverageReductionModeNV -> IO ()
Ptr VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> IO ()
VkCoverageReductionModeNV -> Int
(VkCoverageReductionModeNV -> Int)
-> (VkCoverageReductionModeNV -> Int)
-> (Ptr VkCoverageReductionModeNV
    -> Int -> IO VkCoverageReductionModeNV)
-> (Ptr VkCoverageReductionModeNV
    -> Int -> VkCoverageReductionModeNV -> IO ())
-> (forall b. Ptr b -> Int -> IO VkCoverageReductionModeNV)
-> (forall b. Ptr b -> Int -> VkCoverageReductionModeNV -> IO ())
-> (Ptr VkCoverageReductionModeNV -> IO VkCoverageReductionModeNV)
-> (Ptr VkCoverageReductionModeNV
    -> VkCoverageReductionModeNV -> IO ())
-> Storable VkCoverageReductionModeNV
forall b. Ptr b -> Int -> IO VkCoverageReductionModeNV
forall b. Ptr b -> Int -> VkCoverageReductionModeNV -> 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 VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> IO ()
$cpoke :: Ptr VkCoverageReductionModeNV -> VkCoverageReductionModeNV -> IO ()
peek :: Ptr VkCoverageReductionModeNV -> IO VkCoverageReductionModeNV
$cpeek :: Ptr VkCoverageReductionModeNV -> IO VkCoverageReductionModeNV
pokeByteOff :: forall b. Ptr b -> Int -> VkCoverageReductionModeNV -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkCoverageReductionModeNV -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkCoverageReductionModeNV
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkCoverageReductionModeNV
pokeElemOff :: Ptr VkCoverageReductionModeNV
-> Int -> VkCoverageReductionModeNV -> IO ()
$cpokeElemOff :: Ptr VkCoverageReductionModeNV
-> Int -> VkCoverageReductionModeNV -> IO ()
peekElemOff :: Ptr VkCoverageReductionModeNV
-> Int -> IO VkCoverageReductionModeNV
$cpeekElemOff :: Ptr VkCoverageReductionModeNV
-> Int -> IO VkCoverageReductionModeNV
alignment :: VkCoverageReductionModeNV -> Int
$calignment :: VkCoverageReductionModeNV -> Int
sizeOf :: VkCoverageReductionModeNV -> Int
$csizeOf :: VkCoverageReductionModeNV -> Int
Storable)

instance Show VkCoverageReductionModeNV where
    showsPrec :: Int -> VkCoverageReductionModeNV -> ShowS
showsPrec Int
_ VkCoverageReductionModeNV
VK_COVERAGE_REDUCTION_MODE_MERGE_NV
      = String -> ShowS
showString String
"VK_COVERAGE_REDUCTION_MODE_MERGE_NV"
    showsPrec Int
_ VkCoverageReductionModeNV
VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
      = String -> ShowS
showString String
"VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV"
    showsPrec Int
p (VkCoverageReductionModeNV Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkCoverageReductionModeNV " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkCoverageReductionModeNV where
    readPrec :: ReadPrec VkCoverageReductionModeNV
readPrec
      = ReadPrec VkCoverageReductionModeNV
-> ReadPrec VkCoverageReductionModeNV
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkCoverageReductionModeNV)]
-> ReadPrec VkCoverageReductionModeNV
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_COVERAGE_REDUCTION_MODE_MERGE_NV",
               VkCoverageReductionModeNV -> ReadPrec VkCoverageReductionModeNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCoverageReductionModeNV
VK_COVERAGE_REDUCTION_MODE_MERGE_NV),
              (String
"VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV",
               VkCoverageReductionModeNV -> ReadPrec VkCoverageReductionModeNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCoverageReductionModeNV
VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV)]
             ReadPrec VkCoverageReductionModeNV
-> ReadPrec VkCoverageReductionModeNV
-> ReadPrec VkCoverageReductionModeNV
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec VkCoverageReductionModeNV
-> ReadPrec VkCoverageReductionModeNV
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkCoverageReductionModeNV") ReadPrec ()
-> ReadPrec VkCoverageReductionModeNV
-> ReadPrec VkCoverageReductionModeNV
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkCoverageReductionModeNV
VkCoverageReductionModeNV (Int32 -> VkCoverageReductionModeNV)
-> ReadPrec Int32 -> ReadPrec VkCoverageReductionModeNV
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_COVERAGE_REDUCTION_MODE_MERGE_NV ::
        VkCoverageReductionModeNV

pattern $bVK_COVERAGE_REDUCTION_MODE_MERGE_NV :: VkCoverageReductionModeNV
$mVK_COVERAGE_REDUCTION_MODE_MERGE_NV :: forall {r}.
VkCoverageReductionModeNV -> (Void# -> r) -> (Void# -> r) -> r
VK_COVERAGE_REDUCTION_MODE_MERGE_NV =
        VkCoverageReductionModeNV 0

pattern VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV ::
        VkCoverageReductionModeNV

pattern $bVK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV :: VkCoverageReductionModeNV
$mVK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV :: forall {r}.
VkCoverageReductionModeNV -> (Void# -> r) -> (Void# -> r) -> r
VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV =
        VkCoverageReductionModeNV 1