{-# language CPP #-}
module Vulkan.Extensions.VK_KHR_fragment_shading_rate ( cmdSetFragmentShadingRateKHR
, getPhysicalDeviceFragmentShadingRatesKHR
, pattern PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
, FragmentShadingRateAttachmentInfoKHR(..)
, PipelineFragmentShadingRateStateCreateInfoKHR(..)
, PhysicalDeviceFragmentShadingRateFeaturesKHR(..)
, PhysicalDeviceFragmentShadingRatePropertiesKHR(..)
, PhysicalDeviceFragmentShadingRateKHR(..)
, RenderingFragmentShadingRateAttachmentInfoKHR(..)
, FragmentShadingRateCombinerOpKHR( FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
, FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
, FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR
, FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR
, FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
, ..
)
, KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION
, pattern KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION
, KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME
, pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME
) where
import Vulkan.CStruct.Utils (FixedArray)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Exception.Base (bracket)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Marshal.Alloc (callocBytes)
import Foreign.Marshal.Alloc (free)
import Foreign.Marshal.Utils (maybePeek)
import GHC.Base (when)
import GHC.IO (throwIO)
import GHC.Ptr (castPtr)
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 Data.Vector (generateM)
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 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.Word (Word32)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.CStruct.Extends (forgetExtensions)
import Vulkan.CStruct.Utils (lowerArrayPtr)
import Vulkan.CStruct.Extends (peekSomeCStruct)
import Vulkan.CStruct.Extends (withSomeCStruct)
import Vulkan.NamedType ((:::))
import Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (AttachmentReference2)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
import Vulkan.Core10.Handles (CommandBuffer_T)
import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFragmentShadingRateKHR))
import Vulkan.Core10.FundamentalTypes (Extent2D)
import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
import Vulkan.Core10.Handles (ImageView)
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceFragmentShadingRatesKHR))
import Vulkan.Core10.Handles (PhysicalDevice)
import Vulkan.Core10.Handles (PhysicalDevice(..))
import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
import Vulkan.Core10.Handles (PhysicalDevice_T)
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)
import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlags)
import Vulkan.CStruct.Extends (SomeStruct)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdSetFragmentShadingRateKHR
:: FunPtr (Ptr CommandBuffer_T -> Ptr Extent2D -> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR) -> IO ()) -> Ptr CommandBuffer_T -> Ptr Extent2D -> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR) -> IO ()
cmdSetFragmentShadingRateKHR :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("fragmentSize" ::: Extent2D)
->
("combinerOps" ::: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR))
-> io ()
cmdSetFragmentShadingRateKHR :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> ("fragmentSize" ::: Extent2D)
-> ("combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR))
-> io ()
cmdSetFragmentShadingRateKHR CommandBuffer
commandBuffer
"fragmentSize" ::: Extent2D
fragmentSize
"combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
combinerOps = IO () -> io ()
forall a. IO a -> io a
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 vkCmdSetFragmentShadingRateKHRPtr :: FunPtr
(Ptr CommandBuffer_T
-> Ptr ("fragmentSize" ::: Extent2D)
-> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> IO ())
vkCmdSetFragmentShadingRateKHRPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Ptr ("fragmentSize" ::: Extent2D)
-> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> IO ())
pVkCmdSetFragmentShadingRateKHR (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
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
-> Ptr ("fragmentSize" ::: Extent2D)
-> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> IO ())
vkCmdSetFragmentShadingRateKHRPtr FunPtr
(Ptr CommandBuffer_T
-> Ptr ("fragmentSize" ::: Extent2D)
-> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Ptr ("fragmentSize" ::: Extent2D)
-> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Ptr ("fragmentSize" ::: Extent2D)
-> 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. (HasCallStack, 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 String
"" String
"The function pointer for vkCmdSetFragmentShadingRateKHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdSetFragmentShadingRateKHR' :: Ptr CommandBuffer_T
-> Ptr ("fragmentSize" ::: Extent2D)
-> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> IO ()
vkCmdSetFragmentShadingRateKHR' = FunPtr
(Ptr CommandBuffer_T
-> Ptr ("fragmentSize" ::: Extent2D)
-> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> IO ())
-> Ptr CommandBuffer_T
-> Ptr ("fragmentSize" ::: Extent2D)
-> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> IO ()
mkVkCmdSetFragmentShadingRateKHR FunPtr
(Ptr CommandBuffer_T
-> Ptr ("fragmentSize" ::: Extent2D)
-> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> IO ())
vkCmdSetFragmentShadingRateKHRPtr
pFragmentSize <- ((Ptr ("fragmentSize" ::: Extent2D) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("fragmentSize" ::: Extent2D))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ("fragmentSize" ::: Extent2D) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("fragmentSize" ::: Extent2D)))
-> ((Ptr ("fragmentSize" ::: Extent2D) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("fragmentSize" ::: Extent2D))
forall a b. (a -> b) -> a -> b
$ ("fragmentSize" ::: Extent2D)
-> (Ptr ("fragmentSize" ::: Extent2D) -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
("fragmentSize" ::: Extent2D)
-> (Ptr ("fragmentSize" ::: Extent2D) -> IO b) -> IO b
withCStruct ("fragmentSize" ::: Extent2D
fragmentSize)
pCombinerOps <- ContT $ allocaBytes @(FixedArray 2 FragmentShadingRateCombinerOpKHR) 8
let pCombinerOps' = Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> Ptr FragmentShadingRateCombinerOpKHR
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
pCombinerOps
lift $ case (combinerOps) of
(FragmentShadingRateCombinerOpKHR
e0, 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` Int
4 :: Ptr FragmentShadingRateCombinerOpKHR) (FragmentShadingRateCombinerOpKHR
e1)
lift $ traceAroundEvent "vkCmdSetFragmentShadingRateKHR" (vkCmdSetFragmentShadingRateKHR'
(commandBufferHandle (commandBuffer))
pFragmentSize
(pCombinerOps))
pure $ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceFragmentShadingRatesKHR
:: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceFragmentShadingRateKHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceFragmentShadingRateKHR -> IO Result
getPhysicalDeviceFragmentShadingRatesKHR :: forall io
. (MonadIO io)
=>
PhysicalDevice
-> io (Result, ("fragmentShadingRates" ::: Vector PhysicalDeviceFragmentShadingRateKHR))
getPhysicalDeviceFragmentShadingRatesKHR :: forall (io :: * -> *).
MonadIO io =>
PhysicalDevice
-> io
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
getPhysicalDeviceFragmentShadingRatesKHR PhysicalDevice
physicalDevice = IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
-> io
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
-> io
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> (ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
-> io
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
-> io
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
-> io
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceFragmentShadingRatesKHRPtr :: FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result)
vkGetPhysicalDeviceFragmentShadingRatesKHRPtr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result)
pVkGetPhysicalDeviceFragmentShadingRatesKHR (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
instanceCmds :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
IO ()
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
())
-> IO ()
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result)
vkGetPhysicalDeviceFragmentShadingRatesKHRPtr FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result)
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. (HasCallStack, 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 String
"" String
"The function pointer for vkGetPhysicalDeviceFragmentShadingRatesKHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetPhysicalDeviceFragmentShadingRatesKHR' :: Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result
vkGetPhysicalDeviceFragmentShadingRatesKHR' = FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result)
-> Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result
mkVkGetPhysicalDeviceFragmentShadingRatesKHR FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO Result)
vkGetPhysicalDeviceFragmentShadingRatesKHRPtr
let physicalDevice' :: Ptr PhysicalDevice_T
physicalDevice' = PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice)
pPFragmentShadingRateCount <- ((Ptr Word32
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
(Ptr Word32)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr Word32
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
(Ptr Word32))
-> ((Ptr Word32
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
(Ptr Word32)
forall a b. (a -> b) -> a -> b
$ IO (Ptr Word32)
-> (Ptr Word32 -> IO ())
-> (Ptr Word32
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @Word32 Int
4) Ptr Word32 -> IO ()
forall a. Ptr a -> IO ()
free
r <- lift $ traceAroundEvent "vkGetPhysicalDeviceFragmentShadingRatesKHR" (vkGetPhysicalDeviceFragmentShadingRatesKHR'
physicalDevice'
(pPFragmentShadingRateCount)
(nullPtr))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
pFragmentShadingRateCount <- lift $ peek @Word32 pPFragmentShadingRateCount
pPFragmentShadingRates <- ContT $ bracket (callocBytes @PhysicalDeviceFragmentShadingRateKHR ((fromIntegral (pFragmentShadingRateCount)) * 32)) free
_ <- traverse (\Int
i -> ((()
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((()
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
())
-> ((()
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ContT
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
IO
()
forall a b. (a -> b) -> a -> b
$ Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
forall b. Ptr PhysicalDeviceFragmentShadingRateKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct (Ptr PhysicalDeviceFragmentShadingRateKHR
pPFragmentShadingRates Ptr PhysicalDeviceFragmentShadingRateKHR
-> Int -> Ptr PhysicalDeviceFragmentShadingRateKHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
32) :: Ptr PhysicalDeviceFragmentShadingRateKHR) (IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ((()
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> (()
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((()
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR))
-> ()
-> IO
(Result,
"fragmentShadingRates"
::: Vector PhysicalDeviceFragmentShadingRateKHR)
forall a b. (a -> b) -> a -> b
$ ())) [0..(fromIntegral (pFragmentShadingRateCount)) - 1]
r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceFragmentShadingRatesKHR" (vkGetPhysicalDeviceFragmentShadingRatesKHR'
physicalDevice'
(pPFragmentShadingRateCount)
((pPFragmentShadingRates)))
lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
pFragmentShadingRateCount' <- lift $ peek @Word32 pPFragmentShadingRateCount
pFragmentShadingRates' <- lift $ generateM (fromIntegral (pFragmentShadingRateCount')) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @PhysicalDeviceFragmentShadingRateKHR (((Ptr PhysicalDeviceFragmentShadingRateKHR
pPFragmentShadingRates) Ptr PhysicalDeviceFragmentShadingRateKHR
-> Int -> Ptr PhysicalDeviceFragmentShadingRateKHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
32 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr PhysicalDeviceFragmentShadingRateKHR)))
pure $ ((r'), pFragmentShadingRates')
pattern $mPIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: forall {r}.
PipelineCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bPIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: PipelineCreateFlagBits
PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
data FragmentShadingRateAttachmentInfoKHR = FragmentShadingRateAttachmentInfoKHR
{
FragmentShadingRateAttachmentInfoKHR
-> Maybe (SomeStruct AttachmentReference2)
fragmentShadingRateAttachment :: Maybe (SomeStruct AttachmentReference2)
,
FragmentShadingRateAttachmentInfoKHR -> "fragmentSize" ::: Extent2D
shadingRateAttachmentTexelSize :: Extent2D
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (FragmentShadingRateAttachmentInfoKHR)
#endif
deriving instance Show FragmentShadingRateAttachmentInfoKHR
instance ToCStruct FragmentShadingRateAttachmentInfoKHR where
withCStruct :: forall b.
FragmentShadingRateAttachmentInfoKHR
-> (Ptr FragmentShadingRateAttachmentInfoKHR -> IO b) -> IO b
withCStruct FragmentShadingRateAttachmentInfoKHR
x Ptr FragmentShadingRateAttachmentInfoKHR -> IO b
f = Int -> (Ptr FragmentShadingRateAttachmentInfoKHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr FragmentShadingRateAttachmentInfoKHR -> IO b) -> IO b)
-> (Ptr FragmentShadingRateAttachmentInfoKHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr FragmentShadingRateAttachmentInfoKHR
p -> Ptr FragmentShadingRateAttachmentInfoKHR
-> FragmentShadingRateAttachmentInfoKHR -> IO b -> IO b
forall b.
Ptr FragmentShadingRateAttachmentInfoKHR
-> FragmentShadingRateAttachmentInfoKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr FragmentShadingRateAttachmentInfoKHR
p FragmentShadingRateAttachmentInfoKHR
x (Ptr FragmentShadingRateAttachmentInfoKHR -> IO b
f Ptr FragmentShadingRateAttachmentInfoKHR
p)
pokeCStruct :: forall b.
Ptr FragmentShadingRateAttachmentInfoKHR
-> FragmentShadingRateAttachmentInfoKHR -> IO b -> IO b
pokeCStruct Ptr FragmentShadingRateAttachmentInfoKHR
p FragmentShadingRateAttachmentInfoKHR{Maybe (SomeStruct AttachmentReference2)
"fragmentSize" ::: Extent2D
fragmentShadingRateAttachment :: FragmentShadingRateAttachmentInfoKHR
-> Maybe (SomeStruct AttachmentReference2)
shadingRateAttachmentTexelSize :: FragmentShadingRateAttachmentInfoKHR -> "fragmentSize" ::: Extent2D
fragmentShadingRateAttachment :: Maybe (SomeStruct AttachmentReference2)
shadingRateAttachmentTexelSize :: "fragmentSize" ::: Extent2D
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr FragmentShadingRateAttachmentInfoKHR
p Ptr FragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr FragmentShadingRateAttachmentInfoKHR
p Ptr FragmentShadingRateAttachmentInfoKHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
pFragmentShadingRateAttachment'' <- case (Maybe (SomeStruct AttachmentReference2)
fragmentShadingRateAttachment) of
Maybe (SomeStruct AttachmentReference2)
Nothing -> Ptr (AttachmentReference2 '[])
-> ContT b IO (Ptr (AttachmentReference2 '[]))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr (AttachmentReference2 '[])
forall a. Ptr a
nullPtr
Just SomeStruct AttachmentReference2
j -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
forall r (m :: * -> *) a. ((a -> m r) -> m r) -> ContT r m a
ContT @_ @_ @(Ptr (AttachmentReference2 '[])) (((Ptr (AttachmentReference2 '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (AttachmentReference2 '[])))
-> ((Ptr (AttachmentReference2 '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (AttachmentReference2 '[]))
forall a b. (a -> b) -> a -> b
$ \Ptr (AttachmentReference2 '[]) -> IO b
cont -> forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
SomeStruct a
-> (forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b)
-> IO b
withSomeCStruct @AttachmentReference2 (SomeStruct AttachmentReference2
j) (Ptr (AttachmentReference2 '[]) -> IO b
cont (Ptr (AttachmentReference2 '[]) -> IO b)
-> (Ptr (AttachmentReference2 es)
-> Ptr (AttachmentReference2 '[]))
-> Ptr (AttachmentReference2 es)
-> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (AttachmentReference2 es) -> Ptr (AttachmentReference2 '[])
forall a b. Ptr a -> Ptr b
castPtr)
lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _)))) pFragmentShadingRateAttachment''
lift $ poke ((p `plusPtr` 24 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize)
lift $ f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr FragmentShadingRateAttachmentInfoKHR -> IO b -> IO b
pokeZeroCStruct Ptr FragmentShadingRateAttachmentInfoKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr FragmentShadingRateAttachmentInfoKHR
p Ptr FragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr FragmentShadingRateAttachmentInfoKHR
p Ptr FragmentShadingRateAttachmentInfoKHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr FragmentShadingRateAttachmentInfoKHR
p Ptr FragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct FragmentShadingRateAttachmentInfoKHR where
peekCStruct :: Ptr FragmentShadingRateAttachmentInfoKHR
-> IO FragmentShadingRateAttachmentInfoKHR
peekCStruct Ptr FragmentShadingRateAttachmentInfoKHR
p = do
pFragmentShadingRateAttachment <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr (AttachmentReference2 _)) ((Ptr FragmentShadingRateAttachmentInfoKHR
p Ptr FragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr (Ptr (AttachmentReference2 w))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr (AttachmentReference2 _))))
pFragmentShadingRateAttachment' <- maybePeek (\Ptr (AttachmentReference2 (ZonkAny 0))
j -> Ptr (SomeStruct AttachmentReference2)
-> IO (SomeStruct AttachmentReference2)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (AttachmentReference2 (ZonkAny 0))
-> Ptr (SomeStruct AttachmentReference2)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (AttachmentReference2 (ZonkAny 0))
j))) pFragmentShadingRateAttachment
shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 24 :: Ptr Extent2D))
pure $ FragmentShadingRateAttachmentInfoKHR
pFragmentShadingRateAttachment' shadingRateAttachmentTexelSize
instance Zero FragmentShadingRateAttachmentInfoKHR where
zero :: FragmentShadingRateAttachmentInfoKHR
zero = Maybe (SomeStruct AttachmentReference2)
-> ("fragmentSize" ::: Extent2D)
-> FragmentShadingRateAttachmentInfoKHR
FragmentShadingRateAttachmentInfoKHR
Maybe (SomeStruct AttachmentReference2)
forall a. Maybe a
Nothing
"fragmentSize" ::: Extent2D
forall a. Zero a => a
zero
data PipelineFragmentShadingRateStateCreateInfoKHR = PipelineFragmentShadingRateStateCreateInfoKHR
{
PipelineFragmentShadingRateStateCreateInfoKHR
-> "fragmentSize" ::: Extent2D
fragmentSize :: Extent2D
,
PipelineFragmentShadingRateStateCreateInfoKHR
-> "combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
combinerOps :: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR)
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PipelineFragmentShadingRateStateCreateInfoKHR)
#endif
deriving instance Show PipelineFragmentShadingRateStateCreateInfoKHR
instance ToCStruct PipelineFragmentShadingRateStateCreateInfoKHR where
withCStruct :: forall b.
PipelineFragmentShadingRateStateCreateInfoKHR
-> (Ptr PipelineFragmentShadingRateStateCreateInfoKHR -> IO b)
-> IO b
withCStruct PipelineFragmentShadingRateStateCreateInfoKHR
x Ptr PipelineFragmentShadingRateStateCreateInfoKHR -> IO b
f = Int
-> (Ptr PipelineFragmentShadingRateStateCreateInfoKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR -> IO b)
-> IO b)
-> (Ptr PipelineFragmentShadingRateStateCreateInfoKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p -> Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> PipelineFragmentShadingRateStateCreateInfoKHR -> IO b -> IO b
forall b.
Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> PipelineFragmentShadingRateStateCreateInfoKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p PipelineFragmentShadingRateStateCreateInfoKHR
x (Ptr PipelineFragmentShadingRateStateCreateInfoKHR -> IO b
f Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p)
pokeCStruct :: forall b.
Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> PipelineFragmentShadingRateStateCreateInfoKHR -> IO b -> IO b
pokeCStruct Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p PipelineFragmentShadingRateStateCreateInfoKHR{"combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
"fragmentSize" ::: Extent2D
fragmentSize :: PipelineFragmentShadingRateStateCreateInfoKHR
-> "fragmentSize" ::: Extent2D
combinerOps :: PipelineFragmentShadingRateStateCreateInfoKHR
-> "combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
fragmentSize :: "fragmentSize" ::: Extent2D
combinerOps :: "combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
fragmentSize)
let pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' = Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> Ptr FragmentShadingRateCombinerOpKHR
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))
case ("combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR)
combinerOps) of
(FragmentShadingRateCombinerOpKHR
e0, 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` Int
4 :: Ptr FragmentShadingRateCombinerOpKHR) (FragmentShadingRateCombinerOpKHR
e1)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PipelineFragmentShadingRateStateCreateInfoKHR -> IO b -> IO b
pokeZeroCStruct Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
forall a. Zero a => a
zero)
let pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR
pCombinerOps' = Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
-> Ptr FragmentShadingRateCombinerOpKHR
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))
case ((FragmentShadingRateCombinerOpKHR
forall a. Zero a => a
zero, FragmentShadingRateCombinerOpKHR
forall a. Zero a => a
zero)) of
(FragmentShadingRateCombinerOpKHR
e0, 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` Int
4 :: Ptr FragmentShadingRateCombinerOpKHR) (FragmentShadingRateCombinerOpKHR
e1)
IO b
f
instance FromCStruct PipelineFragmentShadingRateStateCreateInfoKHR where
peekCStruct :: Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> IO PipelineFragmentShadingRateStateCreateInfoKHR
peekCStruct Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p = do
fragmentSize <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Extent2D ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Extent2D))
let pcombinerOps = forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr @FragmentShadingRateCombinerOpKHR ((Ptr PipelineFragmentShadingRateStateCreateInfoKHR
p Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> Int -> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))
combinerOps0 <- peek @FragmentShadingRateCombinerOpKHR ((pcombinerOps `advancePtrBytes` 0 :: Ptr FragmentShadingRateCombinerOpKHR))
combinerOps1 <- peek @FragmentShadingRateCombinerOpKHR ((pcombinerOps `advancePtrBytes` 4 :: Ptr FragmentShadingRateCombinerOpKHR))
pure $ PipelineFragmentShadingRateStateCreateInfoKHR
fragmentSize ((combinerOps0, combinerOps1))
instance Storable PipelineFragmentShadingRateStateCreateInfoKHR where
sizeOf :: PipelineFragmentShadingRateStateCreateInfoKHR -> Int
sizeOf ~PipelineFragmentShadingRateStateCreateInfoKHR
_ = Int
32
alignment :: PipelineFragmentShadingRateStateCreateInfoKHR -> Int
alignment ~PipelineFragmentShadingRateStateCreateInfoKHR
_ = Int
8
peek :: Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> IO PipelineFragmentShadingRateStateCreateInfoKHR
peek = Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> IO PipelineFragmentShadingRateStateCreateInfoKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> PipelineFragmentShadingRateStateCreateInfoKHR -> IO ()
poke Ptr PipelineFragmentShadingRateStateCreateInfoKHR
ptr PipelineFragmentShadingRateStateCreateInfoKHR
poked = Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> PipelineFragmentShadingRateStateCreateInfoKHR -> IO () -> IO ()
forall b.
Ptr PipelineFragmentShadingRateStateCreateInfoKHR
-> PipelineFragmentShadingRateStateCreateInfoKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineFragmentShadingRateStateCreateInfoKHR
ptr PipelineFragmentShadingRateStateCreateInfoKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PipelineFragmentShadingRateStateCreateInfoKHR where
zero :: PipelineFragmentShadingRateStateCreateInfoKHR
zero = ("fragmentSize" ::: Extent2D)
-> ("combinerOps"
::: (FragmentShadingRateCombinerOpKHR,
FragmentShadingRateCombinerOpKHR))
-> PipelineFragmentShadingRateStateCreateInfoKHR
PipelineFragmentShadingRateStateCreateInfoKHR
"fragmentSize" ::: Extent2D
forall a. Zero a => a
zero
(FragmentShadingRateCombinerOpKHR
forall a. Zero a => a
zero, FragmentShadingRateCombinerOpKHR
forall a. Zero a => a
zero)
data PhysicalDeviceFragmentShadingRateFeaturesKHR = PhysicalDeviceFragmentShadingRateFeaturesKHR
{
PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
pipelineFragmentShadingRate :: Bool
,
PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
primitiveFragmentShadingRate :: Bool
,
PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
attachmentFragmentShadingRate :: Bool
}
deriving (Typeable, PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
(PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool)
-> (PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool)
-> Eq PhysicalDeviceFragmentShadingRateFeaturesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
== :: PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
$c/= :: PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
/= :: PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceFragmentShadingRateFeaturesKHR)
#endif
deriving instance Show PhysicalDeviceFragmentShadingRateFeaturesKHR
instance ToCStruct PhysicalDeviceFragmentShadingRateFeaturesKHR where
withCStruct :: forall b.
PhysicalDeviceFragmentShadingRateFeaturesKHR
-> (Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b)
-> IO b
withCStruct PhysicalDeviceFragmentShadingRateFeaturesKHR
x Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p -> Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b -> IO b
forall b.
Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p PhysicalDeviceFragmentShadingRateFeaturesKHR
x (Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b
f Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p PhysicalDeviceFragmentShadingRateFeaturesKHR{Bool
pipelineFragmentShadingRate :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
primitiveFragmentShadingRate :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
attachmentFragmentShadingRate :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Bool
pipelineFragmentShadingRate :: Bool
primitiveFragmentShadingRate :: Bool
attachmentFragmentShadingRate :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
pipelineFragmentShadingRate))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
primitiveFragmentShadingRate))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
attachmentFragmentShadingRate))
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
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 PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
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 PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceFragmentShadingRateFeaturesKHR where
peekCStruct :: Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> IO PhysicalDeviceFragmentShadingRateFeaturesKHR
peekCStruct Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p = do
pipelineFragmentShadingRate <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
p Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
primitiveFragmentShadingRate <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
attachmentFragmentShadingRate <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
pure $ PhysicalDeviceFragmentShadingRateFeaturesKHR
(bool32ToBool pipelineFragmentShadingRate)
(bool32ToBool primitiveFragmentShadingRate)
(bool32ToBool attachmentFragmentShadingRate)
instance Storable PhysicalDeviceFragmentShadingRateFeaturesKHR where
sizeOf :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Int
sizeOf ~PhysicalDeviceFragmentShadingRateFeaturesKHR
_ = Int
32
alignment :: PhysicalDeviceFragmentShadingRateFeaturesKHR -> Int
alignment ~PhysicalDeviceFragmentShadingRateFeaturesKHR
_ = Int
8
peek :: Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> IO PhysicalDeviceFragmentShadingRateFeaturesKHR
peek = Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> IO PhysicalDeviceFragmentShadingRateFeaturesKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO ()
poke Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
poked = Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
-> PhysicalDeviceFragmentShadingRateFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
ptr PhysicalDeviceFragmentShadingRateFeaturesKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceFragmentShadingRateFeaturesKHR where
zero :: PhysicalDeviceFragmentShadingRateFeaturesKHR
zero = Bool
-> Bool -> Bool -> PhysicalDeviceFragmentShadingRateFeaturesKHR
PhysicalDeviceFragmentShadingRateFeaturesKHR
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data PhysicalDeviceFragmentShadingRatePropertiesKHR = PhysicalDeviceFragmentShadingRatePropertiesKHR
{
PhysicalDeviceFragmentShadingRatePropertiesKHR
-> "fragmentSize" ::: Extent2D
minFragmentShadingRateAttachmentTexelSize :: Extent2D
,
PhysicalDeviceFragmentShadingRatePropertiesKHR
-> "fragmentSize" ::: Extent2D
maxFragmentShadingRateAttachmentTexelSize :: Extent2D
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Word32
maxFragmentShadingRateAttachmentTexelSizeAspectRatio :: Word32
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
primitiveFragmentShadingRateWithMultipleViewports :: Bool
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
layeredShadingRateAttachments :: Bool
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateNonTrivialCombinerOps :: Bool
,
PhysicalDeviceFragmentShadingRatePropertiesKHR
-> "fragmentSize" ::: Extent2D
maxFragmentSize :: Extent2D
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Word32
maxFragmentSizeAspectRatio :: Word32
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Word32
maxFragmentShadingRateCoverageSamples :: Word32
,
PhysicalDeviceFragmentShadingRatePropertiesKHR
-> SampleCountFlagBits
maxFragmentShadingRateRasterizationSamples :: SampleCountFlagBits
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithShaderDepthStencilWrites :: Bool
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithSampleMask :: Bool
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithShaderSampleMask :: Bool
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithConservativeRasterization :: Bool
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithFragmentShaderInterlock :: Bool
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithCustomSampleLocations :: Bool
,
PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateStrictMultiplyCombiner :: Bool
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceFragmentShadingRatePropertiesKHR)
#endif
deriving instance Show PhysicalDeviceFragmentShadingRatePropertiesKHR
instance ToCStruct PhysicalDeviceFragmentShadingRatePropertiesKHR where
withCStruct :: forall b.
PhysicalDeviceFragmentShadingRatePropertiesKHR
-> (Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b)
-> IO b
withCStruct PhysicalDeviceFragmentShadingRatePropertiesKHR
x Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
96 ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p -> Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b -> IO b
forall b.
Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p PhysicalDeviceFragmentShadingRatePropertiesKHR
x (Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b
f Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p PhysicalDeviceFragmentShadingRatePropertiesKHR{Bool
Word32
"fragmentSize" ::: Extent2D
SampleCountFlagBits
minFragmentShadingRateAttachmentTexelSize :: PhysicalDeviceFragmentShadingRatePropertiesKHR
-> "fragmentSize" ::: Extent2D
maxFragmentShadingRateAttachmentTexelSize :: PhysicalDeviceFragmentShadingRatePropertiesKHR
-> "fragmentSize" ::: Extent2D
maxFragmentShadingRateAttachmentTexelSizeAspectRatio :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Word32
primitiveFragmentShadingRateWithMultipleViewports :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
layeredShadingRateAttachments :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateNonTrivialCombinerOps :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
maxFragmentSize :: PhysicalDeviceFragmentShadingRatePropertiesKHR
-> "fragmentSize" ::: Extent2D
maxFragmentSizeAspectRatio :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Word32
maxFragmentShadingRateCoverageSamples :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Word32
maxFragmentShadingRateRasterizationSamples :: PhysicalDeviceFragmentShadingRatePropertiesKHR
-> SampleCountFlagBits
fragmentShadingRateWithShaderDepthStencilWrites :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithSampleMask :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithShaderSampleMask :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithConservativeRasterization :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithFragmentShaderInterlock :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateWithCustomSampleLocations :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
fragmentShadingRateStrictMultiplyCombiner :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Bool
minFragmentShadingRateAttachmentTexelSize :: "fragmentSize" ::: Extent2D
maxFragmentShadingRateAttachmentTexelSize :: "fragmentSize" ::: Extent2D
maxFragmentShadingRateAttachmentTexelSizeAspectRatio :: Word32
primitiveFragmentShadingRateWithMultipleViewports :: Bool
layeredShadingRateAttachments :: Bool
fragmentShadingRateNonTrivialCombinerOps :: Bool
maxFragmentSize :: "fragmentSize" ::: Extent2D
maxFragmentSizeAspectRatio :: Word32
maxFragmentShadingRateCoverageSamples :: Word32
maxFragmentShadingRateRasterizationSamples :: SampleCountFlagBits
fragmentShadingRateWithShaderDepthStencilWrites :: Bool
fragmentShadingRateWithSampleMask :: Bool
fragmentShadingRateWithShaderSampleMask :: Bool
fragmentShadingRateWithConservativeRasterization :: Bool
fragmentShadingRateWithFragmentShaderInterlock :: Bool
fragmentShadingRateWithCustomSampleLocations :: Bool
fragmentShadingRateStrictMultiplyCombiner :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
minFragmentShadingRateAttachmentTexelSize)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
maxFragmentShadingRateAttachmentTexelSize)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) (Word32
maxFragmentShadingRateAttachmentTexelSizeAspectRatio)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
primitiveFragmentShadingRateWithMultipleViewports))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
layeredShadingRateAttachments))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentShadingRateNonTrivialCombinerOps))
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
maxFragmentSize)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Word32)) (Word32
maxFragmentSizeAspectRatio)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Word32)) (Word32
maxFragmentShadingRateCoverageSamples)
Ptr SampleCountFlagBits -> SampleCountFlagBits -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr SampleCountFlagBits
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr SampleCountFlagBits)) (SampleCountFlagBits
maxFragmentShadingRateRasterizationSamples)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
68 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentShadingRateWithShaderDepthStencilWrites))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentShadingRateWithSampleMask))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
76 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentShadingRateWithShaderSampleMask))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentShadingRateWithConservativeRasterization))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
84 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentShadingRateWithFragmentShaderInterlock))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentShadingRateWithCustomSampleLocations))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
92 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentShadingRateStrictMultiplyCombiner))
IO b
f
cStructSize :: Int
cStructSize = Int
96
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
forall a. Zero a => a
zero)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: 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 PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: 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 PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr SampleCountFlagBits -> SampleCountFlagBits -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr SampleCountFlagBits
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr SampleCountFlagBits)) (SampleCountFlagBits
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
68 :: 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 PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: 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 PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
76 :: 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 PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: 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 PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
84 :: 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 PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: 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 PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
92 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceFragmentShadingRatePropertiesKHR where
peekCStruct :: Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> IO PhysicalDeviceFragmentShadingRatePropertiesKHR
peekCStruct Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p = do
minFragmentShadingRateAttachmentTexelSize <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Extent2D ((Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
p Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Extent2D))
maxFragmentShadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 24 :: Ptr Extent2D))
maxFragmentShadingRateAttachmentTexelSizeAspectRatio <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
primitiveFragmentShadingRateWithMultipleViewports <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))
layeredShadingRateAttachments <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
fragmentShadingRateNonTrivialCombinerOps <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
maxFragmentSize <- peekCStruct @Extent2D ((p `plusPtr` 48 :: Ptr Extent2D))
maxFragmentSizeAspectRatio <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))
maxFragmentShadingRateCoverageSamples <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))
maxFragmentShadingRateRasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 64 :: Ptr SampleCountFlagBits))
fragmentShadingRateWithShaderDepthStencilWrites <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))
fragmentShadingRateWithSampleMask <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))
fragmentShadingRateWithShaderSampleMask <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))
fragmentShadingRateWithConservativeRasterization <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))
fragmentShadingRateWithFragmentShaderInterlock <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))
fragmentShadingRateWithCustomSampleLocations <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))
fragmentShadingRateStrictMultiplyCombiner <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))
pure $ PhysicalDeviceFragmentShadingRatePropertiesKHR
minFragmentShadingRateAttachmentTexelSize
maxFragmentShadingRateAttachmentTexelSize
maxFragmentShadingRateAttachmentTexelSizeAspectRatio
(bool32ToBool primitiveFragmentShadingRateWithMultipleViewports)
(bool32ToBool layeredShadingRateAttachments)
(bool32ToBool fragmentShadingRateNonTrivialCombinerOps)
maxFragmentSize
maxFragmentSizeAspectRatio
maxFragmentShadingRateCoverageSamples
maxFragmentShadingRateRasterizationSamples
(bool32ToBool fragmentShadingRateWithShaderDepthStencilWrites)
(bool32ToBool fragmentShadingRateWithSampleMask)
(bool32ToBool fragmentShadingRateWithShaderSampleMask)
(bool32ToBool fragmentShadingRateWithConservativeRasterization)
(bool32ToBool fragmentShadingRateWithFragmentShaderInterlock)
(bool32ToBool fragmentShadingRateWithCustomSampleLocations)
(bool32ToBool fragmentShadingRateStrictMultiplyCombiner)
instance Storable PhysicalDeviceFragmentShadingRatePropertiesKHR where
sizeOf :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Int
sizeOf ~PhysicalDeviceFragmentShadingRatePropertiesKHR
_ = Int
96
alignment :: PhysicalDeviceFragmentShadingRatePropertiesKHR -> Int
alignment ~PhysicalDeviceFragmentShadingRatePropertiesKHR
_ = Int
8
peek :: Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> IO PhysicalDeviceFragmentShadingRatePropertiesKHR
peek = Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> IO PhysicalDeviceFragmentShadingRatePropertiesKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO ()
poke Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
poked = Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
-> PhysicalDeviceFragmentShadingRatePropertiesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
ptr PhysicalDeviceFragmentShadingRatePropertiesKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceFragmentShadingRatePropertiesKHR where
zero :: PhysicalDeviceFragmentShadingRatePropertiesKHR
zero = ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D)
-> Word32
-> Bool
-> Bool
-> Bool
-> ("fragmentSize" ::: Extent2D)
-> Word32
-> Word32
-> SampleCountFlagBits
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceFragmentShadingRatePropertiesKHR
PhysicalDeviceFragmentShadingRatePropertiesKHR
"fragmentSize" ::: Extent2D
forall a. Zero a => a
zero
"fragmentSize" ::: Extent2D
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
"fragmentSize" ::: Extent2D
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
SampleCountFlagBits
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data PhysicalDeviceFragmentShadingRateKHR = PhysicalDeviceFragmentShadingRateKHR
{
PhysicalDeviceFragmentShadingRateKHR -> SampleCountFlagBits
sampleCounts :: SampleCountFlags
,
PhysicalDeviceFragmentShadingRateKHR -> "fragmentSize" ::: Extent2D
fragmentSize :: Extent2D
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceFragmentShadingRateKHR)
#endif
deriving instance Show PhysicalDeviceFragmentShadingRateKHR
instance ToCStruct PhysicalDeviceFragmentShadingRateKHR where
withCStruct :: forall b.
PhysicalDeviceFragmentShadingRateKHR
-> (Ptr PhysicalDeviceFragmentShadingRateKHR -> IO b) -> IO b
withCStruct PhysicalDeviceFragmentShadingRateKHR
x Ptr PhysicalDeviceFragmentShadingRateKHR -> IO b
f = Int -> (Ptr PhysicalDeviceFragmentShadingRateKHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceFragmentShadingRateKHR -> IO b) -> IO b)
-> (Ptr PhysicalDeviceFragmentShadingRateKHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceFragmentShadingRateKHR
p -> Ptr PhysicalDeviceFragmentShadingRateKHR
-> PhysicalDeviceFragmentShadingRateKHR -> IO b -> IO b
forall b.
Ptr PhysicalDeviceFragmentShadingRateKHR
-> PhysicalDeviceFragmentShadingRateKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateKHR
p PhysicalDeviceFragmentShadingRateKHR
x (Ptr PhysicalDeviceFragmentShadingRateKHR -> IO b
f Ptr PhysicalDeviceFragmentShadingRateKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceFragmentShadingRateKHR
-> PhysicalDeviceFragmentShadingRateKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateKHR
p PhysicalDeviceFragmentShadingRateKHR{"fragmentSize" ::: Extent2D
SampleCountFlagBits
sampleCounts :: PhysicalDeviceFragmentShadingRateKHR -> SampleCountFlagBits
fragmentSize :: PhysicalDeviceFragmentShadingRateKHR -> "fragmentSize" ::: Extent2D
sampleCounts :: SampleCountFlagBits
fragmentSize :: "fragmentSize" ::: Extent2D
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateKHR
p Ptr PhysicalDeviceFragmentShadingRateKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateKHR
p Ptr PhysicalDeviceFragmentShadingRateKHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr SampleCountFlagBits -> SampleCountFlagBits -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateKHR
p Ptr PhysicalDeviceFragmentShadingRateKHR
-> Int -> Ptr SampleCountFlagBits
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr SampleCountFlags)) (SampleCountFlagBits
sampleCounts)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateKHR
p Ptr PhysicalDeviceFragmentShadingRateKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
fragmentSize)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr PhysicalDeviceFragmentShadingRateKHR -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceFragmentShadingRateKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateKHR
p Ptr PhysicalDeviceFragmentShadingRateKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateKHR
p Ptr PhysicalDeviceFragmentShadingRateKHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr SampleCountFlagBits -> SampleCountFlagBits -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateKHR
p Ptr PhysicalDeviceFragmentShadingRateKHR
-> Int -> Ptr SampleCountFlagBits
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr SampleCountFlags)) (SampleCountFlagBits
forall a. Zero a => a
zero)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentShadingRateKHR
p Ptr PhysicalDeviceFragmentShadingRateKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceFragmentShadingRateKHR where
peekCStruct :: Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO PhysicalDeviceFragmentShadingRateKHR
peekCStruct Ptr PhysicalDeviceFragmentShadingRateKHR
p = do
sampleCounts <- forall a. Storable a => Ptr a -> IO a
peek @SampleCountFlags ((Ptr PhysicalDeviceFragmentShadingRateKHR
p Ptr PhysicalDeviceFragmentShadingRateKHR
-> Int -> Ptr SampleCountFlagBits
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr SampleCountFlags))
fragmentSize <- peekCStruct @Extent2D ((p `plusPtr` 20 :: Ptr Extent2D))
pure $ PhysicalDeviceFragmentShadingRateKHR
sampleCounts fragmentSize
instance Storable PhysicalDeviceFragmentShadingRateKHR where
sizeOf :: PhysicalDeviceFragmentShadingRateKHR -> Int
sizeOf ~PhysicalDeviceFragmentShadingRateKHR
_ = Int
32
alignment :: PhysicalDeviceFragmentShadingRateKHR -> Int
alignment ~PhysicalDeviceFragmentShadingRateKHR
_ = Int
8
peek :: Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO PhysicalDeviceFragmentShadingRateKHR
peek = Ptr PhysicalDeviceFragmentShadingRateKHR
-> IO PhysicalDeviceFragmentShadingRateKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceFragmentShadingRateKHR
-> PhysicalDeviceFragmentShadingRateKHR -> IO ()
poke Ptr PhysicalDeviceFragmentShadingRateKHR
ptr PhysicalDeviceFragmentShadingRateKHR
poked = Ptr PhysicalDeviceFragmentShadingRateKHR
-> PhysicalDeviceFragmentShadingRateKHR -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceFragmentShadingRateKHR
-> PhysicalDeviceFragmentShadingRateKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentShadingRateKHR
ptr PhysicalDeviceFragmentShadingRateKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceFragmentShadingRateKHR where
zero :: PhysicalDeviceFragmentShadingRateKHR
zero = SampleCountFlagBits
-> ("fragmentSize" ::: Extent2D)
-> PhysicalDeviceFragmentShadingRateKHR
PhysicalDeviceFragmentShadingRateKHR
SampleCountFlagBits
forall a. Zero a => a
zero
"fragmentSize" ::: Extent2D
forall a. Zero a => a
zero
data RenderingFragmentShadingRateAttachmentInfoKHR = RenderingFragmentShadingRateAttachmentInfoKHR
{
RenderingFragmentShadingRateAttachmentInfoKHR -> ImageView
imageView :: ImageView
,
RenderingFragmentShadingRateAttachmentInfoKHR -> ImageLayout
imageLayout :: ImageLayout
,
RenderingFragmentShadingRateAttachmentInfoKHR
-> "fragmentSize" ::: Extent2D
shadingRateAttachmentTexelSize :: Extent2D
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (RenderingFragmentShadingRateAttachmentInfoKHR)
#endif
deriving instance Show RenderingFragmentShadingRateAttachmentInfoKHR
instance ToCStruct RenderingFragmentShadingRateAttachmentInfoKHR where
withCStruct :: forall b.
RenderingFragmentShadingRateAttachmentInfoKHR
-> (Ptr RenderingFragmentShadingRateAttachmentInfoKHR -> IO b)
-> IO b
withCStruct RenderingFragmentShadingRateAttachmentInfoKHR
x Ptr RenderingFragmentShadingRateAttachmentInfoKHR -> IO b
f = Int
-> (Ptr RenderingFragmentShadingRateAttachmentInfoKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR -> IO b)
-> IO b)
-> (Ptr RenderingFragmentShadingRateAttachmentInfoKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p -> Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> RenderingFragmentShadingRateAttachmentInfoKHR -> IO b -> IO b
forall b.
Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> RenderingFragmentShadingRateAttachmentInfoKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p RenderingFragmentShadingRateAttachmentInfoKHR
x (Ptr RenderingFragmentShadingRateAttachmentInfoKHR -> IO b
f Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p)
pokeCStruct :: forall b.
Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> RenderingFragmentShadingRateAttachmentInfoKHR -> IO b -> IO b
pokeCStruct Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p RenderingFragmentShadingRateAttachmentInfoKHR{"fragmentSize" ::: Extent2D
ImageLayout
ImageView
imageView :: RenderingFragmentShadingRateAttachmentInfoKHR -> ImageView
imageLayout :: RenderingFragmentShadingRateAttachmentInfoKHR -> ImageLayout
shadingRateAttachmentTexelSize :: RenderingFragmentShadingRateAttachmentInfoKHR
-> "fragmentSize" ::: Extent2D
imageView :: ImageView
imageLayout :: ImageLayout
shadingRateAttachmentTexelSize :: "fragmentSize" ::: Extent2D
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ImageView -> ImageView -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr ImageView
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageView)) (ImageView
imageView)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
imageLayout)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
shadingRateAttachmentTexelSize)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr RenderingFragmentShadingRateAttachmentInfoKHR -> IO b -> IO b
pokeZeroCStruct Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
Ptr ("fragmentSize" ::: Extent2D)
-> ("fragmentSize" ::: Extent2D) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr ("fragmentSize" ::: Extent2D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Extent2D)) ("fragmentSize" ::: Extent2D
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct RenderingFragmentShadingRateAttachmentInfoKHR where
peekCStruct :: Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> IO RenderingFragmentShadingRateAttachmentInfoKHR
peekCStruct Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p = do
imageView <- forall a. Storable a => Ptr a -> IO a
peek @ImageView ((Ptr RenderingFragmentShadingRateAttachmentInfoKHR
p Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> Int -> Ptr ImageView
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageView))
imageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))
shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))
pure $ RenderingFragmentShadingRateAttachmentInfoKHR
imageView imageLayout shadingRateAttachmentTexelSize
instance Storable RenderingFragmentShadingRateAttachmentInfoKHR where
sizeOf :: RenderingFragmentShadingRateAttachmentInfoKHR -> Int
sizeOf ~RenderingFragmentShadingRateAttachmentInfoKHR
_ = Int
40
alignment :: RenderingFragmentShadingRateAttachmentInfoKHR -> Int
alignment ~RenderingFragmentShadingRateAttachmentInfoKHR
_ = Int
8
peek :: Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> IO RenderingFragmentShadingRateAttachmentInfoKHR
peek = Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> IO RenderingFragmentShadingRateAttachmentInfoKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> RenderingFragmentShadingRateAttachmentInfoKHR -> IO ()
poke Ptr RenderingFragmentShadingRateAttachmentInfoKHR
ptr RenderingFragmentShadingRateAttachmentInfoKHR
poked = Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> RenderingFragmentShadingRateAttachmentInfoKHR -> IO () -> IO ()
forall b.
Ptr RenderingFragmentShadingRateAttachmentInfoKHR
-> RenderingFragmentShadingRateAttachmentInfoKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderingFragmentShadingRateAttachmentInfoKHR
ptr RenderingFragmentShadingRateAttachmentInfoKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero RenderingFragmentShadingRateAttachmentInfoKHR where
zero :: RenderingFragmentShadingRateAttachmentInfoKHR
zero = ImageView
-> ImageLayout
-> ("fragmentSize" ::: Extent2D)
-> RenderingFragmentShadingRateAttachmentInfoKHR
RenderingFragmentShadingRateAttachmentInfoKHR
ImageView
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
"fragmentSize" ::: Extent2D
forall a. Zero a => a
zero
newtype FragmentShadingRateCombinerOpKHR = FragmentShadingRateCombinerOpKHR Int32
deriving newtype (FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
(FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool)
-> (FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool)
-> Eq FragmentShadingRateCombinerOpKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
== :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
$c/= :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
/= :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
Eq, Eq FragmentShadingRateCombinerOpKHR
Eq FragmentShadingRateCombinerOpKHR =>
(FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Ordering)
-> (FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool)
-> (FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool)
-> (FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool)
-> (FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool)
-> (FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR)
-> (FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR)
-> Ord FragmentShadingRateCombinerOpKHR
FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Ordering
FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
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
$ccompare :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Ordering
compare :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Ordering
$c< :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
< :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
$c<= :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
<= :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
$c> :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
> :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
$c>= :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
>= :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> Bool
$cmax :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
max :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
$cmin :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
min :: FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR
Ord, Ptr FragmentShadingRateCombinerOpKHR
-> IO FragmentShadingRateCombinerOpKHR
Ptr FragmentShadingRateCombinerOpKHR
-> Int -> IO FragmentShadingRateCombinerOpKHR
Ptr FragmentShadingRateCombinerOpKHR
-> Int -> FragmentShadingRateCombinerOpKHR -> IO ()
Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ()
FragmentShadingRateCombinerOpKHR -> Int
(FragmentShadingRateCombinerOpKHR -> Int)
-> (FragmentShadingRateCombinerOpKHR -> Int)
-> (Ptr FragmentShadingRateCombinerOpKHR
-> Int -> IO FragmentShadingRateCombinerOpKHR)
-> (Ptr FragmentShadingRateCombinerOpKHR
-> Int -> FragmentShadingRateCombinerOpKHR -> IO ())
-> (forall b. Ptr b -> Int -> IO FragmentShadingRateCombinerOpKHR)
-> (forall b.
Ptr b -> Int -> FragmentShadingRateCombinerOpKHR -> IO ())
-> (Ptr FragmentShadingRateCombinerOpKHR
-> IO FragmentShadingRateCombinerOpKHR)
-> (Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ())
-> Storable FragmentShadingRateCombinerOpKHR
forall b. Ptr b -> Int -> IO FragmentShadingRateCombinerOpKHR
forall b. Ptr b -> Int -> FragmentShadingRateCombinerOpKHR -> 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
$csizeOf :: FragmentShadingRateCombinerOpKHR -> Int
sizeOf :: FragmentShadingRateCombinerOpKHR -> Int
$calignment :: FragmentShadingRateCombinerOpKHR -> Int
alignment :: FragmentShadingRateCombinerOpKHR -> Int
$cpeekElemOff :: Ptr FragmentShadingRateCombinerOpKHR
-> Int -> IO FragmentShadingRateCombinerOpKHR
peekElemOff :: Ptr FragmentShadingRateCombinerOpKHR
-> Int -> IO FragmentShadingRateCombinerOpKHR
$cpokeElemOff :: Ptr FragmentShadingRateCombinerOpKHR
-> Int -> FragmentShadingRateCombinerOpKHR -> IO ()
pokeElemOff :: Ptr FragmentShadingRateCombinerOpKHR
-> Int -> FragmentShadingRateCombinerOpKHR -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO FragmentShadingRateCombinerOpKHR
peekByteOff :: forall b. Ptr b -> Int -> IO FragmentShadingRateCombinerOpKHR
$cpokeByteOff :: forall b. Ptr b -> Int -> FragmentShadingRateCombinerOpKHR -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> FragmentShadingRateCombinerOpKHR -> IO ()
$cpeek :: Ptr FragmentShadingRateCombinerOpKHR
-> IO FragmentShadingRateCombinerOpKHR
peek :: Ptr FragmentShadingRateCombinerOpKHR
-> IO FragmentShadingRateCombinerOpKHR
$cpoke :: Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ()
poke :: Ptr FragmentShadingRateCombinerOpKHR
-> FragmentShadingRateCombinerOpKHR -> IO ()
Storable, FragmentShadingRateCombinerOpKHR
FragmentShadingRateCombinerOpKHR
-> Zero FragmentShadingRateCombinerOpKHR
forall a. a -> Zero a
$czero :: FragmentShadingRateCombinerOpKHR
zero :: FragmentShadingRateCombinerOpKHR
Zero)
pattern $mFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR :: forall {r}.
FragmentShadingRateCombinerOpKHR
-> ((# #) -> r) -> ((# #) -> r) -> r
$bFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR :: FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = FragmentShadingRateCombinerOpKHR 0
pattern $mFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR :: forall {r}.
FragmentShadingRateCombinerOpKHR
-> ((# #) -> r) -> ((# #) -> r) -> r
$bFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR :: FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = FragmentShadingRateCombinerOpKHR 1
pattern $mFRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR :: forall {r}.
FragmentShadingRateCombinerOpKHR
-> ((# #) -> r) -> ((# #) -> r) -> r
$bFRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR :: FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = FragmentShadingRateCombinerOpKHR 2
pattern $mFRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR :: forall {r}.
FragmentShadingRateCombinerOpKHR
-> ((# #) -> r) -> ((# #) -> r) -> r
$bFRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR :: FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = FragmentShadingRateCombinerOpKHR 3
pattern $mFRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR :: forall {r}.
FragmentShadingRateCombinerOpKHR
-> ((# #) -> r) -> ((# #) -> r) -> r
$bFRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR :: FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = FragmentShadingRateCombinerOpKHR 4
{-# COMPLETE
FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
, FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
, FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR
, FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR
, FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR ::
FragmentShadingRateCombinerOpKHR
#-}
conNameFragmentShadingRateCombinerOpKHR :: String
conNameFragmentShadingRateCombinerOpKHR :: String
conNameFragmentShadingRateCombinerOpKHR = String
"FragmentShadingRateCombinerOpKHR"
enumPrefixFragmentShadingRateCombinerOpKHR :: String
enumPrefixFragmentShadingRateCombinerOpKHR :: String
enumPrefixFragmentShadingRateCombinerOpKHR = String
"FRAGMENT_SHADING_RATE_COMBINER_OP_"
showTableFragmentShadingRateCombinerOpKHR :: [(FragmentShadingRateCombinerOpKHR, String)]
showTableFragmentShadingRateCombinerOpKHR :: [(FragmentShadingRateCombinerOpKHR, String)]
showTableFragmentShadingRateCombinerOpKHR =
[
( FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
, String
"KEEP_KHR"
)
,
( FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
, String
"REPLACE_KHR"
)
,
( FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR
, String
"MIN_KHR"
)
,
( FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR
, String
"MAX_KHR"
)
,
( FragmentShadingRateCombinerOpKHR
FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
, String
"MUL_KHR"
)
]
instance Show FragmentShadingRateCombinerOpKHR where
showsPrec :: Int -> FragmentShadingRateCombinerOpKHR -> ShowS
showsPrec =
String
-> [(FragmentShadingRateCombinerOpKHR, String)]
-> String
-> (FragmentShadingRateCombinerOpKHR -> Int32)
-> (Int32 -> ShowS)
-> Int
-> FragmentShadingRateCombinerOpKHR
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixFragmentShadingRateCombinerOpKHR
[(FragmentShadingRateCombinerOpKHR, String)]
showTableFragmentShadingRateCombinerOpKHR
String
conNameFragmentShadingRateCombinerOpKHR
(\(FragmentShadingRateCombinerOpKHR Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read FragmentShadingRateCombinerOpKHR where
readPrec :: ReadPrec FragmentShadingRateCombinerOpKHR
readPrec =
String
-> [(FragmentShadingRateCombinerOpKHR, String)]
-> String
-> (Int32 -> FragmentShadingRateCombinerOpKHR)
-> ReadPrec FragmentShadingRateCombinerOpKHR
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixFragmentShadingRateCombinerOpKHR
[(FragmentShadingRateCombinerOpKHR, String)]
showTableFragmentShadingRateCombinerOpKHR
String
conNameFragmentShadingRateCombinerOpKHR
Int32 -> FragmentShadingRateCombinerOpKHR
FragmentShadingRateCombinerOpKHR
type KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION = 2
pattern KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_FRAGMENT_SHADING_RATE_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_FRAGMENT_SHADING_RATE_SPEC_VERSION :: forall a. Integral a => a
KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION = 2
type KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME = "VK_KHR_fragment_shading_rate"
pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME = "VK_KHR_fragment_shading_rate"