{-# language CPP #-}
module Vulkan.Extensions.VK_NV_fragment_shading_rate_enums ( cmdSetFragmentShadingRateEnumNV
, PhysicalDeviceFragmentShadingRateEnumsFeaturesNV(..)
, PhysicalDeviceFragmentShadingRateEnumsPropertiesNV(..)
, PipelineFragmentShadingRateEnumStateCreateInfoNV(..)
, FragmentShadingRateNV( FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV
, FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV
, FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV
, FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV
, FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV
, FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV
, FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV
, FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV
, FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV
, FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV
, FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV
, FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
, ..
)
, FragmentShadingRateTypeNV( FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV
, FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV
, ..
)
, NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION
, pattern NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION
, NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME
, pattern NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME
, FragmentShadingRateCombinerOpKHR(..)
) where
import Vulkan.CStruct.Utils (FixedArray)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Foreign.Marshal.Alloc (allocaBytesAligned)
import GHC.IO (throwIO)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showsPrec)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Control.Monad.IO.Class (MonadIO)
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 GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Data.Int (Int32)
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.CStruct.Utils (lowerArrayPtr)
import Vulkan.NamedType ((:::))
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer_T)
import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFragmentShadingRateEnumNV))
import Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateCombinerOpKHR)
import Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateCombinerOpKHR(..))
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)
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_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV))
import Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateCombinerOpKHR(..))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdSetFragmentShadingRateEnumNV
:: FunPtr (Ptr CommandBuffer_T -> FragmentShadingRateNV -> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR) -> IO ()) -> Ptr CommandBuffer_T -> FragmentShadingRateNV -> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR) -> IO ()
cmdSetFragmentShadingRateEnumNV :: forall io
. (MonadIO io)
=>
CommandBuffer
->
FragmentShadingRateNV
->
("combinerOps" ::: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR))
-> io ()
cmdSetFragmentShadingRateEnumNV :: CommandBuffer
-> FragmentShadingRateNV
-> ("combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR))
-> io ()
cmdSetFragmentShadingRateEnumNV commandBuffer :: CommandBuffer
commandBuffer shadingRate :: FragmentShadingRateNV
shadingRate combinerOps :: "combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
combinerOps = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdSetFragmentShadingRateEnumNVPtr :: FunPtr
(Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
vkCmdSetFragmentShadingRateEnumNVPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
pVkCmdSetFragmentShadingRateEnumNV (CommandBuffer -> DeviceCmds
deviceCmds (CommandBuffer
commandBuffer :: CommandBuffer))
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
vkCmdSetFragmentShadingRateEnumNVPtr FunPtr
(Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument "" "The function pointer for vkCmdSetFragmentShadingRateEnumNV is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdSetFragmentShadingRateEnumNV' :: Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ()
vkCmdSetFragmentShadingRateEnumNV' = FunPtr
(Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
-> Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ()
mkVkCmdSetFragmentShadingRateEnumNV FunPtr
(Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
vkCmdSetFragmentShadingRateEnumNVPtr
"combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
pCombinerOps <- ((("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
-> IO ())
-> ContT
()
IO
("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
-> IO ())
-> ContT
()
IO
("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))
-> ((("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
-> IO ())
-> ContT
()
IO
("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
forall a b. (a -> b) -> a -> b
$ Int
-> Int
-> (("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ())
-> IO ()
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned @(FixedArray 2 FragmentShadingRateCombinerOpKHR) 8 4
let pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' = ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> Ptr FragmentShadingRateCombinerOpKHR
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr "combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
pCombinerOps
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ case ("combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
combinerOps) of
(e0 :: FragmentShadingRateCombinerOpKHR
e0, e1 :: FragmentShadingRateCombinerOpKHR
e1) -> do
Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (FragmentShadingRateCombinerOpKHR
e0)
Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' Ptr FragmentShadingRateCombinerOpKHR
-> Int -> Ptr FragmentShadingRateCombinerOpKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (FragmentShadingRateCombinerOpKHR
e1)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent "vkCmdSetFragmentShadingRateEnumNV" (Ptr CommandBuffer_T
-> FragmentShadingRateNV
-> ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> IO ()
vkCmdSetFragmentShadingRateEnumNV' (CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer)) (FragmentShadingRateNV
shadingRate) ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
pCombinerOps))
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
data PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
{
PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool
fragmentShadingRateEnums :: Bool
,
PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool
supersampleFragmentShadingRates :: Bool
,
PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool
noInvocationFragmentShadingRates :: Bool
}
deriving (Typeable, PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool
(PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool)
-> (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool)
-> Eq PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool
$c/= :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool
== :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool
$c== :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV)
#endif
deriving instance Show PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
instance ToCStruct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV where
withCStruct :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> (Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> IO b)
-> IO b
withCStruct x :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
x f :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> IO b
f = Int
-> Int
-> (Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 32 8 ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p -> Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
x (Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> IO b
f Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p)
pokeCStruct :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> IO b -> IO b
pokeCStruct p :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p PhysicalDeviceFragmentShadingRateEnumsFeaturesNV{..} f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> 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 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentShadingRateEnums))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
supersampleFragmentShadingRates))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
noInvocationFragmentShadingRates))
IO b
f
cStructSize :: Int
cStructSize = 32
cStructAlignment :: Int
cStructAlignment = 8
pokeZeroCStruct :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> IO b -> IO b
pokeZeroCStruct p :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> 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 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> 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))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV where
peekCStruct :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
peekCStruct p :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p = do
Bool32
fragmentShadingRateEnums <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32))
Bool32
supersampleFragmentShadingRates <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32))
Bool32
noInvocationFragmentShadingRates <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Bool32))
PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsFeaturesNV)
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
forall a b. (a -> b) -> a -> b
$ Bool
-> Bool -> Bool -> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
(Bool32 -> Bool
bool32ToBool Bool32
fragmentShadingRateEnums) (Bool32 -> Bool
bool32ToBool Bool32
supersampleFragmentShadingRates) (Bool32 -> Bool
bool32ToBool Bool32
noInvocationFragmentShadingRates)
instance Storable PhysicalDeviceFragmentShadingRateEnumsFeaturesNV where
sizeOf :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Int
sizeOf ~PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
_ = 32
alignment :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> Int
alignment ~PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
_ = 8
peek :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
peek = Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV -> IO ()
poke ptr :: Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
ptr poked :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
poked = Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
-> IO ()
-> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
ptr PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceFragmentShadingRateEnumsFeaturesNV where
zero :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
zero = Bool
-> Bool -> Bool -> PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
{
PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> SampleCountFlagBits
maxFragmentShadingRateInvocationCount :: SampleCountFlagBits }
deriving (Typeable, PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> Bool
(PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> Bool)
-> (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> Bool)
-> Eq PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> Bool
$c/= :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> Bool
== :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> Bool
$c== :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV)
#endif
deriving instance Show PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
instance ToCStruct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV where
withCStruct :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> (Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> IO b)
-> IO b
withCStruct x :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
x f :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> IO b
f = Int
-> Int
-> (Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 24 8 ((Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p -> Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
x (Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> IO b
f Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p)
pokeCStruct :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO b
-> IO b
pokeCStruct p :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p PhysicalDeviceFragmentShadingRateEnumsPropertiesNV{..} f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr SampleCountFlagBits -> SampleCountFlagBits -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> Int -> Ptr SampleCountFlagBits
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr SampleCountFlagBits)) (SampleCountFlagBits
maxFragmentShadingRateInvocationCount)
IO b
f
cStructSize :: Int
cStructSize = 24
cStructAlignment :: Int
cStructAlignment = 8
pokeZeroCStruct :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO b -> IO b
pokeZeroCStruct p :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr SampleCountFlagBits -> SampleCountFlagBits -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> Int -> Ptr SampleCountFlagBits
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr SampleCountFlagBits)) (SampleCountFlagBits
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV where
peekCStruct :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
peekCStruct p :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p = do
SampleCountFlagBits
maxFragmentShadingRateInvocationCount <- Ptr SampleCountFlagBits -> IO SampleCountFlagBits
forall a. Storable a => Ptr a -> IO a
peek @SampleCountFlagBits ((Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
p Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> Int -> Ptr SampleCountFlagBits
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr SampleCountFlagBits))
PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsPropertiesNV)
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
forall a b. (a -> b) -> a -> b
$ SampleCountFlagBits
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
SampleCountFlagBits
maxFragmentShadingRateInvocationCount
instance Storable PhysicalDeviceFragmentShadingRateEnumsPropertiesNV where
sizeOf :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> Int
sizeOf ~PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
_ = 24
alignment :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> Int
alignment ~PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
_ = 8
peek :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
peek = Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV -> IO ()
poke ptr :: Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
ptr poked :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
poked = Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
-> IO ()
-> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
ptr PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceFragmentShadingRateEnumsPropertiesNV where
zero :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
zero = SampleCountFlagBits
-> PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
SampleCountFlagBits
forall a. Zero a => a
zero
data PipelineFragmentShadingRateEnumStateCreateInfoNV = PipelineFragmentShadingRateEnumStateCreateInfoNV
{
PipelineFragmentShadingRateEnumStateCreateInfoNV
-> FragmentShadingRateTypeNV
shadingRateType :: FragmentShadingRateTypeNV
,
PipelineFragmentShadingRateEnumStateCreateInfoNV
-> FragmentShadingRateNV
shadingRate :: FragmentShadingRateNV
,
PipelineFragmentShadingRateEnumStateCreateInfoNV
-> "combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
combinerOps :: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR)
}
deriving (Typeable, PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> Bool
(PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> Bool)
-> (PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> Bool)
-> Eq PipelineFragmentShadingRateEnumStateCreateInfoNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> Bool
$c/= :: PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> Bool
== :: PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> Bool
$c== :: PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PipelineFragmentShadingRateEnumStateCreateInfoNV)
#endif
deriving instance Show PipelineFragmentShadingRateEnumStateCreateInfoNV
instance ToCStruct PipelineFragmentShadingRateEnumStateCreateInfoNV where
withCStruct :: PipelineFragmentShadingRateEnumStateCreateInfoNV
-> (Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV -> IO b)
-> IO b
withCStruct x :: PipelineFragmentShadingRateEnumStateCreateInfoNV
x f :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV -> IO b
f = Int
-> Int
-> (Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 32 8 ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV -> IO b)
-> IO b)
-> (Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p -> Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p PipelineFragmentShadingRateEnumStateCreateInfoNV
x (Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV -> IO b
f Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p)
pokeCStruct :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> IO b -> IO b
pokeCStruct p :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p PipelineFragmentShadingRateEnumStateCreateInfoNV{..} f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr FragmentShadingRateTypeNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr FragmentShadingRateTypeNV)) (FragmentShadingRateTypeNV
shadingRateType)
Ptr FragmentShadingRateNV -> FragmentShadingRateNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr FragmentShadingRateNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr FragmentShadingRateNV)) (FragmentShadingRateNV
shadingRate)
let pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' = ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> Ptr FragmentShadingRateCombinerOpKHR
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int
-> "combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))
case ("combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
combinerOps) of
(e0 :: FragmentShadingRateCombinerOpKHR
e0, e1 :: FragmentShadingRateCombinerOpKHR
e1) -> do
Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (FragmentShadingRateCombinerOpKHR
e0)
Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' Ptr FragmentShadingRateCombinerOpKHR
-> Int -> Ptr FragmentShadingRateCombinerOpKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (FragmentShadingRateCombinerOpKHR
e1)
IO b
f
cStructSize :: Int
cStructSize = 32
cStructAlignment :: Int
cStructAlignment = 8
pokeZeroCStruct :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> IO b -> IO b
pokeZeroCStruct p :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr FragmentShadingRateTypeNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr FragmentShadingRateTypeNV)) (FragmentShadingRateTypeNV
forall a. Zero a => a
zero)
Ptr FragmentShadingRateNV -> FragmentShadingRateNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr FragmentShadingRateNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr FragmentShadingRateNV)) (FragmentShadingRateNV
forall a. Zero a => a
zero)
let pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' = ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> Ptr FragmentShadingRateCombinerOpKHR
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int
-> "combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))
case ((FragmentShadingRateCombinerOpKHR
forall a. Zero a => a
zero, FragmentShadingRateCombinerOpKHR
forall a. Zero a => a
zero)) of
(e0 :: FragmentShadingRateCombinerOpKHR
e0, e1 :: FragmentShadingRateCombinerOpKHR
e1) -> do
Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (FragmentShadingRateCombinerOpKHR
e0)
Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' Ptr FragmentShadingRateCombinerOpKHR
-> Int -> Ptr FragmentShadingRateCombinerOpKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (FragmentShadingRateCombinerOpKHR
e1)
IO b
f
instance FromCStruct PipelineFragmentShadingRateEnumStateCreateInfoNV where
peekCStruct :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> IO PipelineFragmentShadingRateEnumStateCreateInfoNV
peekCStruct p :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p = do
FragmentShadingRateTypeNV
shadingRateType <- Ptr FragmentShadingRateTypeNV -> IO FragmentShadingRateTypeNV
forall a. Storable a => Ptr a -> IO a
peek @FragmentShadingRateTypeNV ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr FragmentShadingRateTypeNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr FragmentShadingRateTypeNV))
FragmentShadingRateNV
shadingRate <- Ptr FragmentShadingRateNV -> IO FragmentShadingRateNV
forall a. Storable a => Ptr a -> IO a
peek @FragmentShadingRateNV ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int -> Ptr FragmentShadingRateNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr FragmentShadingRateNV))
let pcombinerOps :: Ptr FragmentShadingRateCombinerOpKHR
pcombinerOps = ("combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR))
-> Ptr FragmentShadingRateCombinerOpKHR
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr @FragmentShadingRateCombinerOpKHR ((Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
p Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> Int
-> "combinerOps"
::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))
FragmentShadingRateCombinerOpKHR
combinerOps0 <- Ptr FragmentShadingRateCombinerOpKHR
-> IO FragmentShadingRateCombinerOpKHR
forall a. Storable a => Ptr a -> IO a
peek @FragmentShadingRateCombinerOpKHR ((Ptr FragmentShadingRateCombinerOpKHR
pcombinerOps Ptr FragmentShadingRateCombinerOpKHR
-> Int -> Ptr FragmentShadingRateCombinerOpKHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` 0 :: Ptr FragmentShadingRateCombinerOpKHR))
FragmentShadingRateCombinerOpKHR
combinerOps1 <- Ptr FragmentShadingRateCombinerOpKHR
-> IO FragmentShadingRateCombinerOpKHR
forall a. Storable a => Ptr a -> IO a
peek @FragmentShadingRateCombinerOpKHR ((Ptr FragmentShadingRateCombinerOpKHR
pcombinerOps Ptr FragmentShadingRateCombinerOpKHR
-> Int -> Ptr FragmentShadingRateCombinerOpKHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` 4 :: Ptr FragmentShadingRateCombinerOpKHR))
PipelineFragmentShadingRateEnumStateCreateInfoNV
-> IO PipelineFragmentShadingRateEnumStateCreateInfoNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PipelineFragmentShadingRateEnumStateCreateInfoNV
-> IO PipelineFragmentShadingRateEnumStateCreateInfoNV)
-> PipelineFragmentShadingRateEnumStateCreateInfoNV
-> IO PipelineFragmentShadingRateEnumStateCreateInfoNV
forall a b. (a -> b) -> a -> b
$ FragmentShadingRateTypeNV
-> FragmentShadingRateNV
-> ("combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR))
-> PipelineFragmentShadingRateEnumStateCreateInfoNV
PipelineFragmentShadingRateEnumStateCreateInfoNV
FragmentShadingRateTypeNV
shadingRateType FragmentShadingRateNV
shadingRate ((FragmentShadingRateCombinerOpKHR
combinerOps0, FragmentShadingRateCombinerOpKHR
combinerOps1))
instance Storable PipelineFragmentShadingRateEnumStateCreateInfoNV where
sizeOf :: PipelineFragmentShadingRateEnumStateCreateInfoNV -> Int
sizeOf ~PipelineFragmentShadingRateEnumStateCreateInfoNV
_ = 32
alignment :: PipelineFragmentShadingRateEnumStateCreateInfoNV -> Int
alignment ~PipelineFragmentShadingRateEnumStateCreateInfoNV
_ = 8
peek :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> IO PipelineFragmentShadingRateEnumStateCreateInfoNV
peek = Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> IO PipelineFragmentShadingRateEnumStateCreateInfoNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV -> IO ()
poke ptr :: Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
ptr poked :: PipelineFragmentShadingRateEnumStateCreateInfoNV
poked = Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
-> PipelineFragmentShadingRateEnumStateCreateInfoNV
-> IO ()
-> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
ptr PipelineFragmentShadingRateEnumStateCreateInfoNV
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PipelineFragmentShadingRateEnumStateCreateInfoNV where
zero :: PipelineFragmentShadingRateEnumStateCreateInfoNV
zero = FragmentShadingRateTypeNV
-> FragmentShadingRateNV
-> ("combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR))
-> PipelineFragmentShadingRateEnumStateCreateInfoNV
PipelineFragmentShadingRateEnumStateCreateInfoNV
FragmentShadingRateTypeNV
forall a. Zero a => a
zero
FragmentShadingRateNV
forall a. Zero a => a
zero
(FragmentShadingRateCombinerOpKHR
forall a. Zero a => a
zero, FragmentShadingRateCombinerOpKHR
forall a. Zero a => a
zero)
newtype FragmentShadingRateNV = FragmentShadingRateNV Int32
deriving newtype (FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
(FragmentShadingRateNV -> FragmentShadingRateNV -> Bool)
-> (FragmentShadingRateNV -> FragmentShadingRateNV -> Bool)
-> Eq FragmentShadingRateNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
$c/= :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
== :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
$c== :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
Eq, Eq FragmentShadingRateNV
Eq FragmentShadingRateNV =>
(FragmentShadingRateNV -> FragmentShadingRateNV -> Ordering)
-> (FragmentShadingRateNV -> FragmentShadingRateNV -> Bool)
-> (FragmentShadingRateNV -> FragmentShadingRateNV -> Bool)
-> (FragmentShadingRateNV -> FragmentShadingRateNV -> Bool)
-> (FragmentShadingRateNV -> FragmentShadingRateNV -> Bool)
-> (FragmentShadingRateNV
-> FragmentShadingRateNV -> FragmentShadingRateNV)
-> (FragmentShadingRateNV
-> FragmentShadingRateNV -> FragmentShadingRateNV)
-> Ord FragmentShadingRateNV
FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
FragmentShadingRateNV -> FragmentShadingRateNV -> Ordering
FragmentShadingRateNV
-> FragmentShadingRateNV -> FragmentShadingRateNV
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 :: FragmentShadingRateNV
-> FragmentShadingRateNV -> FragmentShadingRateNV
$cmin :: FragmentShadingRateNV
-> FragmentShadingRateNV -> FragmentShadingRateNV
max :: FragmentShadingRateNV
-> FragmentShadingRateNV -> FragmentShadingRateNV
$cmax :: FragmentShadingRateNV
-> FragmentShadingRateNV -> FragmentShadingRateNV
>= :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
$c>= :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
> :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
$c> :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
<= :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
$c<= :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
< :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
$c< :: FragmentShadingRateNV -> FragmentShadingRateNV -> Bool
compare :: FragmentShadingRateNV -> FragmentShadingRateNV -> Ordering
$ccompare :: FragmentShadingRateNV -> FragmentShadingRateNV -> Ordering
$cp1Ord :: Eq FragmentShadingRateNV
Ord, Ptr b -> Int -> IO FragmentShadingRateNV
Ptr b -> Int -> FragmentShadingRateNV -> IO ()
Ptr FragmentShadingRateNV -> IO FragmentShadingRateNV
Ptr FragmentShadingRateNV -> Int -> IO FragmentShadingRateNV
Ptr FragmentShadingRateNV -> Int -> FragmentShadingRateNV -> IO ()
Ptr FragmentShadingRateNV -> FragmentShadingRateNV -> IO ()
FragmentShadingRateNV -> Int
(FragmentShadingRateNV -> Int)
-> (FragmentShadingRateNV -> Int)
-> (Ptr FragmentShadingRateNV -> Int -> IO FragmentShadingRateNV)
-> (Ptr FragmentShadingRateNV
-> Int -> FragmentShadingRateNV -> IO ())
-> (forall b. Ptr b -> Int -> IO FragmentShadingRateNV)
-> (forall b. Ptr b -> Int -> FragmentShadingRateNV -> IO ())
-> (Ptr FragmentShadingRateNV -> IO FragmentShadingRateNV)
-> (Ptr FragmentShadingRateNV -> FragmentShadingRateNV -> IO ())
-> Storable FragmentShadingRateNV
forall b. Ptr b -> Int -> IO FragmentShadingRateNV
forall b. Ptr b -> Int -> FragmentShadingRateNV -> 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 FragmentShadingRateNV -> FragmentShadingRateNV -> IO ()
$cpoke :: Ptr FragmentShadingRateNV -> FragmentShadingRateNV -> IO ()
peek :: Ptr FragmentShadingRateNV -> IO FragmentShadingRateNV
$cpeek :: Ptr FragmentShadingRateNV -> IO FragmentShadingRateNV
pokeByteOff :: Ptr b -> Int -> FragmentShadingRateNV -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> FragmentShadingRateNV -> IO ()
peekByteOff :: Ptr b -> Int -> IO FragmentShadingRateNV
$cpeekByteOff :: forall b. Ptr b -> Int -> IO FragmentShadingRateNV
pokeElemOff :: Ptr FragmentShadingRateNV -> Int -> FragmentShadingRateNV -> IO ()
$cpokeElemOff :: Ptr FragmentShadingRateNV -> Int -> FragmentShadingRateNV -> IO ()
peekElemOff :: Ptr FragmentShadingRateNV -> Int -> IO FragmentShadingRateNV
$cpeekElemOff :: Ptr FragmentShadingRateNV -> Int -> IO FragmentShadingRateNV
alignment :: FragmentShadingRateNV -> Int
$calignment :: FragmentShadingRateNV -> Int
sizeOf :: FragmentShadingRateNV -> Int
$csizeOf :: FragmentShadingRateNV -> Int
Storable, FragmentShadingRateNV
FragmentShadingRateNV -> Zero FragmentShadingRateNV
forall a. a -> Zero a
zero :: FragmentShadingRateNV
$czero :: FragmentShadingRateNV
Zero)
pattern $bFRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = FragmentShadingRateNV 0
pattern $bFRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = FragmentShadingRateNV 1
pattern $bFRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = FragmentShadingRateNV 4
pattern $bFRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = FragmentShadingRateNV 5
pattern $bFRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = FragmentShadingRateNV 6
pattern $bFRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = FragmentShadingRateNV 9
pattern $bFRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = FragmentShadingRateNV 10
pattern $bFRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = FragmentShadingRateNV 11
pattern $bFRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = FragmentShadingRateNV 12
pattern $bFRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = FragmentShadingRateNV 13
pattern $bFRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = FragmentShadingRateNV 14
pattern $bFRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV :: FragmentShadingRateNV
$mFRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV :: forall r.
FragmentShadingRateNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = FragmentShadingRateNV 15
{-# complete FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,
FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,
FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,
FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,
FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,
FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV :: FragmentShadingRateNV #-}
conNameFragmentShadingRateNV :: String
conNameFragmentShadingRateNV :: String
conNameFragmentShadingRateNV = "FragmentShadingRateNV"
enumPrefixFragmentShadingRateNV :: String
enumPrefixFragmentShadingRateNV :: String
enumPrefixFragmentShadingRateNV = "FRAGMENT_SHADING_RATE_"
showTableFragmentShadingRateNV :: [(FragmentShadingRateNV, String)]
showTableFragmentShadingRateNV :: [(FragmentShadingRateNV, String)]
showTableFragmentShadingRateNV =
[ (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV , "1_INVOCATION_PER_PIXEL_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV, "1_INVOCATION_PER_1X2_PIXELS_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV, "1_INVOCATION_PER_2X1_PIXELS_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV, "1_INVOCATION_PER_2X2_PIXELS_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV, "1_INVOCATION_PER_2X4_PIXELS_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV, "1_INVOCATION_PER_4X2_PIXELS_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV, "1_INVOCATION_PER_4X4_PIXELS_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV , "2_INVOCATIONS_PER_PIXEL_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV , "4_INVOCATIONS_PER_PIXEL_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV , "8_INVOCATIONS_PER_PIXEL_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV , "16_INVOCATIONS_PER_PIXEL_NV")
, (FragmentShadingRateNV
FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV , "NO_INVOCATIONS_NV")
]
instance Show FragmentShadingRateNV where
showsPrec :: Int -> FragmentShadingRateNV -> ShowS
showsPrec = String
-> [(FragmentShadingRateNV, String)]
-> String
-> (FragmentShadingRateNV -> Int32)
-> (Int32 -> ShowS)
-> Int
-> FragmentShadingRateNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixFragmentShadingRateNV
[(FragmentShadingRateNV, String)]
showTableFragmentShadingRateNV
String
conNameFragmentShadingRateNV
(\(FragmentShadingRateNV x :: Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec 11)
instance Read FragmentShadingRateNV where
readPrec :: ReadPrec FragmentShadingRateNV
readPrec = String
-> [(FragmentShadingRateNV, String)]
-> String
-> (Int32 -> FragmentShadingRateNV)
-> ReadPrec FragmentShadingRateNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixFragmentShadingRateNV
[(FragmentShadingRateNV, String)]
showTableFragmentShadingRateNV
String
conNameFragmentShadingRateNV
Int32 -> FragmentShadingRateNV
FragmentShadingRateNV
newtype FragmentShadingRateTypeNV = FragmentShadingRateTypeNV Int32
deriving newtype (FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
(FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool)
-> (FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool)
-> Eq FragmentShadingRateTypeNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
$c/= :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
== :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
$c== :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
Eq, Eq FragmentShadingRateTypeNV
Eq FragmentShadingRateTypeNV =>
(FragmentShadingRateTypeNV
-> FragmentShadingRateTypeNV -> Ordering)
-> (FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool)
-> (FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool)
-> (FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool)
-> (FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool)
-> (FragmentShadingRateTypeNV
-> FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV)
-> (FragmentShadingRateTypeNV
-> FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV)
-> Ord FragmentShadingRateTypeNV
FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Ordering
FragmentShadingRateTypeNV
-> FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV
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 :: FragmentShadingRateTypeNV
-> FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV
$cmin :: FragmentShadingRateTypeNV
-> FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV
max :: FragmentShadingRateTypeNV
-> FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV
$cmax :: FragmentShadingRateTypeNV
-> FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV
>= :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
$c>= :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
> :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
$c> :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
<= :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
$c<= :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
< :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
$c< :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Bool
compare :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Ordering
$ccompare :: FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> Ordering
$cp1Ord :: Eq FragmentShadingRateTypeNV
Ord, Ptr b -> Int -> IO FragmentShadingRateTypeNV
Ptr b -> Int -> FragmentShadingRateTypeNV -> IO ()
Ptr FragmentShadingRateTypeNV -> IO FragmentShadingRateTypeNV
Ptr FragmentShadingRateTypeNV
-> Int -> IO FragmentShadingRateTypeNV
Ptr FragmentShadingRateTypeNV
-> Int -> FragmentShadingRateTypeNV -> IO ()
Ptr FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> IO ()
FragmentShadingRateTypeNV -> Int
(FragmentShadingRateTypeNV -> Int)
-> (FragmentShadingRateTypeNV -> Int)
-> (Ptr FragmentShadingRateTypeNV
-> Int -> IO FragmentShadingRateTypeNV)
-> (Ptr FragmentShadingRateTypeNV
-> Int -> FragmentShadingRateTypeNV -> IO ())
-> (forall b. Ptr b -> Int -> IO FragmentShadingRateTypeNV)
-> (forall b. Ptr b -> Int -> FragmentShadingRateTypeNV -> IO ())
-> (Ptr FragmentShadingRateTypeNV -> IO FragmentShadingRateTypeNV)
-> (Ptr FragmentShadingRateTypeNV
-> FragmentShadingRateTypeNV -> IO ())
-> Storable FragmentShadingRateTypeNV
forall b. Ptr b -> Int -> IO FragmentShadingRateTypeNV
forall b. Ptr b -> Int -> FragmentShadingRateTypeNV -> 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 FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> IO ()
$cpoke :: Ptr FragmentShadingRateTypeNV -> FragmentShadingRateTypeNV -> IO ()
peek :: Ptr FragmentShadingRateTypeNV -> IO FragmentShadingRateTypeNV
$cpeek :: Ptr FragmentShadingRateTypeNV -> IO FragmentShadingRateTypeNV
pokeByteOff :: Ptr b -> Int -> FragmentShadingRateTypeNV -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> FragmentShadingRateTypeNV -> IO ()
peekByteOff :: Ptr b -> Int -> IO FragmentShadingRateTypeNV
$cpeekByteOff :: forall b. Ptr b -> Int -> IO FragmentShadingRateTypeNV
pokeElemOff :: Ptr FragmentShadingRateTypeNV
-> Int -> FragmentShadingRateTypeNV -> IO ()
$cpokeElemOff :: Ptr FragmentShadingRateTypeNV
-> Int -> FragmentShadingRateTypeNV -> IO ()
peekElemOff :: Ptr FragmentShadingRateTypeNV
-> Int -> IO FragmentShadingRateTypeNV
$cpeekElemOff :: Ptr FragmentShadingRateTypeNV
-> Int -> IO FragmentShadingRateTypeNV
alignment :: FragmentShadingRateTypeNV -> Int
$calignment :: FragmentShadingRateTypeNV -> Int
sizeOf :: FragmentShadingRateTypeNV -> Int
$csizeOf :: FragmentShadingRateTypeNV -> Int
Storable, FragmentShadingRateTypeNV
FragmentShadingRateTypeNV -> Zero FragmentShadingRateTypeNV
forall a. a -> Zero a
zero :: FragmentShadingRateTypeNV
$czero :: FragmentShadingRateTypeNV
Zero)
pattern $bFRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV :: FragmentShadingRateTypeNV
$mFRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV :: forall r.
FragmentShadingRateTypeNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = FragmentShadingRateTypeNV 0
pattern $bFRAGMENT_SHADING_RATE_TYPE_ENUMS_NV :: FragmentShadingRateTypeNV
$mFRAGMENT_SHADING_RATE_TYPE_ENUMS_NV :: forall r.
FragmentShadingRateTypeNV -> (Void# -> r) -> (Void# -> r) -> r
FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = FragmentShadingRateTypeNV 1
{-# complete FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV,
FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV :: FragmentShadingRateTypeNV #-}
conNameFragmentShadingRateTypeNV :: String
conNameFragmentShadingRateTypeNV :: String
conNameFragmentShadingRateTypeNV = "FragmentShadingRateTypeNV"
enumPrefixFragmentShadingRateTypeNV :: String
enumPrefixFragmentShadingRateTypeNV :: String
enumPrefixFragmentShadingRateTypeNV = "FRAGMENT_SHADING_RATE_TYPE_"
showTableFragmentShadingRateTypeNV :: [(FragmentShadingRateTypeNV, String)]
showTableFragmentShadingRateTypeNV :: [(FragmentShadingRateTypeNV, String)]
showTableFragmentShadingRateTypeNV =
[(FragmentShadingRateTypeNV
FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV, "FRAGMENT_SIZE_NV"), (FragmentShadingRateTypeNV
FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV, "ENUMS_NV")]
instance Show FragmentShadingRateTypeNV where
showsPrec :: Int -> FragmentShadingRateTypeNV -> ShowS
showsPrec = String
-> [(FragmentShadingRateTypeNV, String)]
-> String
-> (FragmentShadingRateTypeNV -> Int32)
-> (Int32 -> ShowS)
-> Int
-> FragmentShadingRateTypeNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixFragmentShadingRateTypeNV
[(FragmentShadingRateTypeNV, String)]
showTableFragmentShadingRateTypeNV
String
conNameFragmentShadingRateTypeNV
(\(FragmentShadingRateTypeNV x :: Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec 11)
instance Read FragmentShadingRateTypeNV where
readPrec :: ReadPrec FragmentShadingRateTypeNV
readPrec = String
-> [(FragmentShadingRateTypeNV, String)]
-> String
-> (Int32 -> FragmentShadingRateTypeNV)
-> ReadPrec FragmentShadingRateTypeNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixFragmentShadingRateTypeNV
[(FragmentShadingRateTypeNV, String)]
showTableFragmentShadingRateTypeNV
String
conNameFragmentShadingRateTypeNV
Int32 -> FragmentShadingRateTypeNV
FragmentShadingRateTypeNV
type NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1
pattern NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION :: forall a . Integral a => a
pattern $bNV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION :: a
$mNV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1
type NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME = "VK_NV_fragment_shading_rate_enums"
pattern NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bNV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME :: a
$mNV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME = "VK_NV_fragment_shading_rate_enums"