{-# language CPP #-}
-- | = Name
--
-- VK_NV_fragment_coverage_to_color - device extension
--
-- == VK_NV_fragment_coverage_to_color
--
-- [__Name String__]
--     @VK_NV_fragment_coverage_to_color@
--
-- [__Extension Type__]
--     Device extension
--
-- [__Registered Extension Number__]
--     150
--
-- [__Revision__]
--     1
--
-- [__Extension and Version Dependencies__]
--
--     -   Requires Vulkan 1.0
--
-- [__Contact__]
--
--     -   Jeff Bolz
--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NV_fragment_coverage_to_color:%20&body=@jeffbolznv%20 >
--
-- == Other Extension Metadata
--
-- [__Last Modified Date__]
--     2017-05-21
--
-- [__Contributors__]
--
--     -   Jeff Bolz, NVIDIA
--
-- == Description
--
-- This extension allows the fragment coverage value, represented as an
-- integer bitmask, to be substituted for a color output being written to a
-- single-component color attachment with integer components (e.g.
-- 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'). The functionality provided
-- by this extension is different from simply writing the
-- 'Vulkan.Core10.FundamentalTypes.SampleMask' fragment shader output, in
-- that the coverage value written to the framebuffer is taken after
-- stencil test and depth test, as well as after fragment operations such
-- as alpha-to-coverage.
--
-- This functionality may be useful for deferred rendering algorithms,
-- where the second pass needs to know which samples belong to which
-- original fragments.
--
-- == New Structures
--
-- -   Extending
--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo':
--
--     -   'PipelineCoverageToColorStateCreateInfoNV'
--
-- == New Bitmasks
--
-- -   'PipelineCoverageToColorStateCreateFlagsNV'
--
-- == New Enum Constants
--
-- -   'NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME'
--
-- -   'NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION'
--
-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV'
--
-- == Version History
--
-- -   Revision 1, 2017-05-21 (Jeff Bolz)
--
--     -   Internal revisions
--
-- = See Also
--
-- 'PipelineCoverageToColorStateCreateFlagsNV',
-- 'PipelineCoverageToColorStateCreateInfoNV'
--
-- = Document Notes
--
-- For more information, see the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification>
--
-- This page is a generated document. Fixes and changes should be made to
-- the generator scripts, not directly.
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 Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Foreign.Marshal.Alloc (allocaBytesAligned)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showString)
import Numeric (showHex)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
import Vulkan.Zero (Zero(..))
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
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 GHC.Show (Show(showsPrec))
import Data.Word (Word32)
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.Core10.Enums.StructureType (StructureType)
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
--
-- -   #VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404#
--     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)
--
-- -   #VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sType#
--     @sType@ /must/ be
--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV'
--
-- -   #VUID-VkPipelineCoverageToColorStateCreateInfoNV-flags-zerobitmask#
--     @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, Bits PipelineCoverageToColorStateCreateFlagsNV
Bits PipelineCoverageToColorStateCreateFlagsNV =>
(PipelineCoverageToColorStateCreateFlagsNV -> Int)
-> (PipelineCoverageToColorStateCreateFlagsNV -> Int)
-> (PipelineCoverageToColorStateCreateFlagsNV -> Int)
-> FiniteBits PipelineCoverageToColorStateCreateFlagsNV
PipelineCoverageToColorStateCreateFlagsNV -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: PipelineCoverageToColorStateCreateFlagsNV -> Int
$ccountTrailingZeros :: PipelineCoverageToColorStateCreateFlagsNV -> Int
countLeadingZeros :: PipelineCoverageToColorStateCreateFlagsNV -> Int
$ccountLeadingZeros :: PipelineCoverageToColorStateCreateFlagsNV -> Int
finiteBitSize :: PipelineCoverageToColorStateCreateFlagsNV -> Int
$cfiniteBitSize :: PipelineCoverageToColorStateCreateFlagsNV -> Int
$cp1FiniteBits :: Bits PipelineCoverageToColorStateCreateFlagsNV
FiniteBits)



conNamePipelineCoverageToColorStateCreateFlagsNV :: String
conNamePipelineCoverageToColorStateCreateFlagsNV :: String
conNamePipelineCoverageToColorStateCreateFlagsNV = "PipelineCoverageToColorStateCreateFlagsNV"

enumPrefixPipelineCoverageToColorStateCreateFlagsNV :: String
enumPrefixPipelineCoverageToColorStateCreateFlagsNV :: String
enumPrefixPipelineCoverageToColorStateCreateFlagsNV = ""

showTablePipelineCoverageToColorStateCreateFlagsNV :: [(PipelineCoverageToColorStateCreateFlagsNV, String)]
showTablePipelineCoverageToColorStateCreateFlagsNV :: [(PipelineCoverageToColorStateCreateFlagsNV, String)]
showTablePipelineCoverageToColorStateCreateFlagsNV = []

instance Show PipelineCoverageToColorStateCreateFlagsNV where
  showsPrec :: Int -> PipelineCoverageToColorStateCreateFlagsNV -> ShowS
showsPrec = String
-> [(PipelineCoverageToColorStateCreateFlagsNV, String)]
-> String
-> (PipelineCoverageToColorStateCreateFlagsNV -> Word32)
-> (Word32 -> ShowS)
-> Int
-> PipelineCoverageToColorStateCreateFlagsNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixPipelineCoverageToColorStateCreateFlagsNV
                            [(PipelineCoverageToColorStateCreateFlagsNV, String)]
showTablePipelineCoverageToColorStateCreateFlagsNV
                            String
conNamePipelineCoverageToColorStateCreateFlagsNV
                            (\(PipelineCoverageToColorStateCreateFlagsNV x :: Word32
x) -> Word32
x)
                            (\x :: Word32
x -> String -> ShowS
showString "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 = String
-> [(PipelineCoverageToColorStateCreateFlagsNV, String)]
-> String
-> (Word32 -> PipelineCoverageToColorStateCreateFlagsNV)
-> ReadPrec PipelineCoverageToColorStateCreateFlagsNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixPipelineCoverageToColorStateCreateFlagsNV
                          [(PipelineCoverageToColorStateCreateFlagsNV, String)]
showTablePipelineCoverageToColorStateCreateFlagsNV
                          String
conNamePipelineCoverageToColorStateCreateFlagsNV
                          Word32 -> PipelineCoverageToColorStateCreateFlagsNV
PipelineCoverageToColorStateCreateFlagsNV


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"