{-# language CPP #-}
module Vulkan.Extensions.VK_NV_fragment_coverage_to_color  ( PipelineCoverageToColorStateCreateInfoNV(..)
                                                           , PipelineCoverageToColorStateCreateFlagsNV(..)
                                                           , NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION
                                                           , pattern NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION
                                                           , NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME
                                                           , pattern NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME
                                                           ) where

import Foreign.Marshal.Alloc (allocaBytesAligned)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
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 Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import Data.Word (Word32)
import Text.Read.Lex (Lexeme(Ident))
import Data.Kind (Type)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.FundamentalTypes (Flags)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
import Vulkan.Zero (Zero(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV))
-- | VkPipelineCoverageToColorStateCreateInfoNV - Structure specifying
-- whether fragment coverage replaces a color
--
-- = Description
--
-- If the @pNext@ chain of
-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' includes a
-- 'PipelineCoverageToColorStateCreateInfoNV' structure, then that
-- structure controls whether the fragment coverage is substituted for a
-- fragment color output and, if so, which output is replaced.
--
-- If @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>
-- replaces the first component of the color value corresponding to the
-- fragment shader output location with @Location@ equal to
-- @coverageToColorLocation@ and @Index@ equal to zero. If the color
-- attachment format has fewer bits than the coverage mask, the low bits of
-- the sample coverage mask are taken without any clamping. If the color
-- attachment format has more bits than the coverage mask, the high bits of
-- the sample coverage mask are filled with zeros.
--
-- If @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE',
-- these operations are skipped. If this structure is not present, it is as
-- if @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE'.
--
-- == Valid Usage
--
-- -   If @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',
--     then the render pass subpass indicated by
--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@
--     and 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@subpass@
--     /must/ have a color attachment at the location selected by
--     @coverageToColorLocation@, with a
--     'Vulkan.Core10.Enums.Format.Format' of
--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',
--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',
--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',
--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',
--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or
--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'
--
-- == Valid Usage (Implicit)
--
-- -   @sType@ /must/ be
--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV'
--
-- -   @flags@ /must/ be @0@
--
-- = See Also
--
-- 'Vulkan.Core10.FundamentalTypes.Bool32',
-- 'PipelineCoverageToColorStateCreateFlagsNV',
-- 'Vulkan.Core10.Enums.StructureType.StructureType'
data PipelineCoverageToColorStateCreateInfoNV = PipelineCoverageToColorStateCreateInfoNV
  { -- | @flags@ is reserved for future use.
    PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateFlagsNV
flags :: PipelineCoverageToColorStateCreateFlagsNV
  , -- | @coverageToColorEnable@ controls whether the fragment coverage value
    -- replaces a fragment color output.
    PipelineCoverageToColorStateCreateInfoNV -> Bool
coverageToColorEnable :: Bool
  , -- | @coverageToColorLocation@ controls which fragment shader color output
    -- value is replaced.
    PipelineCoverageToColorStateCreateInfoNV -> Word32
coverageToColorLocation :: Word32
  }
  deriving (Typeable, PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateInfoNV -> Bool
(PipelineCoverageToColorStateCreateInfoNV
 -> PipelineCoverageToColorStateCreateInfoNV -> Bool)
-> (PipelineCoverageToColorStateCreateInfoNV
    -> PipelineCoverageToColorStateCreateInfoNV -> Bool)
-> Eq PipelineCoverageToColorStateCreateInfoNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateInfoNV -> Bool
$c/= :: PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateInfoNV -> Bool
== :: PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateInfoNV -> Bool
$c== :: PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateInfoNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PipelineCoverageToColorStateCreateInfoNV)
#endif
deriving instance Show PipelineCoverageToColorStateCreateInfoNV

instance ToCStruct PipelineCoverageToColorStateCreateInfoNV where
  withCStruct :: PipelineCoverageToColorStateCreateInfoNV
-> (Ptr PipelineCoverageToColorStateCreateInfoNV -> IO b) -> IO b
withCStruct x :: PipelineCoverageToColorStateCreateInfoNV
x f :: Ptr PipelineCoverageToColorStateCreateInfoNV -> IO b
f = Int
-> Int
-> (Ptr PipelineCoverageToColorStateCreateInfoNV -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 32 8 ((Ptr PipelineCoverageToColorStateCreateInfoNV -> IO b) -> IO b)
-> (Ptr PipelineCoverageToColorStateCreateInfoNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PipelineCoverageToColorStateCreateInfoNV
p -> Ptr PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateInfoNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineCoverageToColorStateCreateInfoNV
p PipelineCoverageToColorStateCreateInfoNV
x (Ptr PipelineCoverageToColorStateCreateInfoNV -> IO b
f Ptr PipelineCoverageToColorStateCreateInfoNV
p)
  pokeCStruct :: Ptr PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateInfoNV -> IO b -> IO b
pokeCStruct p :: Ptr PipelineCoverageToColorStateCreateInfoNV
p PipelineCoverageToColorStateCreateInfoNV{..} f :: IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV
-> Int -> Ptr PipelineCoverageToColorStateCreateFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr PipelineCoverageToColorStateCreateFlagsNV)) (PipelineCoverageToColorStateCreateFlagsNV
flags)
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
coverageToColorEnable))
    Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Word32)) (Word32
coverageToColorLocation)
    IO b
f
  cStructSize :: Int
cStructSize = 32
  cStructAlignment :: Int
cStructAlignment = 8
  pokeZeroCStruct :: Ptr PipelineCoverageToColorStateCreateInfoNV -> IO b -> IO b
pokeZeroCStruct p :: Ptr PipelineCoverageToColorStateCreateInfoNV
p f :: IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    IO b
f

instance FromCStruct PipelineCoverageToColorStateCreateInfoNV where
  peekCStruct :: Ptr PipelineCoverageToColorStateCreateInfoNV
-> IO PipelineCoverageToColorStateCreateInfoNV
peekCStruct p :: Ptr PipelineCoverageToColorStateCreateInfoNV
p = do
    PipelineCoverageToColorStateCreateFlagsNV
flags <- Ptr PipelineCoverageToColorStateCreateFlagsNV
-> IO PipelineCoverageToColorStateCreateFlagsNV
forall a. Storable a => Ptr a -> IO a
peek @PipelineCoverageToColorStateCreateFlagsNV ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV
-> Int -> Ptr PipelineCoverageToColorStateCreateFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr PipelineCoverageToColorStateCreateFlagsNV))
    Bool32
coverageToColorEnable <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32))
    Word32
coverageToColorLocation <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PipelineCoverageToColorStateCreateInfoNV
p Ptr PipelineCoverageToColorStateCreateInfoNV -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Word32))
    PipelineCoverageToColorStateCreateInfoNV
-> IO PipelineCoverageToColorStateCreateInfoNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PipelineCoverageToColorStateCreateInfoNV
 -> IO PipelineCoverageToColorStateCreateInfoNV)
-> PipelineCoverageToColorStateCreateInfoNV
-> IO PipelineCoverageToColorStateCreateInfoNV
forall a b. (a -> b) -> a -> b
$ PipelineCoverageToColorStateCreateFlagsNV
-> Bool -> Word32 -> PipelineCoverageToColorStateCreateInfoNV
PipelineCoverageToColorStateCreateInfoNV
             PipelineCoverageToColorStateCreateFlagsNV
flags (Bool32 -> Bool
bool32ToBool Bool32
coverageToColorEnable) Word32
coverageToColorLocation

instance Storable PipelineCoverageToColorStateCreateInfoNV where
  sizeOf :: PipelineCoverageToColorStateCreateInfoNV -> Int
sizeOf ~PipelineCoverageToColorStateCreateInfoNV
_ = 32
  alignment :: PipelineCoverageToColorStateCreateInfoNV -> Int
alignment ~PipelineCoverageToColorStateCreateInfoNV
_ = 8
  peek :: Ptr PipelineCoverageToColorStateCreateInfoNV
-> IO PipelineCoverageToColorStateCreateInfoNV
peek = Ptr PipelineCoverageToColorStateCreateInfoNV
-> IO PipelineCoverageToColorStateCreateInfoNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
  poke :: Ptr PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateInfoNV -> IO ()
poke ptr :: Ptr PipelineCoverageToColorStateCreateInfoNV
ptr poked :: PipelineCoverageToColorStateCreateInfoNV
poked = Ptr PipelineCoverageToColorStateCreateInfoNV
-> PipelineCoverageToColorStateCreateInfoNV -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineCoverageToColorStateCreateInfoNV
ptr PipelineCoverageToColorStateCreateInfoNV
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())

instance Zero PipelineCoverageToColorStateCreateInfoNV where
  zero :: PipelineCoverageToColorStateCreateInfoNV
zero = PipelineCoverageToColorStateCreateFlagsNV
-> Bool -> Word32 -> PipelineCoverageToColorStateCreateInfoNV
PipelineCoverageToColorStateCreateInfoNV
           PipelineCoverageToColorStateCreateFlagsNV
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Word32
forall a. Zero a => a
zero


-- | VkPipelineCoverageToColorStateCreateFlagsNV - Reserved for future use
--
-- = Description
--
-- 'PipelineCoverageToColorStateCreateFlagsNV' is a bitmask type for
-- setting a mask, but is currently reserved for future use.
--
-- = See Also
--
-- 'PipelineCoverageToColorStateCreateInfoNV'
newtype PipelineCoverageToColorStateCreateFlagsNV = PipelineCoverageToColorStateCreateFlagsNV Flags
  deriving newtype (PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
(PipelineCoverageToColorStateCreateFlagsNV
 -> PipelineCoverageToColorStateCreateFlagsNV -> Bool)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV -> Bool)
-> Eq PipelineCoverageToColorStateCreateFlagsNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
$c/= :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
== :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
$c== :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
Eq, Eq PipelineCoverageToColorStateCreateFlagsNV
Eq PipelineCoverageToColorStateCreateFlagsNV =>
(PipelineCoverageToColorStateCreateFlagsNV
 -> PipelineCoverageToColorStateCreateFlagsNV -> Ordering)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV -> Bool)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV -> Bool)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV -> Bool)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV -> Bool)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV)
-> Ord PipelineCoverageToColorStateCreateFlagsNV
PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Ordering
PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
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 :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
$cmin :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
max :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
$cmax :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
>= :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
$c>= :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
> :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
$c> :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
<= :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
$c<= :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
< :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
$c< :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Bool
compare :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Ordering
$ccompare :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> Ordering
$cp1Ord :: Eq PipelineCoverageToColorStateCreateFlagsNV
Ord, Ptr b -> Int -> IO PipelineCoverageToColorStateCreateFlagsNV
Ptr b -> Int -> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
Ptr PipelineCoverageToColorStateCreateFlagsNV
-> IO PipelineCoverageToColorStateCreateFlagsNV
Ptr PipelineCoverageToColorStateCreateFlagsNV
-> Int -> IO PipelineCoverageToColorStateCreateFlagsNV
Ptr PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
Ptr PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
PipelineCoverageToColorStateCreateFlagsNV -> Int
(PipelineCoverageToColorStateCreateFlagsNV -> Int)
-> (PipelineCoverageToColorStateCreateFlagsNV -> Int)
-> (Ptr PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> IO PipelineCoverageToColorStateCreateFlagsNV)
-> (Ptr PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV -> IO ())
-> (forall b.
    Ptr b -> Int -> IO PipelineCoverageToColorStateCreateFlagsNV)
-> (forall b.
    Ptr b -> Int -> PipelineCoverageToColorStateCreateFlagsNV -> IO ())
-> (Ptr PipelineCoverageToColorStateCreateFlagsNV
    -> IO PipelineCoverageToColorStateCreateFlagsNV)
-> (Ptr PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV -> IO ())
-> Storable PipelineCoverageToColorStateCreateFlagsNV
forall b.
Ptr b -> Int -> IO PipelineCoverageToColorStateCreateFlagsNV
forall b.
Ptr b -> Int -> PipelineCoverageToColorStateCreateFlagsNV -> 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 PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
$cpoke :: Ptr PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
peek :: Ptr PipelineCoverageToColorStateCreateFlagsNV
-> IO PipelineCoverageToColorStateCreateFlagsNV
$cpeek :: Ptr PipelineCoverageToColorStateCreateFlagsNV
-> IO PipelineCoverageToColorStateCreateFlagsNV
pokeByteOff :: Ptr b -> Int -> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
$cpokeByteOff :: forall b.
Ptr b -> Int -> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
peekByteOff :: Ptr b -> Int -> IO PipelineCoverageToColorStateCreateFlagsNV
$cpeekByteOff :: forall b.
Ptr b -> Int -> IO PipelineCoverageToColorStateCreateFlagsNV
pokeElemOff :: Ptr PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
$cpokeElemOff :: Ptr PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV -> IO ()
peekElemOff :: Ptr PipelineCoverageToColorStateCreateFlagsNV
-> Int -> IO PipelineCoverageToColorStateCreateFlagsNV
$cpeekElemOff :: Ptr PipelineCoverageToColorStateCreateFlagsNV
-> Int -> IO PipelineCoverageToColorStateCreateFlagsNV
alignment :: PipelineCoverageToColorStateCreateFlagsNV -> Int
$calignment :: PipelineCoverageToColorStateCreateFlagsNV -> Int
sizeOf :: PipelineCoverageToColorStateCreateFlagsNV -> Int
$csizeOf :: PipelineCoverageToColorStateCreateFlagsNV -> Int
Storable, PipelineCoverageToColorStateCreateFlagsNV
PipelineCoverageToColorStateCreateFlagsNV
-> Zero PipelineCoverageToColorStateCreateFlagsNV
forall a. a -> Zero a
zero :: PipelineCoverageToColorStateCreateFlagsNV
$czero :: PipelineCoverageToColorStateCreateFlagsNV
Zero, Eq PipelineCoverageToColorStateCreateFlagsNV
PipelineCoverageToColorStateCreateFlagsNV
Eq PipelineCoverageToColorStateCreateFlagsNV =>
(PipelineCoverageToColorStateCreateFlagsNV
 -> PipelineCoverageToColorStateCreateFlagsNV
 -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> PipelineCoverageToColorStateCreateFlagsNV
-> (Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV -> Int -> Bool)
-> (PipelineCoverageToColorStateCreateFlagsNV -> Maybe Int)
-> (PipelineCoverageToColorStateCreateFlagsNV -> Int)
-> (PipelineCoverageToColorStateCreateFlagsNV -> Bool)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV
    -> Int -> PipelineCoverageToColorStateCreateFlagsNV)
-> (PipelineCoverageToColorStateCreateFlagsNV -> Int)
-> Bits PipelineCoverageToColorStateCreateFlagsNV
Int -> PipelineCoverageToColorStateCreateFlagsNV
PipelineCoverageToColorStateCreateFlagsNV -> Bool
PipelineCoverageToColorStateCreateFlagsNV -> Int
PipelineCoverageToColorStateCreateFlagsNV -> Maybe Int
PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
PipelineCoverageToColorStateCreateFlagsNV -> Int -> Bool
PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
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 :: PipelineCoverageToColorStateCreateFlagsNV -> Int
$cpopCount :: PipelineCoverageToColorStateCreateFlagsNV -> Int
rotateR :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$crotateR :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
rotateL :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$crotateL :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
unsafeShiftR :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$cunsafeShiftR :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
shiftR :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$cshiftR :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
unsafeShiftL :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$cunsafeShiftL :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
shiftL :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$cshiftL :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
isSigned :: PipelineCoverageToColorStateCreateFlagsNV -> Bool
$cisSigned :: PipelineCoverageToColorStateCreateFlagsNV -> Bool
bitSize :: PipelineCoverageToColorStateCreateFlagsNV -> Int
$cbitSize :: PipelineCoverageToColorStateCreateFlagsNV -> Int
bitSizeMaybe :: PipelineCoverageToColorStateCreateFlagsNV -> Maybe Int
$cbitSizeMaybe :: PipelineCoverageToColorStateCreateFlagsNV -> Maybe Int
testBit :: PipelineCoverageToColorStateCreateFlagsNV -> Int -> Bool
$ctestBit :: PipelineCoverageToColorStateCreateFlagsNV -> Int -> Bool
complementBit :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$ccomplementBit :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
clearBit :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$cclearBit :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
setBit :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$csetBit :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
bit :: Int -> PipelineCoverageToColorStateCreateFlagsNV
$cbit :: Int -> PipelineCoverageToColorStateCreateFlagsNV
zeroBits :: PipelineCoverageToColorStateCreateFlagsNV
$czeroBits :: PipelineCoverageToColorStateCreateFlagsNV
rotate :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$crotate :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
shift :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
$cshift :: PipelineCoverageToColorStateCreateFlagsNV
-> Int -> PipelineCoverageToColorStateCreateFlagsNV
complement :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
$ccomplement :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
xor :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
$cxor :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
.|. :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
$c.|. :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
.&. :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
$c.&. :: PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
-> PipelineCoverageToColorStateCreateFlagsNV
$cp1Bits :: Eq PipelineCoverageToColorStateCreateFlagsNV
Bits)



instance Show PipelineCoverageToColorStateCreateFlagsNV where
  showsPrec :: Int -> PipelineCoverageToColorStateCreateFlagsNV -> ShowS
showsPrec p :: Int
p = \case
    PipelineCoverageToColorStateCreateFlagsNV x :: Word32
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "PipelineCoverageToColorStateCreateFlagsNV 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word32 -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Word32
x)

instance Read PipelineCoverageToColorStateCreateFlagsNV where
  readPrec :: ReadPrec PipelineCoverageToColorStateCreateFlagsNV
readPrec = ReadPrec PipelineCoverageToColorStateCreateFlagsNV
-> ReadPrec PipelineCoverageToColorStateCreateFlagsNV
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec PipelineCoverageToColorStateCreateFlagsNV)]
-> ReadPrec PipelineCoverageToColorStateCreateFlagsNV
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose []
                     ReadPrec PipelineCoverageToColorStateCreateFlagsNV
-> ReadPrec PipelineCoverageToColorStateCreateFlagsNV
-> ReadPrec PipelineCoverageToColorStateCreateFlagsNV
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec PipelineCoverageToColorStateCreateFlagsNV
-> ReadPrec PipelineCoverageToColorStateCreateFlagsNV
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "PipelineCoverageToColorStateCreateFlagsNV")
                       Word32
v <- ReadPrec Word32 -> ReadPrec Word32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Word32
forall a. Read a => ReadPrec a
readPrec
                       PipelineCoverageToColorStateCreateFlagsNV
-> ReadPrec PipelineCoverageToColorStateCreateFlagsNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Word32 -> PipelineCoverageToColorStateCreateFlagsNV
PipelineCoverageToColorStateCreateFlagsNV Word32
v)))


type NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION = 1

-- No documentation found for TopLevel "VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION"
pattern NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION :: forall a . Integral a => a
pattern $bNV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION :: a
$mNV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION = 1


type NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME = "VK_NV_fragment_coverage_to_color"

-- No documentation found for TopLevel "VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME"
pattern NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bNV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME :: a
$mNV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME = "VK_NV_fragment_coverage_to_color"