{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_descriptor_buffer ( getDescriptorSetLayoutSizeEXT
, getDescriptorSetLayoutBindingOffsetEXT
, getDescriptorEXT
, cmdBindDescriptorBuffersEXT
, cmdSetDescriptorBufferOffsetsEXT
, cmdBindDescriptorBufferEmbeddedSamplersEXT
, getBufferOpaqueCaptureDescriptorDataEXT
, getImageOpaqueCaptureDescriptorDataEXT
, getImageViewOpaqueCaptureDescriptorDataEXT
, getSamplerOpaqueCaptureDescriptorDataEXT
, getAccelerationStructureOpaqueCaptureDescriptorDataEXT
, pattern IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
, PhysicalDeviceDescriptorBufferFeaturesEXT(..)
, PhysicalDeviceDescriptorBufferPropertiesEXT(..)
, PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(..)
, DescriptorAddressInfoEXT(..)
, DescriptorBufferBindingInfoEXT(..)
, DescriptorBufferBindingPushDescriptorBufferHandleEXT(..)
, DescriptorGetInfoEXT(..)
, BufferCaptureDescriptorDataInfoEXT(..)
, ImageCaptureDescriptorDataInfoEXT(..)
, ImageViewCaptureDescriptorDataInfoEXT(..)
, SamplerCaptureDescriptorDataInfoEXT(..)
, AccelerationStructureCaptureDescriptorDataInfoEXT(..)
, OpaqueCaptureDescriptorDataCreateInfoEXT(..)
, DescriptorDataEXT(..)
, peekDescriptorDataEXT
, EXT_DESCRIPTOR_BUFFER_SPEC_VERSION
, pattern EXT_DESCRIPTOR_BUFFER_SPEC_VERSION
, EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME
, pattern EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME
, AccelerationStructureKHR(..)
, AccelerationStructureNV(..)
, AccelerationStructureCreateFlagBitsKHR(..)
, AccelerationStructureCreateFlagsKHR
) where
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Exception.Base (bracket)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Data.Typeable (eqT)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Marshal.Alloc (callocBytes)
import Foreign.Marshal.Alloc (free)
import Foreign.Marshal.Utils (maybePeek)
import Foreign.Marshal.Utils (with)
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 Data.Coerce (coerce)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Control.Monad.Trans.Cont (runContT)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import Foreign.C.Types (CSize(..))
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
import Data.String (IsString)
import Data.Type.Equality ((:~:)(Refl))
import Data.Typeable (Typeable)
import Foreign.C.Types (CSize)
import Foreign.C.Types (CSize(..))
import Foreign.C.Types (CSize(CSize))
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 Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import Data.Word (Word32)
import Data.Word (Word64)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.CStruct.Extends (forgetExtensions)
import Vulkan.CStruct.Extends (pokeSomeCStruct)
import Vulkan.NamedType ((:::))
import Vulkan.Extensions.Handles (AccelerationStructureKHR)
import Vulkan.Extensions.Handles (AccelerationStructureNV)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Handles (Buffer)
import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags)
import {-# SOURCE #-} Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap (BufferUsageFlags2CreateInfo)
import Vulkan.CStruct.Extends (Chain)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
import Vulkan.Core10.Handles (CommandBuffer_T)
import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_tensors (DescriptorGetTensorInfoARM)
import Vulkan.Core10.DescriptorSet (DescriptorImageInfo)
import Vulkan.Core10.Handles (DescriptorSetLayout)
import Vulkan.Core10.Handles (DescriptorSetLayout(..))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType)
import Vulkan.Core10.Handles (Device)
import Vulkan.Core10.Handles (Device(..))
import Vulkan.Core10.Handles (Device(Device))
import Vulkan.Core10.FundamentalTypes (DeviceAddress)
import Vulkan.Dynamic (DeviceCmds(pVkCmdBindDescriptorBufferEmbeddedSamplersEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdBindDescriptorBuffersEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDescriptorBufferOffsetsEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetBufferOpaqueCaptureDescriptorDataEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetDescriptorEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetDescriptorSetLayoutBindingOffsetEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetDescriptorSetLayoutSizeEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetImageOpaqueCaptureDescriptorDataEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetImageViewOpaqueCaptureDescriptorDataEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetSamplerOpaqueCaptureDescriptorDataEXT))
import Vulkan.Core10.FundamentalTypes (DeviceSize)
import Vulkan.Core10.Handles (Device_T)
import Vulkan.CStruct.Extends (Extends)
import Vulkan.CStruct.Extends (Extendss)
import Vulkan.CStruct.Extends (Extensible(..))
import Vulkan.Core10.Enums.Format (Format)
import Vulkan.Core10.Handles (Image)
import Vulkan.Core10.Handles (ImageView)
import Vulkan.CStruct.Extends (PeekChain)
import Vulkan.CStruct.Extends (PeekChain(..))
import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)
import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint(..))
import Vulkan.Core10.Handles (PipelineLayout)
import Vulkan.Core10.Handles (PipelineLayout(..))
import Vulkan.CStruct.Extends (PokeChain)
import Vulkan.CStruct.Extends (PokeChain(..))
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.Core10.Handles (Sampler)
import Vulkan.CStruct.Extends (SomeStruct)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_INPUT_ATTACHMENT))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_SAMPLED_IMAGE))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_SAMPLER))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_STORAGE_BUFFER))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_STORAGE_IMAGE))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_UNIFORM_BUFFER))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER))
import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlagBits(IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCreateFlagBitsKHR(..))
import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCreateFlagsKHR)
import Vulkan.Extensions.Handles (AccelerationStructureKHR(..))
import Vulkan.Extensions.Handles (AccelerationStructureNV(..))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetDescriptorSetLayoutSizeEXT
:: FunPtr (Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceSize -> IO ()) -> Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceSize -> IO ()
getDescriptorSetLayoutSizeEXT :: forall io
. (MonadIO io)
=>
Device
->
DescriptorSetLayout
-> io (("layoutSizeInBytes" ::: DeviceSize))
getDescriptorSetLayoutSizeEXT :: forall (io :: * -> *).
MonadIO io =>
Device -> DescriptorSetLayout -> io DeviceAddress
getDescriptorSetLayoutSizeEXT Device
device DescriptorSetLayout
layout = IO DeviceAddress -> io DeviceAddress
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DeviceAddress -> io DeviceAddress)
-> (ContT DeviceAddress IO DeviceAddress -> IO DeviceAddress)
-> ContT DeviceAddress IO DeviceAddress
-> io DeviceAddress
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT DeviceAddress IO DeviceAddress -> IO DeviceAddress
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT DeviceAddress IO DeviceAddress -> io DeviceAddress)
-> ContT DeviceAddress IO DeviceAddress -> io DeviceAddress
forall a b. (a -> b) -> a -> b
$ do
let vkGetDescriptorSetLayoutSizeEXTPtr :: FunPtr
(Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceAddress -> IO ())
vkGetDescriptorSetLayoutSizeEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceAddress -> IO ())
pVkGetDescriptorSetLayoutSizeEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT DeviceAddress IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT DeviceAddress m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT DeviceAddress IO ())
-> IO () -> ContT DeviceAddress IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceAddress -> IO ())
vkGetDescriptorSetLayoutSizeEXTPtr FunPtr
(Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceAddress -> IO ())
-> FunPtr
(Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceAddress -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceAddress -> 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 vkGetDescriptorSetLayoutSizeEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetDescriptorSetLayoutSizeEXT' :: Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceAddress -> IO ()
vkGetDescriptorSetLayoutSizeEXT' = FunPtr
(Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceAddress -> IO ())
-> Ptr Device_T
-> DescriptorSetLayout
-> Ptr DeviceAddress
-> IO ()
mkVkGetDescriptorSetLayoutSizeEXT FunPtr
(Ptr Device_T -> DescriptorSetLayout -> Ptr DeviceAddress -> IO ())
vkGetDescriptorSetLayoutSizeEXTPtr
pPLayoutSizeInBytes <- ((Ptr DeviceAddress -> IO DeviceAddress) -> IO DeviceAddress)
-> ContT DeviceAddress IO (Ptr DeviceAddress)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DeviceAddress -> IO DeviceAddress) -> IO DeviceAddress)
-> ContT DeviceAddress IO (Ptr DeviceAddress))
-> ((Ptr DeviceAddress -> IO DeviceAddress) -> IO DeviceAddress)
-> ContT DeviceAddress IO (Ptr DeviceAddress)
forall a b. (a -> b) -> a -> b
$ IO (Ptr DeviceAddress)
-> (Ptr DeviceAddress -> IO ())
-> (Ptr DeviceAddress -> IO DeviceAddress)
-> IO DeviceAddress
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @DeviceSize Int
8) Ptr DeviceAddress -> IO ()
forall a. Ptr a -> IO ()
free
lift $ traceAroundEvent "vkGetDescriptorSetLayoutSizeEXT" (vkGetDescriptorSetLayoutSizeEXT'
(deviceHandle (device))
(layout)
(pPLayoutSizeInBytes))
pLayoutSizeInBytes <- lift $ peek @DeviceSize pPLayoutSizeInBytes
pure $ (pLayoutSizeInBytes)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetDescriptorSetLayoutBindingOffsetEXT
:: FunPtr (Ptr Device_T -> DescriptorSetLayout -> Word32 -> Ptr DeviceSize -> IO ()) -> Ptr Device_T -> DescriptorSetLayout -> Word32 -> Ptr DeviceSize -> IO ()
getDescriptorSetLayoutBindingOffsetEXT :: forall io
. (MonadIO io)
=>
Device
->
DescriptorSetLayout
->
("binding" ::: Word32)
-> io (("offset" ::: DeviceSize))
getDescriptorSetLayoutBindingOffsetEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> io DeviceAddress
getDescriptorSetLayoutBindingOffsetEXT Device
device
DescriptorSetLayout
layout
"binding" ::: Word32
binding = IO DeviceAddress -> io DeviceAddress
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DeviceAddress -> io DeviceAddress)
-> (ContT DeviceAddress IO DeviceAddress -> IO DeviceAddress)
-> ContT DeviceAddress IO DeviceAddress
-> io DeviceAddress
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT DeviceAddress IO DeviceAddress -> IO DeviceAddress
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT DeviceAddress IO DeviceAddress -> io DeviceAddress)
-> ContT DeviceAddress IO DeviceAddress -> io DeviceAddress
forall a b. (a -> b) -> a -> b
$ do
let vkGetDescriptorSetLayoutBindingOffsetEXTPtr :: FunPtr
(Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
vkGetDescriptorSetLayoutBindingOffsetEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
pVkGetDescriptorSetLayoutBindingOffsetEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT DeviceAddress IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT DeviceAddress m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT DeviceAddress IO ())
-> IO () -> ContT DeviceAddress IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
vkGetDescriptorSetLayoutBindingOffsetEXTPtr FunPtr
(Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
-> FunPtr
(Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> 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 vkGetDescriptorSetLayoutBindingOffsetEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetDescriptorSetLayoutBindingOffsetEXT' :: Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ()
vkGetDescriptorSetLayoutBindingOffsetEXT' = FunPtr
(Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
-> Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ()
mkVkGetDescriptorSetLayoutBindingOffsetEXT FunPtr
(Ptr Device_T
-> DescriptorSetLayout
-> ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
vkGetDescriptorSetLayoutBindingOffsetEXTPtr
pPOffset <- ((Ptr DeviceAddress -> IO DeviceAddress) -> IO DeviceAddress)
-> ContT DeviceAddress IO (Ptr DeviceAddress)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DeviceAddress -> IO DeviceAddress) -> IO DeviceAddress)
-> ContT DeviceAddress IO (Ptr DeviceAddress))
-> ((Ptr DeviceAddress -> IO DeviceAddress) -> IO DeviceAddress)
-> ContT DeviceAddress IO (Ptr DeviceAddress)
forall a b. (a -> b) -> a -> b
$ IO (Ptr DeviceAddress)
-> (Ptr DeviceAddress -> IO ())
-> (Ptr DeviceAddress -> IO DeviceAddress)
-> IO DeviceAddress
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @DeviceSize Int
8) Ptr DeviceAddress -> IO ()
forall a. Ptr a -> IO ()
free
lift $ traceAroundEvent "vkGetDescriptorSetLayoutBindingOffsetEXT" (vkGetDescriptorSetLayoutBindingOffsetEXT'
(deviceHandle (device))
(layout)
(binding)
(pPOffset))
pOffset <- lift $ peek @DeviceSize pPOffset
pure $ (pOffset)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetDescriptorEXT
:: FunPtr (Ptr Device_T -> Ptr (SomeStruct DescriptorGetInfoEXT) -> CSize -> Ptr () -> IO ()) -> Ptr Device_T -> Ptr (SomeStruct DescriptorGetInfoEXT) -> CSize -> Ptr () -> IO ()
getDescriptorEXT :: forall a io
. (Extendss DescriptorGetInfoEXT a, PokeChain a, MonadIO io)
=>
Device
->
("descriptorInfo" ::: DescriptorGetInfoEXT a)
->
("dataSize" ::: Word64)
->
("descriptor" ::: Ptr ())
-> io ()
getDescriptorEXT :: forall (a :: [*]) (io :: * -> *).
(Extendss DescriptorGetInfoEXT a, PokeChain a, MonadIO io) =>
Device
-> ("descriptorInfo" ::: DescriptorGetInfoEXT a)
-> DeviceAddress
-> ("descriptor" ::: Ptr ())
-> io ()
getDescriptorEXT Device
device
DescriptorGetInfoEXT a
descriptorInfo
DeviceAddress
dataSize
"descriptor" ::: Ptr ()
descriptor = 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 vkGetDescriptorEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> IO ())
vkGetDescriptorEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> IO ())
pVkGetDescriptorEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: 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 Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> IO ())
vkGetDescriptorEXTPtr FunPtr
(Ptr Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> IO ())
-> FunPtr
(Ptr Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> 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 vkGetDescriptorEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetDescriptorEXT' :: Ptr Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> IO ()
vkGetDescriptorEXT' = FunPtr
(Ptr Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> IO ())
-> Ptr Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> IO ()
mkVkGetDescriptorEXT FunPtr
(Ptr Device_T
-> Ptr (SomeStruct DescriptorGetInfoEXT)
-> CSize
-> ("descriptor" ::: Ptr ())
-> IO ())
vkGetDescriptorEXTPtr
pDescriptorInfo <- ((Ptr (DescriptorGetInfoEXT a) -> IO ()) -> IO ())
-> ContT () IO (Ptr (DescriptorGetInfoEXT a))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (DescriptorGetInfoEXT a) -> IO ()) -> IO ())
-> ContT () IO (Ptr (DescriptorGetInfoEXT a)))
-> ((Ptr (DescriptorGetInfoEXT a) -> IO ()) -> IO ())
-> ContT () IO (Ptr (DescriptorGetInfoEXT a))
forall a b. (a -> b) -> a -> b
$ DescriptorGetInfoEXT a
-> (Ptr (DescriptorGetInfoEXT a) -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DescriptorGetInfoEXT a
-> (Ptr (DescriptorGetInfoEXT a) -> IO b) -> IO b
withCStruct (DescriptorGetInfoEXT a
descriptorInfo)
lift $ traceAroundEvent "vkGetDescriptorEXT" (vkGetDescriptorEXT'
(deviceHandle (device))
(forgetExtensions pDescriptorInfo)
(CSize (dataSize))
(descriptor))
pure $ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdBindDescriptorBuffersEXT
:: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (SomeStruct DescriptorBufferBindingInfoEXT) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (SomeStruct DescriptorBufferBindingInfoEXT) -> IO ()
cmdBindDescriptorBuffersEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("bindingInfos" ::: Vector (SomeStruct DescriptorBufferBindingInfoEXT))
-> io ()
cmdBindDescriptorBuffersEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> ("bindingInfos"
::: Vector (SomeStruct DescriptorBufferBindingInfoEXT))
-> io ()
cmdBindDescriptorBuffersEXT CommandBuffer
commandBuffer "bindingInfos"
::: Vector (SomeStruct DescriptorBufferBindingInfoEXT)
bindingInfos = 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 vkCmdBindDescriptorBuffersEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> IO ())
vkCmdBindDescriptorBuffersEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> IO ())
pVkCmdBindDescriptorBuffersEXT (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
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> IO ())
vkCmdBindDescriptorBuffersEXTPtr FunPtr
(Ptr CommandBuffer_T
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> 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 vkCmdBindDescriptorBuffersEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdBindDescriptorBuffersEXT' :: Ptr CommandBuffer_T
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> IO ()
vkCmdBindDescriptorBuffersEXT' = FunPtr
(Ptr CommandBuffer_T
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> IO ())
-> Ptr CommandBuffer_T
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> IO ()
mkVkCmdBindDescriptorBuffersEXT FunPtr
(Ptr CommandBuffer_T
-> ("binding" ::: Word32)
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> IO ())
vkCmdBindDescriptorBuffersEXTPtr
pPBindingInfos <- ((Ptr (DescriptorBufferBindingInfoEXT (ZonkAny 0)) -> IO ())
-> IO ())
-> ContT () IO (Ptr (DescriptorBufferBindingInfoEXT (ZonkAny 0)))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (DescriptorBufferBindingInfoEXT (ZonkAny 0)) -> IO ())
-> IO ())
-> ContT () IO (Ptr (DescriptorBufferBindingInfoEXT (ZonkAny 0))))
-> ((Ptr (DescriptorBufferBindingInfoEXT (ZonkAny 0)) -> IO ())
-> IO ())
-> ContT () IO (Ptr (DescriptorBufferBindingInfoEXT (ZonkAny 0)))
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @(DescriptorBufferBindingInfoEXT _) ((("bindingInfos"
::: Vector (SomeStruct DescriptorBufferBindingInfoEXT))
-> Int
forall a. Vector a -> Int
Data.Vector.length ("bindingInfos"
::: Vector (SomeStruct DescriptorBufferBindingInfoEXT)
bindingInfos)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
32)
Data.Vector.imapM_ (\Int
i SomeStruct DescriptorBufferBindingInfoEXT
e -> ((() -> IO ()) -> IO ()) -> ContT () IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO ()) -> IO ()) -> ContT () IO ())
-> ((() -> IO ()) -> IO ()) -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
-> SomeStruct DescriptorBufferBindingInfoEXT -> IO () -> IO ()
forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
Ptr (SomeStruct a) -> SomeStruct a -> IO b -> IO b
pokeSomeCStruct (Ptr (DescriptorBufferBindingInfoEXT (ZonkAny 1))
-> Ptr (SomeStruct DescriptorBufferBindingInfoEXT)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (DescriptorBufferBindingInfoEXT (ZonkAny 0))
pPBindingInfos Ptr (DescriptorBufferBindingInfoEXT (ZonkAny 0))
-> Int -> Ptr (DescriptorBufferBindingInfoEXT w)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
32 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (DescriptorBufferBindingInfoEXT _))) (SomeStruct DescriptorBufferBindingInfoEXT
e) (IO () -> IO ())
-> ((() -> IO ()) -> IO ()) -> (() -> IO ()) -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$ ())) (bindingInfos)
lift $ traceAroundEvent "vkCmdBindDescriptorBuffersEXT" (vkCmdBindDescriptorBuffersEXT'
(commandBufferHandle (commandBuffer))
((fromIntegral (Data.Vector.length $ (bindingInfos)) :: Word32))
(forgetExtensions (pPBindingInfos)))
pure $ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdSetDescriptorBufferOffsetsEXT
:: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr Word32 -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr Word32 -> Ptr DeviceSize -> IO ()
cmdSetDescriptorBufferOffsetsEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
PipelineBindPoint
->
PipelineLayout
->
("firstSet" ::: Word32)
->
("bufferIndices" ::: Vector Word32)
->
("offsets" ::: Vector DeviceSize)
-> io ()
cmdSetDescriptorBufferOffsetsEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("bufferIndices" ::: Vector ("binding" ::: Word32))
-> ("offsets" ::: Vector DeviceAddress)
-> io ()
cmdSetDescriptorBufferOffsetsEXT CommandBuffer
commandBuffer
PipelineBindPoint
pipelineBindPoint
PipelineLayout
layout
"binding" ::: Word32
firstSet
"bufferIndices" ::: Vector ("binding" ::: Word32)
bufferIndices
"offsets" ::: Vector DeviceAddress
offsets = 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 vkCmdSetDescriptorBufferOffsetsEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
vkCmdSetDescriptorBufferOffsetsEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
pVkCmdSetDescriptorBufferOffsetsEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: CommandBuffer -> DeviceCmds
deviceCmds :: 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
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
vkCmdSetDescriptorBufferOffsetsEXTPtr FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> 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 vkCmdSetDescriptorBufferOffsetsEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdSetDescriptorBufferOffsetsEXT' :: Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ()
vkCmdSetDescriptorBufferOffsetsEXT' = FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
-> Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ()
mkVkCmdSetDescriptorBufferOffsetsEXT FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> Ptr ("binding" ::: Word32)
-> Ptr DeviceAddress
-> IO ())
vkCmdSetDescriptorBufferOffsetsEXTPtr
let pBufferIndicesLength :: Int
pBufferIndicesLength = ("bufferIndices" ::: Vector ("binding" ::: Word32)) -> Int
forall a. Vector a -> Int
Data.Vector.length (("bufferIndices" ::: Vector ("binding" ::: Word32)) -> Int)
-> ("bufferIndices" ::: Vector ("binding" ::: Word32)) -> Int
forall a b. (a -> b) -> a -> b
$ ("bufferIndices" ::: Vector ("binding" ::: Word32)
bufferIndices)
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 ((("offsets" ::: Vector DeviceAddress) -> Int
forall a. Vector a -> Int
Data.Vector.length (("offsets" ::: Vector DeviceAddress) -> Int)
-> ("offsets" ::: Vector DeviceAddress) -> Int
forall a b. (a -> b) -> a -> b
$ ("offsets" ::: Vector DeviceAddress
offsets)) Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
pBufferIndicesLength) (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
"pOffsets and pBufferIndices must have the same length" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
pPBufferIndices <- ((Ptr ("binding" ::: Word32) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("binding" ::: Word32))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ("binding" ::: Word32) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("binding" ::: Word32)))
-> ((Ptr ("binding" ::: Word32) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("binding" ::: Word32))
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @Word32 ((("bufferIndices" ::: Vector ("binding" ::: Word32)) -> Int
forall a. Vector a -> Int
Data.Vector.length ("bufferIndices" ::: Vector ("binding" ::: Word32)
bufferIndices)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
4)
lift $ Data.Vector.imapM_ (\Int
i "binding" ::: Word32
e -> Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ("binding" ::: Word32)
pPBufferIndices Ptr ("binding" ::: Word32) -> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
4 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr Word32) ("binding" ::: Word32
e)) (bufferIndices)
pPOffsets <- ContT $ allocaBytes @DeviceSize ((Data.Vector.length (offsets)) * 8)
lift $ Data.Vector.imapM_ (\Int
i DeviceAddress
e -> Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr DeviceAddress
pPOffsets Ptr DeviceAddress -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
8 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr DeviceSize) (DeviceAddress
e)) (offsets)
lift $ traceAroundEvent "vkCmdSetDescriptorBufferOffsetsEXT" (vkCmdSetDescriptorBufferOffsetsEXT'
(commandBufferHandle (commandBuffer))
(pipelineBindPoint)
(layout)
(firstSet)
((fromIntegral pBufferIndicesLength :: Word32))
(pPBufferIndices)
(pPOffsets))
pure $ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdBindDescriptorBufferEmbeddedSamplersEXT
:: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> IO ()
cmdBindDescriptorBufferEmbeddedSamplersEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
PipelineBindPoint
->
PipelineLayout
->
("set" ::: Word32)
-> io ()
cmdBindDescriptorBufferEmbeddedSamplersEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> io ()
cmdBindDescriptorBufferEmbeddedSamplersEXT CommandBuffer
commandBuffer
PipelineBindPoint
pipelineBindPoint
PipelineLayout
layout
"binding" ::: Word32
set = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdBindDescriptorBufferEmbeddedSamplersEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ())
vkCmdBindDescriptorBufferEmbeddedSamplersEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ())
pVkCmdBindDescriptorBufferEmbeddedSamplersEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ())
vkCmdBindDescriptorBufferEmbeddedSamplersEXTPtr FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> 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 vkCmdBindDescriptorBufferEmbeddedSamplersEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdBindDescriptorBufferEmbeddedSamplersEXT' :: Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ()
vkCmdBindDescriptorBufferEmbeddedSamplersEXT' = FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ())
-> Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ()
mkVkCmdBindDescriptorBufferEmbeddedSamplersEXT FunPtr
(Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ())
vkCmdBindDescriptorBufferEmbeddedSamplersEXTPtr
String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdBindDescriptorBufferEmbeddedSamplersEXT" (Ptr CommandBuffer_T
-> PipelineBindPoint
-> PipelineLayout
-> ("binding" ::: Word32)
-> IO ()
vkCmdBindDescriptorBufferEmbeddedSamplersEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
(PipelineBindPoint
pipelineBindPoint)
(PipelineLayout
layout)
("binding" ::: Word32
set))
() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetBufferOpaqueCaptureDescriptorDataEXT
:: FunPtr (Ptr Device_T -> Ptr BufferCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr BufferCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result
getBufferOpaqueCaptureDescriptorDataEXT :: forall io
. (MonadIO io)
=>
Device
->
BufferCaptureDescriptorDataInfoEXT
->
("data" ::: Ptr ())
-> io ()
getBufferOpaqueCaptureDescriptorDataEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> io ()
getBufferOpaqueCaptureDescriptorDataEXT Device
device
BufferCaptureDescriptorDataInfoEXT
info
"descriptor" ::: Ptr ()
data' = 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 vkGetBufferOpaqueCaptureDescriptorDataEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetBufferOpaqueCaptureDescriptorDataEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
pVkGetBufferOpaqueCaptureDescriptorDataEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: 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 Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetBufferOpaqueCaptureDescriptorDataEXTPtr FunPtr
(Ptr Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> 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 vkGetBufferOpaqueCaptureDescriptorDataEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetBufferOpaqueCaptureDescriptorDataEXT' :: Ptr Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
vkGetBufferOpaqueCaptureDescriptorDataEXT' = FunPtr
(Ptr Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Ptr Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
mkVkGetBufferOpaqueCaptureDescriptorDataEXT FunPtr
(Ptr Device_T
-> Ptr BufferCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetBufferOpaqueCaptureDescriptorDataEXTPtr
pInfo <- ((Ptr BufferCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr BufferCaptureDescriptorDataInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr BufferCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr BufferCaptureDescriptorDataInfoEXT))
-> ((Ptr BufferCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr BufferCaptureDescriptorDataInfoEXT)
forall a b. (a -> b) -> a -> b
$ BufferCaptureDescriptorDataInfoEXT
-> (Ptr BufferCaptureDescriptorDataInfoEXT -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
BufferCaptureDescriptorDataInfoEXT
-> (Ptr BufferCaptureDescriptorDataInfoEXT -> IO b) -> IO b
withCStruct (BufferCaptureDescriptorDataInfoEXT
info)
r <- lift $ traceAroundEvent "vkGetBufferOpaqueCaptureDescriptorDataEXT" (vkGetBufferOpaqueCaptureDescriptorDataEXT'
(deviceHandle (device))
pInfo
(data'))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetImageOpaqueCaptureDescriptorDataEXT
:: FunPtr (Ptr Device_T -> Ptr ImageCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr ImageCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result
getImageOpaqueCaptureDescriptorDataEXT :: forall io
. (MonadIO io)
=>
Device
->
ImageCaptureDescriptorDataInfoEXT
->
("data" ::: Ptr ())
-> io ()
getImageOpaqueCaptureDescriptorDataEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> io ()
getImageOpaqueCaptureDescriptorDataEXT Device
device
ImageCaptureDescriptorDataInfoEXT
info
"descriptor" ::: Ptr ()
data' = 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 vkGetImageOpaqueCaptureDescriptorDataEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetImageOpaqueCaptureDescriptorDataEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
pVkGetImageOpaqueCaptureDescriptorDataEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: 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 Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetImageOpaqueCaptureDescriptorDataEXTPtr FunPtr
(Ptr Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> 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 vkGetImageOpaqueCaptureDescriptorDataEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetImageOpaqueCaptureDescriptorDataEXT' :: Ptr Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
vkGetImageOpaqueCaptureDescriptorDataEXT' = FunPtr
(Ptr Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Ptr Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
mkVkGetImageOpaqueCaptureDescriptorDataEXT FunPtr
(Ptr Device_T
-> Ptr ImageCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetImageOpaqueCaptureDescriptorDataEXTPtr
pInfo <- ((Ptr ImageCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr ImageCaptureDescriptorDataInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ImageCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr ImageCaptureDescriptorDataInfoEXT))
-> ((Ptr ImageCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr ImageCaptureDescriptorDataInfoEXT)
forall a b. (a -> b) -> a -> b
$ ImageCaptureDescriptorDataInfoEXT
-> (Ptr ImageCaptureDescriptorDataInfoEXT -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
ImageCaptureDescriptorDataInfoEXT
-> (Ptr ImageCaptureDescriptorDataInfoEXT -> IO b) -> IO b
withCStruct (ImageCaptureDescriptorDataInfoEXT
info)
r <- lift $ traceAroundEvent "vkGetImageOpaqueCaptureDescriptorDataEXT" (vkGetImageOpaqueCaptureDescriptorDataEXT'
(deviceHandle (device))
pInfo
(data'))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetImageViewOpaqueCaptureDescriptorDataEXT
:: FunPtr (Ptr Device_T -> Ptr ImageViewCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr ImageViewCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result
getImageViewOpaqueCaptureDescriptorDataEXT :: forall io
. (MonadIO io)
=>
Device
->
ImageViewCaptureDescriptorDataInfoEXT
->
("data" ::: Ptr ())
-> io ()
getImageViewOpaqueCaptureDescriptorDataEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> io ()
getImageViewOpaqueCaptureDescriptorDataEXT Device
device
ImageViewCaptureDescriptorDataInfoEXT
info
"descriptor" ::: Ptr ()
data' = 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 vkGetImageViewOpaqueCaptureDescriptorDataEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetImageViewOpaqueCaptureDescriptorDataEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
pVkGetImageViewOpaqueCaptureDescriptorDataEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: 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 Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetImageViewOpaqueCaptureDescriptorDataEXTPtr FunPtr
(Ptr Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> 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 vkGetImageViewOpaqueCaptureDescriptorDataEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetImageViewOpaqueCaptureDescriptorDataEXT' :: Ptr Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
vkGetImageViewOpaqueCaptureDescriptorDataEXT' = FunPtr
(Ptr Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Ptr Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
mkVkGetImageViewOpaqueCaptureDescriptorDataEXT FunPtr
(Ptr Device_T
-> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetImageViewOpaqueCaptureDescriptorDataEXTPtr
pInfo <- ((Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr ImageViewCaptureDescriptorDataInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr ImageViewCaptureDescriptorDataInfoEXT))
-> ((Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr ImageViewCaptureDescriptorDataInfoEXT)
forall a b. (a -> b) -> a -> b
$ ImageViewCaptureDescriptorDataInfoEXT
-> (Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
ImageViewCaptureDescriptorDataInfoEXT
-> (Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO b) -> IO b
withCStruct (ImageViewCaptureDescriptorDataInfoEXT
info)
r <- lift $ traceAroundEvent "vkGetImageViewOpaqueCaptureDescriptorDataEXT" (vkGetImageViewOpaqueCaptureDescriptorDataEXT'
(deviceHandle (device))
pInfo
(data'))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetSamplerOpaqueCaptureDescriptorDataEXT
:: FunPtr (Ptr Device_T -> Ptr SamplerCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr SamplerCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result
getSamplerOpaqueCaptureDescriptorDataEXT :: forall io
. (MonadIO io)
=>
Device
->
SamplerCaptureDescriptorDataInfoEXT
->
("data" ::: Ptr ())
-> io ()
getSamplerOpaqueCaptureDescriptorDataEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> io ()
getSamplerOpaqueCaptureDescriptorDataEXT Device
device
SamplerCaptureDescriptorDataInfoEXT
info
"descriptor" ::: Ptr ()
data' = 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 vkGetSamplerOpaqueCaptureDescriptorDataEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetSamplerOpaqueCaptureDescriptorDataEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
pVkGetSamplerOpaqueCaptureDescriptorDataEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: 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 Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetSamplerOpaqueCaptureDescriptorDataEXTPtr FunPtr
(Ptr Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> 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 vkGetSamplerOpaqueCaptureDescriptorDataEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetSamplerOpaqueCaptureDescriptorDataEXT' :: Ptr Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
vkGetSamplerOpaqueCaptureDescriptorDataEXT' = FunPtr
(Ptr Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Ptr Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
mkVkGetSamplerOpaqueCaptureDescriptorDataEXT FunPtr
(Ptr Device_T
-> Ptr SamplerCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetSamplerOpaqueCaptureDescriptorDataEXTPtr
pInfo <- ((Ptr SamplerCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr SamplerCaptureDescriptorDataInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr SamplerCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr SamplerCaptureDescriptorDataInfoEXT))
-> ((Ptr SamplerCaptureDescriptorDataInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr SamplerCaptureDescriptorDataInfoEXT)
forall a b. (a -> b) -> a -> b
$ SamplerCaptureDescriptorDataInfoEXT
-> (Ptr SamplerCaptureDescriptorDataInfoEXT -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
SamplerCaptureDescriptorDataInfoEXT
-> (Ptr SamplerCaptureDescriptorDataInfoEXT -> IO b) -> IO b
withCStruct (SamplerCaptureDescriptorDataInfoEXT
info)
r <- lift $ traceAroundEvent "vkGetSamplerOpaqueCaptureDescriptorDataEXT" (vkGetSamplerOpaqueCaptureDescriptorDataEXT'
(deviceHandle (device))
pInfo
(data'))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT
:: FunPtr (Ptr Device_T -> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result) -> Ptr Device_T -> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> Ptr () -> IO Result
getAccelerationStructureOpaqueCaptureDescriptorDataEXT :: forall io
. (MonadIO io)
=>
Device
->
AccelerationStructureCaptureDescriptorDataInfoEXT
->
("data" ::: Ptr ())
-> io ()
getAccelerationStructureOpaqueCaptureDescriptorDataEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> io ()
getAccelerationStructureOpaqueCaptureDescriptorDataEXT Device
device
AccelerationStructureCaptureDescriptorDataInfoEXT
info
"descriptor" ::: Ptr ()
data' = 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 vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
pVkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: 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 Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTPtr FunPtr
(Ptr Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> 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 vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT' :: Ptr Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT' = FunPtr
(Ptr Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
-> Ptr Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result
mkVkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT FunPtr
(Ptr Device_T
-> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> ("descriptor" ::: Ptr ())
-> IO Result)
vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTPtr
pInfo <- ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO ())
-> IO ())
-> ContT
() IO (Ptr AccelerationStructureCaptureDescriptorDataInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO ())
-> IO ())
-> ContT
() IO (Ptr AccelerationStructureCaptureDescriptorDataInfoEXT))
-> ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO ())
-> IO ())
-> ContT
() IO (Ptr AccelerationStructureCaptureDescriptorDataInfoEXT)
forall a b. (a -> b) -> a -> b
$ AccelerationStructureCaptureDescriptorDataInfoEXT
-> (Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO ())
-> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
AccelerationStructureCaptureDescriptorDataInfoEXT
-> (Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO b)
-> IO b
withCStruct (AccelerationStructureCaptureDescriptorDataInfoEXT
info)
r <- lift $ traceAroundEvent "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" (vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT'
(deviceHandle (device))
pInfo
(data'))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
pattern $mIMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT :: forall {r}.
ImageCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bIMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT :: ImageCreateFlagBits
IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT
data PhysicalDeviceDescriptorBufferFeaturesEXT = PhysicalDeviceDescriptorBufferFeaturesEXT
{
PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
descriptorBuffer :: Bool
,
PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
descriptorBufferCaptureReplay :: Bool
,
PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
descriptorBufferImageLayoutIgnored :: Bool
,
PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
descriptorBufferPushDescriptors :: Bool
}
deriving (Typeable, PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
(PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool)
-> (PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool)
-> Eq PhysicalDeviceDescriptorBufferFeaturesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
== :: PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
$c/= :: PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
/= :: PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceDescriptorBufferFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceDescriptorBufferFeaturesEXT
instance ToCStruct PhysicalDeviceDescriptorBufferFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceDescriptorBufferFeaturesEXT
-> (Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceDescriptorBufferFeaturesEXT
x Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b) -> IO b)
-> (Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p -> Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b -> IO b
forall b.
Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p PhysicalDeviceDescriptorBufferFeaturesEXT
x (Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b
f Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p PhysicalDeviceDescriptorBufferFeaturesEXT{Bool
descriptorBuffer :: PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
descriptorBufferCaptureReplay :: PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
descriptorBufferImageLayoutIgnored :: PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
descriptorBufferPushDescriptors :: PhysicalDeviceDescriptorBufferFeaturesEXT -> Bool
descriptorBuffer :: Bool
descriptorBufferCaptureReplay :: Bool
descriptorBufferImageLayoutIgnored :: Bool
descriptorBufferPushDescriptors :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
descriptorBuffer))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
descriptorBufferCaptureReplay))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
descriptorBufferImageLayoutIgnored))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
descriptorBufferPushDescriptors))
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> 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 PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> 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 PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> 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))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceDescriptorBufferFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> IO PhysicalDeviceDescriptorBufferFeaturesEXT
peekCStruct Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p = do
descriptorBuffer <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
p Ptr PhysicalDeviceDescriptorBufferFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
descriptorBufferCaptureReplay <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
descriptorBufferImageLayoutIgnored <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
descriptorBufferPushDescriptors <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
pure $ PhysicalDeviceDescriptorBufferFeaturesEXT
(bool32ToBool descriptorBuffer)
(bool32ToBool descriptorBufferCaptureReplay)
(bool32ToBool descriptorBufferImageLayoutIgnored)
(bool32ToBool descriptorBufferPushDescriptors)
instance Storable PhysicalDeviceDescriptorBufferFeaturesEXT where
sizeOf :: PhysicalDeviceDescriptorBufferFeaturesEXT -> Int
sizeOf ~PhysicalDeviceDescriptorBufferFeaturesEXT
_ = Int
32
alignment :: PhysicalDeviceDescriptorBufferFeaturesEXT -> Int
alignment ~PhysicalDeviceDescriptorBufferFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> IO PhysicalDeviceDescriptorBufferFeaturesEXT
peek = Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> IO PhysicalDeviceDescriptorBufferFeaturesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
ptr PhysicalDeviceDescriptorBufferFeaturesEXT
poked = Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
-> PhysicalDeviceDescriptorBufferFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorBufferFeaturesEXT
ptr PhysicalDeviceDescriptorBufferFeaturesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceDescriptorBufferFeaturesEXT where
zero :: PhysicalDeviceDescriptorBufferFeaturesEXT
zero = Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceDescriptorBufferFeaturesEXT
PhysicalDeviceDescriptorBufferFeaturesEXT
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 PhysicalDeviceDescriptorBufferPropertiesEXT = PhysicalDeviceDescriptorBufferPropertiesEXT
{
PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
combinedImageSamplerDescriptorSingleArray :: Bool
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
bufferlessPushDescriptors :: Bool
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
allowSamplerImageViewPostSubmitCreation :: Bool
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
descriptorBufferOffsetAlignment :: DeviceSize
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
maxDescriptorBufferBindings :: Word32
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
maxResourceDescriptorBufferBindings :: Word32
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
maxSamplerDescriptorBufferBindings :: Word32
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
maxEmbeddedImmutableSamplerBindings :: Word32
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
maxEmbeddedImmutableSamplers :: Word32
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
bufferCaptureReplayDescriptorDataSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
imageCaptureReplayDescriptorDataSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
imageViewCaptureReplayDescriptorDataSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
samplerCaptureReplayDescriptorDataSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
accelerationStructureCaptureReplayDescriptorDataSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
samplerDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
combinedImageSamplerDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
sampledImageDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
storageImageDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
uniformTexelBufferDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
robustUniformTexelBufferDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
storageTexelBufferDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
robustStorageTexelBufferDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
uniformBufferDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
robustUniformBufferDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
storageBufferDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
robustStorageBufferDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
inputAttachmentDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
accelerationStructureDescriptorSize :: Word64
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
maxSamplerDescriptorBufferRange :: DeviceSize
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
maxResourceDescriptorBufferRange :: DeviceSize
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
samplerDescriptorBufferAddressSpaceSize :: DeviceSize
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
resourceDescriptorBufferAddressSpaceSize :: DeviceSize
,
PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
descriptorBufferAddressSpaceSize :: DeviceSize
}
deriving (Typeable, PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
(PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool)
-> (PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool)
-> Eq PhysicalDeviceDescriptorBufferPropertiesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
== :: PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
$c/= :: PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
/= :: PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceDescriptorBufferPropertiesEXT)
#endif
deriving instance Show PhysicalDeviceDescriptorBufferPropertiesEXT
instance ToCStruct PhysicalDeviceDescriptorBufferPropertiesEXT where
withCStruct :: forall b.
PhysicalDeviceDescriptorBufferPropertiesEXT
-> (Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b)
-> IO b
withCStruct PhysicalDeviceDescriptorBufferPropertiesEXT
x Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
256 ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b) -> IO b)
-> (Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p -> Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b -> IO b
forall b.
Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p PhysicalDeviceDescriptorBufferPropertiesEXT
x (Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b
f Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p PhysicalDeviceDescriptorBufferPropertiesEXT{Bool
"binding" ::: Word32
DeviceAddress
combinedImageSamplerDescriptorSingleArray :: PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
bufferlessPushDescriptors :: PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
allowSamplerImageViewPostSubmitCreation :: PhysicalDeviceDescriptorBufferPropertiesEXT -> Bool
descriptorBufferOffsetAlignment :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
maxDescriptorBufferBindings :: PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
maxResourceDescriptorBufferBindings :: PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
maxSamplerDescriptorBufferBindings :: PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
maxEmbeddedImmutableSamplerBindings :: PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
maxEmbeddedImmutableSamplers :: PhysicalDeviceDescriptorBufferPropertiesEXT -> "binding" ::: Word32
bufferCaptureReplayDescriptorDataSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
imageCaptureReplayDescriptorDataSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
imageViewCaptureReplayDescriptorDataSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
samplerCaptureReplayDescriptorDataSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
accelerationStructureCaptureReplayDescriptorDataSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
samplerDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
combinedImageSamplerDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
sampledImageDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
storageImageDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
uniformTexelBufferDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
robustUniformTexelBufferDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
storageTexelBufferDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
robustStorageTexelBufferDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
uniformBufferDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
robustUniformBufferDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
storageBufferDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
robustStorageBufferDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
inputAttachmentDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
accelerationStructureDescriptorSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
maxSamplerDescriptorBufferRange :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
maxResourceDescriptorBufferRange :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
samplerDescriptorBufferAddressSpaceSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
resourceDescriptorBufferAddressSpaceSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
descriptorBufferAddressSpaceSize :: PhysicalDeviceDescriptorBufferPropertiesEXT -> DeviceAddress
combinedImageSamplerDescriptorSingleArray :: Bool
bufferlessPushDescriptors :: Bool
allowSamplerImageViewPostSubmitCreation :: Bool
descriptorBufferOffsetAlignment :: DeviceAddress
maxDescriptorBufferBindings :: "binding" ::: Word32
maxResourceDescriptorBufferBindings :: "binding" ::: Word32
maxSamplerDescriptorBufferBindings :: "binding" ::: Word32
maxEmbeddedImmutableSamplerBindings :: "binding" ::: Word32
maxEmbeddedImmutableSamplers :: "binding" ::: Word32
bufferCaptureReplayDescriptorDataSize :: DeviceAddress
imageCaptureReplayDescriptorDataSize :: DeviceAddress
imageViewCaptureReplayDescriptorDataSize :: DeviceAddress
samplerCaptureReplayDescriptorDataSize :: DeviceAddress
accelerationStructureCaptureReplayDescriptorDataSize :: DeviceAddress
samplerDescriptorSize :: DeviceAddress
combinedImageSamplerDescriptorSize :: DeviceAddress
sampledImageDescriptorSize :: DeviceAddress
storageImageDescriptorSize :: DeviceAddress
uniformTexelBufferDescriptorSize :: DeviceAddress
robustUniformTexelBufferDescriptorSize :: DeviceAddress
storageTexelBufferDescriptorSize :: DeviceAddress
robustStorageTexelBufferDescriptorSize :: DeviceAddress
uniformBufferDescriptorSize :: DeviceAddress
robustUniformBufferDescriptorSize :: DeviceAddress
storageBufferDescriptorSize :: DeviceAddress
robustStorageBufferDescriptorSize :: DeviceAddress
inputAttachmentDescriptorSize :: DeviceAddress
accelerationStructureDescriptorSize :: DeviceAddress
maxSamplerDescriptorBufferRange :: DeviceAddress
maxResourceDescriptorBufferRange :: DeviceAddress
samplerDescriptorBufferAddressSpaceSize :: DeviceAddress
resourceDescriptorBufferAddressSpaceSize :: DeviceAddress
descriptorBufferAddressSpaceSize :: DeviceAddress
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
combinedImageSamplerDescriptorSingleArray))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
bufferlessPushDescriptors))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
allowSamplerImageViewPostSubmitCreation))
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (DeviceAddress
descriptorBufferOffsetAlignment)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) ("binding" ::: Word32
maxDescriptorBufferBindings)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) ("binding" ::: Word32
maxResourceDescriptorBufferBindings)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Word32)) ("binding" ::: Word32
maxSamplerDescriptorBufferBindings)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Word32)) ("binding" ::: Word32
maxEmbeddedImmutableSamplerBindings)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Word32)) ("binding" ::: Word32
maxEmbeddedImmutableSamplers)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
bufferCaptureReplayDescriptorDataSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
imageCaptureReplayDescriptorDataSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
imageViewCaptureReplayDescriptorDataSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
samplerCaptureReplayDescriptorDataSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
96 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
accelerationStructureCaptureReplayDescriptorDataSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
104 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
samplerDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
112 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
combinedImageSamplerDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
120 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
sampledImageDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
128 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
storageImageDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
136 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
uniformTexelBufferDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
144 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
robustUniformTexelBufferDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
152 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
storageTexelBufferDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
160 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
robustStorageTexelBufferDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
168 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
uniformBufferDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
176 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
robustUniformBufferDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
184 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
storageBufferDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
192 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
robustStorageBufferDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
200 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
inputAttachmentDescriptorSize))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
208 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
accelerationStructureDescriptorSize))
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
216 :: Ptr DeviceSize)) (DeviceAddress
maxSamplerDescriptorBufferRange)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
224 :: Ptr DeviceSize)) (DeviceAddress
maxResourceDescriptorBufferRange)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
232 :: Ptr DeviceSize)) (DeviceAddress
samplerDescriptorBufferAddressSpaceSize)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
240 :: Ptr DeviceSize)) (DeviceAddress
resourceDescriptorBufferAddressSpaceSize)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
248 :: Ptr DeviceSize)) (DeviceAddress
descriptorBufferAddressSpaceSize)
IO b
f
cStructSize :: Int
cStructSize = Int
256
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> 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 PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> 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 PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> 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))
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) ("binding" ::: Word32
forall a. Zero a => a
zero)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) ("binding" ::: Word32
forall a. Zero a => a
zero)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Word32)) ("binding" ::: Word32
forall a. Zero a => a
zero)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Word32)) ("binding" ::: Word32
forall a. Zero a => a
zero)
Ptr ("binding" ::: Word32) -> ("binding" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr ("binding" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Word32)) ("binding" ::: Word32
forall a. Zero a => a
zero)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
96 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
104 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
112 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
120 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
128 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
136 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
144 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
152 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
160 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
168 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
176 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
184 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
192 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
200 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
208 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
216 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
224 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
232 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
240 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
248 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceDescriptorBufferPropertiesEXT where
peekCStruct :: Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> IO PhysicalDeviceDescriptorBufferPropertiesEXT
peekCStruct Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p = do
combinedImageSamplerDescriptorSingleArray <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
bufferlessPushDescriptors <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
allowSamplerImageViewPostSubmitCreation <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
descriptorBufferOffsetAlignment <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))
maxDescriptorBufferBindings <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
maxResourceDescriptorBufferBindings <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
maxSamplerDescriptorBufferBindings <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
maxEmbeddedImmutableSamplerBindings <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))
maxEmbeddedImmutableSamplers <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))
bufferCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 64 :: Ptr CSize))
imageCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 72 :: Ptr CSize))
imageViewCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 80 :: Ptr CSize))
samplerCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 88 :: Ptr CSize))
accelerationStructureCaptureReplayDescriptorDataSize <- peek @CSize ((p `plusPtr` 96 :: Ptr CSize))
samplerDescriptorSize <- peek @CSize ((p `plusPtr` 104 :: Ptr CSize))
combinedImageSamplerDescriptorSize <- peek @CSize ((p `plusPtr` 112 :: Ptr CSize))
sampledImageDescriptorSize <- peek @CSize ((p `plusPtr` 120 :: Ptr CSize))
storageImageDescriptorSize <- peek @CSize ((p `plusPtr` 128 :: Ptr CSize))
uniformTexelBufferDescriptorSize <- peek @CSize ((p `plusPtr` 136 :: Ptr CSize))
robustUniformTexelBufferDescriptorSize <- peek @CSize ((p `plusPtr` 144 :: Ptr CSize))
storageTexelBufferDescriptorSize <- peek @CSize ((p `plusPtr` 152 :: Ptr CSize))
robustStorageTexelBufferDescriptorSize <- peek @CSize ((p `plusPtr` 160 :: Ptr CSize))
uniformBufferDescriptorSize <- peek @CSize ((p `plusPtr` 168 :: Ptr CSize))
robustUniformBufferDescriptorSize <- peek @CSize ((p `plusPtr` 176 :: Ptr CSize))
storageBufferDescriptorSize <- peek @CSize ((p `plusPtr` 184 :: Ptr CSize))
robustStorageBufferDescriptorSize <- peek @CSize ((p `plusPtr` 192 :: Ptr CSize))
inputAttachmentDescriptorSize <- peek @CSize ((p `plusPtr` 200 :: Ptr CSize))
accelerationStructureDescriptorSize <- peek @CSize ((p `plusPtr` 208 :: Ptr CSize))
maxSamplerDescriptorBufferRange <- peek @DeviceSize ((p `plusPtr` 216 :: Ptr DeviceSize))
maxResourceDescriptorBufferRange <- peek @DeviceSize ((p `plusPtr` 224 :: Ptr DeviceSize))
samplerDescriptorBufferAddressSpaceSize <- peek @DeviceSize ((p `plusPtr` 232 :: Ptr DeviceSize))
resourceDescriptorBufferAddressSpaceSize <- peek @DeviceSize ((p `plusPtr` 240 :: Ptr DeviceSize))
descriptorBufferAddressSpaceSize <- peek @DeviceSize ((p `plusPtr` 248 :: Ptr DeviceSize))
pure $ PhysicalDeviceDescriptorBufferPropertiesEXT
(bool32ToBool combinedImageSamplerDescriptorSingleArray)
(bool32ToBool bufferlessPushDescriptors)
(bool32ToBool allowSamplerImageViewPostSubmitCreation)
descriptorBufferOffsetAlignment
maxDescriptorBufferBindings
maxResourceDescriptorBufferBindings
maxSamplerDescriptorBufferBindings
maxEmbeddedImmutableSamplerBindings
maxEmbeddedImmutableSamplers
(coerce @CSize @Word64 bufferCaptureReplayDescriptorDataSize)
(coerce @CSize @Word64 imageCaptureReplayDescriptorDataSize)
(coerce @CSize @Word64 imageViewCaptureReplayDescriptorDataSize)
(coerce @CSize @Word64 samplerCaptureReplayDescriptorDataSize)
(coerce @CSize @Word64 accelerationStructureCaptureReplayDescriptorDataSize)
(coerce @CSize @Word64 samplerDescriptorSize)
(coerce @CSize @Word64 combinedImageSamplerDescriptorSize)
(coerce @CSize @Word64 sampledImageDescriptorSize)
(coerce @CSize @Word64 storageImageDescriptorSize)
(coerce @CSize @Word64 uniformTexelBufferDescriptorSize)
(coerce @CSize @Word64 robustUniformTexelBufferDescriptorSize)
(coerce @CSize @Word64 storageTexelBufferDescriptorSize)
(coerce @CSize @Word64 robustStorageTexelBufferDescriptorSize)
(coerce @CSize @Word64 uniformBufferDescriptorSize)
(coerce @CSize @Word64 robustUniformBufferDescriptorSize)
(coerce @CSize @Word64 storageBufferDescriptorSize)
(coerce @CSize @Word64 robustStorageBufferDescriptorSize)
(coerce @CSize @Word64 inputAttachmentDescriptorSize)
(coerce @CSize @Word64 accelerationStructureDescriptorSize)
maxSamplerDescriptorBufferRange
maxResourceDescriptorBufferRange
samplerDescriptorBufferAddressSpaceSize
resourceDescriptorBufferAddressSpaceSize
descriptorBufferAddressSpaceSize
instance Storable PhysicalDeviceDescriptorBufferPropertiesEXT where
sizeOf :: PhysicalDeviceDescriptorBufferPropertiesEXT -> Int
sizeOf ~PhysicalDeviceDescriptorBufferPropertiesEXT
_ = Int
256
alignment :: PhysicalDeviceDescriptorBufferPropertiesEXT -> Int
alignment ~PhysicalDeviceDescriptorBufferPropertiesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> IO PhysicalDeviceDescriptorBufferPropertiesEXT
peek = Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> IO PhysicalDeviceDescriptorBufferPropertiesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> IO ()
poke Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
ptr PhysicalDeviceDescriptorBufferPropertiesEXT
poked = Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
-> PhysicalDeviceDescriptorBufferPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorBufferPropertiesEXT
ptr PhysicalDeviceDescriptorBufferPropertiesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceDescriptorBufferPropertiesEXT where
zero :: PhysicalDeviceDescriptorBufferPropertiesEXT
zero = Bool
-> Bool
-> Bool
-> DeviceAddress
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> ("binding" ::: Word32)
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> DeviceAddress
-> PhysicalDeviceDescriptorBufferPropertiesEXT
PhysicalDeviceDescriptorBufferPropertiesEXT
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
"binding" ::: Word32
forall a. Zero a => a
zero
"binding" ::: Word32
forall a. Zero a => a
zero
"binding" ::: Word32
forall a. Zero a => a
zero
"binding" ::: Word32
forall a. Zero a => a
zero
"binding" ::: Word32
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
data PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
{
PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> DeviceAddress
combinedImageSamplerDensityMapDescriptorSize :: Word64 }
deriving (Typeable, PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> Bool
(PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> Bool)
-> (PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> Bool)
-> Eq PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> Bool
== :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> Bool
$c/= :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> Bool
/= :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)
#endif
deriving instance Show PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
instance ToCStruct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where
withCStruct :: forall b.
PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> (Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO b)
-> IO b
withCStruct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
x Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO b)
-> IO b)
-> (Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p -> Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO b
-> IO b
forall b.
Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
x (Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> IO b
f Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO b
-> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT{DeviceAddress
combinedImageSamplerDensityMapDescriptorSize :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> DeviceAddress
combinedImageSamplerDensityMapDescriptorSize :: DeviceAddress
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
combinedImageSamplerDensityMapDescriptorSize))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr CSize)) (DeviceAddress -> CSize
CSize (DeviceAddress
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where
peekCStruct :: Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
peekCStruct Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p = do
combinedImageSamplerDensityMapDescriptorSize <- forall a. Storable a => Ptr a -> IO a
peek @CSize ((Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
p Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr CSize))
pure $ PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
(coerce @CSize @Word64 combinedImageSamplerDensityMapDescriptorSize)
instance Storable PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where
sizeOf :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> Int
sizeOf ~PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
_ = Int
24
alignment :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> Int
alignment ~PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
peek = Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT -> IO ()
poke Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
poked = Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO ()
-> IO ()
forall b.
Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
ptr PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where
zero :: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
zero = DeviceAddress
-> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
DeviceAddress
forall a. Zero a => a
zero
data DescriptorAddressInfoEXT = DescriptorAddressInfoEXT
{
DescriptorAddressInfoEXT -> DeviceAddress
address :: DeviceAddress
,
DescriptorAddressInfoEXT -> DeviceAddress
range :: DeviceSize
,
DescriptorAddressInfoEXT -> Format
format :: Format
}
deriving (Typeable, DescriptorAddressInfoEXT -> DescriptorAddressInfoEXT -> Bool
(DescriptorAddressInfoEXT -> DescriptorAddressInfoEXT -> Bool)
-> (DescriptorAddressInfoEXT -> DescriptorAddressInfoEXT -> Bool)
-> Eq DescriptorAddressInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DescriptorAddressInfoEXT -> DescriptorAddressInfoEXT -> Bool
== :: DescriptorAddressInfoEXT -> DescriptorAddressInfoEXT -> Bool
$c/= :: DescriptorAddressInfoEXT -> DescriptorAddressInfoEXT -> Bool
/= :: DescriptorAddressInfoEXT -> DescriptorAddressInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorAddressInfoEXT)
#endif
deriving instance Show DescriptorAddressInfoEXT
instance ToCStruct DescriptorAddressInfoEXT where
withCStruct :: forall b.
DescriptorAddressInfoEXT
-> (Ptr DescriptorAddressInfoEXT -> IO b) -> IO b
withCStruct DescriptorAddressInfoEXT
x Ptr DescriptorAddressInfoEXT -> IO b
f = Int -> (Ptr DescriptorAddressInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr DescriptorAddressInfoEXT -> IO b) -> IO b)
-> (Ptr DescriptorAddressInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorAddressInfoEXT
p -> Ptr DescriptorAddressInfoEXT
-> DescriptorAddressInfoEXT -> IO b -> IO b
forall b.
Ptr DescriptorAddressInfoEXT
-> DescriptorAddressInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorAddressInfoEXT
p DescriptorAddressInfoEXT
x (Ptr DescriptorAddressInfoEXT -> IO b
f Ptr DescriptorAddressInfoEXT
p)
pokeCStruct :: forall b.
Ptr DescriptorAddressInfoEXT
-> DescriptorAddressInfoEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorAddressInfoEXT
p DescriptorAddressInfoEXT{DeviceAddress
Format
address :: DescriptorAddressInfoEXT -> DeviceAddress
range :: DescriptorAddressInfoEXT -> DeviceAddress
format :: DescriptorAddressInfoEXT -> Format
address :: DeviceAddress
range :: DeviceAddress
format :: Format
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceAddress)) (DeviceAddress
address)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (DeviceAddress
range)
Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Format)) (Format
format)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DescriptorAddressInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorAddressInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Format)) (Format
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorAddressInfoEXT where
peekCStruct :: Ptr DescriptorAddressInfoEXT -> IO DescriptorAddressInfoEXT
peekCStruct Ptr DescriptorAddressInfoEXT
p = do
address <- forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress ((Ptr DescriptorAddressInfoEXT
p Ptr DescriptorAddressInfoEXT -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceAddress))
range <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
format <- peek @Format ((p `plusPtr` 32 :: Ptr Format))
pure $ DescriptorAddressInfoEXT
address range format
instance Storable DescriptorAddressInfoEXT where
sizeOf :: DescriptorAddressInfoEXT -> Int
sizeOf ~DescriptorAddressInfoEXT
_ = Int
40
alignment :: DescriptorAddressInfoEXT -> Int
alignment ~DescriptorAddressInfoEXT
_ = Int
8
peek :: Ptr DescriptorAddressInfoEXT -> IO DescriptorAddressInfoEXT
peek = Ptr DescriptorAddressInfoEXT -> IO DescriptorAddressInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DescriptorAddressInfoEXT -> DescriptorAddressInfoEXT -> IO ()
poke Ptr DescriptorAddressInfoEXT
ptr DescriptorAddressInfoEXT
poked = Ptr DescriptorAddressInfoEXT
-> DescriptorAddressInfoEXT -> IO () -> IO ()
forall b.
Ptr DescriptorAddressInfoEXT
-> DescriptorAddressInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorAddressInfoEXT
ptr DescriptorAddressInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DescriptorAddressInfoEXT where
zero :: DescriptorAddressInfoEXT
zero = DeviceAddress
-> DeviceAddress -> Format -> DescriptorAddressInfoEXT
DescriptorAddressInfoEXT
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
Format
forall a. Zero a => a
zero
data DescriptorBufferBindingInfoEXT (es :: [Type]) = DescriptorBufferBindingInfoEXT
{
forall (es :: [*]). DescriptorBufferBindingInfoEXT es -> Chain es
next :: Chain es
,
forall (es :: [*]).
DescriptorBufferBindingInfoEXT es -> DeviceAddress
address :: DeviceAddress
,
forall (es :: [*]).
DescriptorBufferBindingInfoEXT es -> BufferUsageFlags
usage :: BufferUsageFlags
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorBufferBindingInfoEXT (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (DescriptorBufferBindingInfoEXT es)
instance Extensible DescriptorBufferBindingInfoEXT where
extensibleTypeName :: String
extensibleTypeName = String
"DescriptorBufferBindingInfoEXT"
setNext :: forall (ds :: [*]) (es :: [*]).
DescriptorBufferBindingInfoEXT ds
-> Chain es -> DescriptorBufferBindingInfoEXT es
setNext DescriptorBufferBindingInfoEXT{DeviceAddress
BufferUsageFlags
Chain ds
next :: forall (es :: [*]). DescriptorBufferBindingInfoEXT es -> Chain es
address :: forall (es :: [*]).
DescriptorBufferBindingInfoEXT es -> DeviceAddress
usage :: forall (es :: [*]).
DescriptorBufferBindingInfoEXT es -> BufferUsageFlags
next :: Chain ds
address :: DeviceAddress
usage :: BufferUsageFlags
..} Chain es
next' = DescriptorBufferBindingInfoEXT{next :: Chain es
next = Chain es
next', DeviceAddress
BufferUsageFlags
address :: DeviceAddress
usage :: BufferUsageFlags
address :: DeviceAddress
usage :: BufferUsageFlags
..}
getNext :: forall (es :: [*]). DescriptorBufferBindingInfoEXT es -> Chain es
getNext DescriptorBufferBindingInfoEXT{DeviceAddress
BufferUsageFlags
Chain es
next :: forall (es :: [*]). DescriptorBufferBindingInfoEXT es -> Chain es
address :: forall (es :: [*]).
DescriptorBufferBindingInfoEXT es -> DeviceAddress
usage :: forall (es :: [*]).
DescriptorBufferBindingInfoEXT es -> BufferUsageFlags
next :: Chain es
address :: DeviceAddress
usage :: BufferUsageFlags
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorBufferBindingInfoEXT e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e
-> (Extends DescriptorBufferBindingInfoEXT e => b) -> Maybe b
extends proxy e
_ Extends DescriptorBufferBindingInfoEXT e => b
f
| Just e :~: DescriptorBufferBindingPushDescriptorBufferHandleEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
forall a b. (Typeable a, Typeable b) => Maybe (a :~: b)
eqT @e @DescriptorBufferBindingPushDescriptorBufferHandleEXT = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends DescriptorBufferBindingInfoEXT e => b
f
| Just e :~: BufferUsageFlags2CreateInfo
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
forall a b. (Typeable a, Typeable b) => Maybe (a :~: b)
eqT @e @BufferUsageFlags2CreateInfo = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends DescriptorBufferBindingInfoEXT e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance ( Extendss DescriptorBufferBindingInfoEXT es
, PokeChain es ) => ToCStruct (DescriptorBufferBindingInfoEXT es) where
withCStruct :: forall b.
DescriptorBufferBindingInfoEXT es
-> (Ptr (DescriptorBufferBindingInfoEXT es) -> IO b) -> IO b
withCStruct DescriptorBufferBindingInfoEXT es
x Ptr (DescriptorBufferBindingInfoEXT es) -> IO b
f = Int -> (Ptr (DescriptorBufferBindingInfoEXT es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr (DescriptorBufferBindingInfoEXT es) -> IO b) -> IO b)
-> (Ptr (DescriptorBufferBindingInfoEXT es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (DescriptorBufferBindingInfoEXT es)
p -> Ptr (DescriptorBufferBindingInfoEXT es)
-> DescriptorBufferBindingInfoEXT es -> IO b -> IO b
forall b.
Ptr (DescriptorBufferBindingInfoEXT es)
-> DescriptorBufferBindingInfoEXT es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (DescriptorBufferBindingInfoEXT es)
p DescriptorBufferBindingInfoEXT es
x (Ptr (DescriptorBufferBindingInfoEXT es) -> IO b
f Ptr (DescriptorBufferBindingInfoEXT es)
p)
pokeCStruct :: forall b.
Ptr (DescriptorBufferBindingInfoEXT es)
-> DescriptorBufferBindingInfoEXT es -> IO b -> IO b
pokeCStruct Ptr (DescriptorBufferBindingInfoEXT es)
p DescriptorBufferBindingInfoEXT{DeviceAddress
BufferUsageFlags
Chain es
next :: forall (es :: [*]). DescriptorBufferBindingInfoEXT es -> Chain es
address :: forall (es :: [*]).
DescriptorBufferBindingInfoEXT es -> DeviceAddress
usage :: forall (es :: [*]).
DescriptorBufferBindingInfoEXT es -> BufferUsageFlags
next :: Chain es
address :: DeviceAddress
usage :: BufferUsageFlags
..} 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 (DescriptorBufferBindingInfoEXT es)
p Ptr (DescriptorBufferBindingInfoEXT es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT)
pNext'' <- (Ptr (Chain es) -> "descriptor" ::: Ptr ())
-> ContT b IO (Ptr (Chain es))
-> ContT b IO ("descriptor" ::: Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> "descriptor" ::: Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es))
-> ContT b IO ("descriptor" ::: Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ())
forall a b. (a -> b) -> a -> b
$ Chain es -> (Ptr (Chain es) -> IO b) -> IO b
forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
forall a. Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
lift $ poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (address)
lift $ poke ((p `plusPtr` 24 :: Ptr BufferUsageFlags)) (usage)
lift $ f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (DescriptorBufferBindingInfoEXT es) -> IO b -> IO b
pokeZeroCStruct Ptr (DescriptorBufferBindingInfoEXT es)
p 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 (DescriptorBufferBindingInfoEXT es)
p Ptr (DescriptorBufferBindingInfoEXT es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT)
pNext' <- (Ptr (Chain es) -> "descriptor" ::: Ptr ())
-> ContT b IO (Ptr (Chain es))
-> ContT b IO ("descriptor" ::: Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> "descriptor" ::: Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es))
-> ContT b IO ("descriptor" ::: Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ())
forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
lift $ poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (zero)
lift $ f
instance ( Extendss DescriptorBufferBindingInfoEXT es
, PeekChain es ) => FromCStruct (DescriptorBufferBindingInfoEXT es) where
peekCStruct :: Ptr (DescriptorBufferBindingInfoEXT es)
-> IO (DescriptorBufferBindingInfoEXT es)
peekCStruct Ptr (DescriptorBufferBindingInfoEXT es)
p = do
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (DescriptorBufferBindingInfoEXT es)
p Ptr (DescriptorBufferBindingInfoEXT es)
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
next <- peekChain (castPtr pNext)
address <- peek @DeviceAddress ((p `plusPtr` 16 :: Ptr DeviceAddress))
usage <- peek @BufferUsageFlags ((p `plusPtr` 24 :: Ptr BufferUsageFlags))
pure $ DescriptorBufferBindingInfoEXT
next address usage
instance es ~ '[] => Zero (DescriptorBufferBindingInfoEXT es) where
zero :: DescriptorBufferBindingInfoEXT es
zero = Chain es
-> DeviceAddress
-> BufferUsageFlags
-> DescriptorBufferBindingInfoEXT es
forall (es :: [*]).
Chain es
-> DeviceAddress
-> BufferUsageFlags
-> DescriptorBufferBindingInfoEXT es
DescriptorBufferBindingInfoEXT
()
DeviceAddress
forall a. Zero a => a
zero
BufferUsageFlags
forall a. Zero a => a
zero
data DescriptorBufferBindingPushDescriptorBufferHandleEXT = DescriptorBufferBindingPushDescriptorBufferHandleEXT
{
DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Buffer
buffer :: Buffer }
deriving (Typeable, DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Bool
(DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Bool)
-> (DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Bool)
-> Eq DescriptorBufferBindingPushDescriptorBufferHandleEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Bool
== :: DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Bool
$c/= :: DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Bool
/= :: DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorBufferBindingPushDescriptorBufferHandleEXT)
#endif
deriving instance Show DescriptorBufferBindingPushDescriptorBufferHandleEXT
instance ToCStruct DescriptorBufferBindingPushDescriptorBufferHandleEXT where
withCStruct :: forall b.
DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> (Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO b)
-> IO b
withCStruct DescriptorBufferBindingPushDescriptorBufferHandleEXT
x Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT -> IO b
f = Int
-> (Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT -> IO b)
-> IO b)
-> (Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p -> Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO b
-> IO b
forall b.
Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p DescriptorBufferBindingPushDescriptorBufferHandleEXT
x (Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT -> IO b
f Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p)
pokeCStruct :: forall b.
Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO b
-> IO b
pokeCStruct Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p DescriptorBufferBindingPushDescriptorBufferHandleEXT{Buffer
buffer :: DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Buffer
buffer :: Buffer
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer)) (Buffer
buffer)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO b -> IO b
pokeZeroCStruct Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer)) (Buffer
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorBufferBindingPushDescriptorBufferHandleEXT where
peekCStruct :: Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO DescriptorBufferBindingPushDescriptorBufferHandleEXT
peekCStruct Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p = do
buffer <- forall a. Storable a => Ptr a -> IO a
peek @Buffer ((Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
p Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer))
pure $ DescriptorBufferBindingPushDescriptorBufferHandleEXT
buffer
instance Storable DescriptorBufferBindingPushDescriptorBufferHandleEXT where
sizeOf :: DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Int
sizeOf ~DescriptorBufferBindingPushDescriptorBufferHandleEXT
_ = Int
24
alignment :: DescriptorBufferBindingPushDescriptorBufferHandleEXT -> Int
alignment ~DescriptorBufferBindingPushDescriptorBufferHandleEXT
_ = Int
8
peek :: Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO DescriptorBufferBindingPushDescriptorBufferHandleEXT
peek = Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO DescriptorBufferBindingPushDescriptorBufferHandleEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT -> IO ()
poke Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
poked = Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO ()
-> IO ()
forall b.
Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> DescriptorBufferBindingPushDescriptorBufferHandleEXT
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
ptr DescriptorBufferBindingPushDescriptorBufferHandleEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DescriptorBufferBindingPushDescriptorBufferHandleEXT where
zero :: DescriptorBufferBindingPushDescriptorBufferHandleEXT
zero = Buffer -> DescriptorBufferBindingPushDescriptorBufferHandleEXT
DescriptorBufferBindingPushDescriptorBufferHandleEXT
Buffer
forall a. Zero a => a
zero
data DescriptorGetInfoEXT (es :: [Type]) = DescriptorGetInfoEXT
{
forall (es :: [*]). DescriptorGetInfoEXT es -> Chain es
next :: Chain es
,
forall (es :: [*]). DescriptorGetInfoEXT es -> DescriptorType
type' :: DescriptorType
,
forall (es :: [*]). DescriptorGetInfoEXT es -> DescriptorDataEXT
data' :: DescriptorDataEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorGetInfoEXT (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (DescriptorGetInfoEXT es)
instance Extensible DescriptorGetInfoEXT where
extensibleTypeName :: String
extensibleTypeName = String
"DescriptorGetInfoEXT"
setNext :: forall (ds :: [*]) (es :: [*]).
DescriptorGetInfoEXT ds -> Chain es -> DescriptorGetInfoEXT es
setNext DescriptorGetInfoEXT{DescriptorType
Chain ds
DescriptorDataEXT
next :: forall (es :: [*]). DescriptorGetInfoEXT es -> Chain es
type' :: forall (es :: [*]). DescriptorGetInfoEXT es -> DescriptorType
data' :: forall (es :: [*]). DescriptorGetInfoEXT es -> DescriptorDataEXT
next :: Chain ds
type' :: DescriptorType
data' :: DescriptorDataEXT
..} Chain es
next' = DescriptorGetInfoEXT{next :: Chain es
next = Chain es
next', DescriptorType
DescriptorDataEXT
type' :: DescriptorType
data' :: DescriptorDataEXT
type' :: DescriptorType
data' :: DescriptorDataEXT
..}
getNext :: forall (es :: [*]). DescriptorGetInfoEXT es -> Chain es
getNext DescriptorGetInfoEXT{DescriptorType
Chain es
DescriptorDataEXT
next :: forall (es :: [*]). DescriptorGetInfoEXT es -> Chain es
type' :: forall (es :: [*]). DescriptorGetInfoEXT es -> DescriptorType
data' :: forall (es :: [*]). DescriptorGetInfoEXT es -> DescriptorDataEXT
next :: Chain es
type' :: DescriptorType
data' :: DescriptorDataEXT
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorGetInfoEXT e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e -> (Extends DescriptorGetInfoEXT e => b) -> Maybe b
extends proxy e
_ Extends DescriptorGetInfoEXT e => b
f
| Just e :~: DescriptorGetTensorInfoARM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
forall a b. (Typeable a, Typeable b) => Maybe (a :~: b)
eqT @e @DescriptorGetTensorInfoARM = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends DescriptorGetInfoEXT e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance ( Extendss DescriptorGetInfoEXT es
, PokeChain es ) => ToCStruct (DescriptorGetInfoEXT es) where
withCStruct :: forall b.
DescriptorGetInfoEXT es
-> (Ptr (DescriptorGetInfoEXT es) -> IO b) -> IO b
withCStruct DescriptorGetInfoEXT es
x Ptr (DescriptorGetInfoEXT es) -> IO b
f = Int -> (Ptr (DescriptorGetInfoEXT es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr (DescriptorGetInfoEXT es) -> IO b) -> IO b)
-> (Ptr (DescriptorGetInfoEXT es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (DescriptorGetInfoEXT es)
p -> Ptr (DescriptorGetInfoEXT es)
-> DescriptorGetInfoEXT es -> IO b -> IO b
forall b.
Ptr (DescriptorGetInfoEXT es)
-> DescriptorGetInfoEXT es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (DescriptorGetInfoEXT es)
p DescriptorGetInfoEXT es
x (Ptr (DescriptorGetInfoEXT es) -> IO b
f Ptr (DescriptorGetInfoEXT es)
p)
pokeCStruct :: forall b.
Ptr (DescriptorGetInfoEXT es)
-> DescriptorGetInfoEXT es -> IO b -> IO b
pokeCStruct Ptr (DescriptorGetInfoEXT es)
p DescriptorGetInfoEXT{DescriptorType
Chain es
DescriptorDataEXT
next :: forall (es :: [*]). DescriptorGetInfoEXT es -> Chain es
type' :: forall (es :: [*]). DescriptorGetInfoEXT es -> DescriptorType
data' :: forall (es :: [*]). DescriptorGetInfoEXT es -> DescriptorDataEXT
next :: Chain es
type' :: DescriptorType
data' :: DescriptorDataEXT
..} 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 (DescriptorGetInfoEXT es)
p Ptr (DescriptorGetInfoEXT es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT)
pNext'' <- (Ptr (Chain es) -> "descriptor" ::: Ptr ())
-> ContT b IO (Ptr (Chain es))
-> ContT b IO ("descriptor" ::: Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> "descriptor" ::: Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es))
-> ContT b IO ("descriptor" ::: Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ())
forall a b. (a -> b) -> a -> b
$ Chain es -> (Ptr (Chain es) -> IO b) -> IO b
forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
forall a. Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
lift $ poke ((p `plusPtr` 16 :: Ptr DescriptorType)) (type')
ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr DescriptorDataEXT)) (data') . ($ ())
lift $ f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (DescriptorGetInfoEXT es) -> IO b -> IO b
pokeZeroCStruct Ptr (DescriptorGetInfoEXT es)
p 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 (DescriptorGetInfoEXT es)
p Ptr (DescriptorGetInfoEXT es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT)
pNext' <- (Ptr (Chain es) -> "descriptor" ::: Ptr ())
-> ContT b IO (Ptr (Chain es))
-> ContT b IO ("descriptor" ::: Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> "descriptor" ::: Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es))
-> ContT b IO ("descriptor" ::: Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO ("descriptor" ::: Ptr ())
forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
lift $ poke ((p `plusPtr` 16 :: Ptr DescriptorType)) (zero)
ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr DescriptorDataEXT)) (zero) . ($ ())
lift $ f
instance ( Extendss DescriptorGetInfoEXT es
, PeekChain es ) => FromCStruct (DescriptorGetInfoEXT es) where
peekCStruct :: Ptr (DescriptorGetInfoEXT es) -> IO (DescriptorGetInfoEXT es)
peekCStruct Ptr (DescriptorGetInfoEXT es)
p = do
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (DescriptorGetInfoEXT es)
p Ptr (DescriptorGetInfoEXT es)
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
next <- peekChain (castPtr pNext)
type' <- peek @DescriptorType ((p `plusPtr` 16 :: Ptr DescriptorType))
data' <- peekDescriptorDataEXT type' ((p `plusPtr` 24 :: Ptr DescriptorDataEXT))
pure $ DescriptorGetInfoEXT
next type' data'
instance es ~ '[] => Zero (DescriptorGetInfoEXT es) where
zero :: DescriptorGetInfoEXT es
zero = Chain es
-> DescriptorType -> DescriptorDataEXT -> DescriptorGetInfoEXT es
forall (es :: [*]).
Chain es
-> DescriptorType -> DescriptorDataEXT -> DescriptorGetInfoEXT es
DescriptorGetInfoEXT
()
DescriptorType
forall a. Zero a => a
zero
DescriptorDataEXT
forall a. Zero a => a
zero
data BufferCaptureDescriptorDataInfoEXT = BufferCaptureDescriptorDataInfoEXT
{
BufferCaptureDescriptorDataInfoEXT -> Buffer
buffer :: Buffer }
deriving (Typeable, BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> Bool
(BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> Bool)
-> (BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> Bool)
-> Eq BufferCaptureDescriptorDataInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> Bool
== :: BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> Bool
$c/= :: BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> Bool
/= :: BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (BufferCaptureDescriptorDataInfoEXT)
#endif
deriving instance Show BufferCaptureDescriptorDataInfoEXT
instance ToCStruct BufferCaptureDescriptorDataInfoEXT where
withCStruct :: forall b.
BufferCaptureDescriptorDataInfoEXT
-> (Ptr BufferCaptureDescriptorDataInfoEXT -> IO b) -> IO b
withCStruct BufferCaptureDescriptorDataInfoEXT
x Ptr BufferCaptureDescriptorDataInfoEXT -> IO b
f = Int -> (Ptr BufferCaptureDescriptorDataInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr BufferCaptureDescriptorDataInfoEXT -> IO b) -> IO b)
-> (Ptr BufferCaptureDescriptorDataInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr BufferCaptureDescriptorDataInfoEXT
p -> Ptr BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall b.
Ptr BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr BufferCaptureDescriptorDataInfoEXT
p BufferCaptureDescriptorDataInfoEXT
x (Ptr BufferCaptureDescriptorDataInfoEXT -> IO b
f Ptr BufferCaptureDescriptorDataInfoEXT
p)
pokeCStruct :: forall b.
Ptr BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> IO b -> IO b
pokeCStruct Ptr BufferCaptureDescriptorDataInfoEXT
p BufferCaptureDescriptorDataInfoEXT{Buffer
buffer :: BufferCaptureDescriptorDataInfoEXT -> Buffer
buffer :: Buffer
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCaptureDescriptorDataInfoEXT
p Ptr BufferCaptureDescriptorDataInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCaptureDescriptorDataInfoEXT
p Ptr BufferCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCaptureDescriptorDataInfoEXT
p Ptr BufferCaptureDescriptorDataInfoEXT -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer)) (Buffer
buffer)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr BufferCaptureDescriptorDataInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr BufferCaptureDescriptorDataInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCaptureDescriptorDataInfoEXT
p Ptr BufferCaptureDescriptorDataInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCaptureDescriptorDataInfoEXT
p Ptr BufferCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCaptureDescriptorDataInfoEXT
p Ptr BufferCaptureDescriptorDataInfoEXT -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer)) (Buffer
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct BufferCaptureDescriptorDataInfoEXT where
peekCStruct :: Ptr BufferCaptureDescriptorDataInfoEXT
-> IO BufferCaptureDescriptorDataInfoEXT
peekCStruct Ptr BufferCaptureDescriptorDataInfoEXT
p = do
buffer <- forall a. Storable a => Ptr a -> IO a
peek @Buffer ((Ptr BufferCaptureDescriptorDataInfoEXT
p Ptr BufferCaptureDescriptorDataInfoEXT -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer))
pure $ BufferCaptureDescriptorDataInfoEXT
buffer
instance Storable BufferCaptureDescriptorDataInfoEXT where
sizeOf :: BufferCaptureDescriptorDataInfoEXT -> Int
sizeOf ~BufferCaptureDescriptorDataInfoEXT
_ = Int
24
alignment :: BufferCaptureDescriptorDataInfoEXT -> Int
alignment ~BufferCaptureDescriptorDataInfoEXT
_ = Int
8
peek :: Ptr BufferCaptureDescriptorDataInfoEXT
-> IO BufferCaptureDescriptorDataInfoEXT
peek = Ptr BufferCaptureDescriptorDataInfoEXT
-> IO BufferCaptureDescriptorDataInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> IO ()
poke Ptr BufferCaptureDescriptorDataInfoEXT
ptr BufferCaptureDescriptorDataInfoEXT
poked = Ptr BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> IO () -> IO ()
forall b.
Ptr BufferCaptureDescriptorDataInfoEXT
-> BufferCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr BufferCaptureDescriptorDataInfoEXT
ptr BufferCaptureDescriptorDataInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero BufferCaptureDescriptorDataInfoEXT where
zero :: BufferCaptureDescriptorDataInfoEXT
zero = Buffer -> BufferCaptureDescriptorDataInfoEXT
BufferCaptureDescriptorDataInfoEXT
Buffer
forall a. Zero a => a
zero
data ImageCaptureDescriptorDataInfoEXT = ImageCaptureDescriptorDataInfoEXT
{
ImageCaptureDescriptorDataInfoEXT -> Image
image :: Image }
deriving (Typeable, ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> Bool
(ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> Bool)
-> (ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> Bool)
-> Eq ImageCaptureDescriptorDataInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> Bool
== :: ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> Bool
$c/= :: ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> Bool
/= :: ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ImageCaptureDescriptorDataInfoEXT)
#endif
deriving instance Show ImageCaptureDescriptorDataInfoEXT
instance ToCStruct ImageCaptureDescriptorDataInfoEXT where
withCStruct :: forall b.
ImageCaptureDescriptorDataInfoEXT
-> (Ptr ImageCaptureDescriptorDataInfoEXT -> IO b) -> IO b
withCStruct ImageCaptureDescriptorDataInfoEXT
x Ptr ImageCaptureDescriptorDataInfoEXT -> IO b
f = Int -> (Ptr ImageCaptureDescriptorDataInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr ImageCaptureDescriptorDataInfoEXT -> IO b) -> IO b)
-> (Ptr ImageCaptureDescriptorDataInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ImageCaptureDescriptorDataInfoEXT
p -> Ptr ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall b.
Ptr ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageCaptureDescriptorDataInfoEXT
p ImageCaptureDescriptorDataInfoEXT
x (Ptr ImageCaptureDescriptorDataInfoEXT -> IO b
f Ptr ImageCaptureDescriptorDataInfoEXT
p)
pokeCStruct :: forall b.
Ptr ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> IO b -> IO b
pokeCStruct Ptr ImageCaptureDescriptorDataInfoEXT
p ImageCaptureDescriptorDataInfoEXT{Image
image :: ImageCaptureDescriptorDataInfoEXT -> Image
image :: Image
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCaptureDescriptorDataInfoEXT
p Ptr ImageCaptureDescriptorDataInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCaptureDescriptorDataInfoEXT
p Ptr ImageCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCaptureDescriptorDataInfoEXT
p Ptr ImageCaptureDescriptorDataInfoEXT -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
image)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr ImageCaptureDescriptorDataInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr ImageCaptureDescriptorDataInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCaptureDescriptorDataInfoEXT
p Ptr ImageCaptureDescriptorDataInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCaptureDescriptorDataInfoEXT
p Ptr ImageCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCaptureDescriptorDataInfoEXT
p Ptr ImageCaptureDescriptorDataInfoEXT -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct ImageCaptureDescriptorDataInfoEXT where
peekCStruct :: Ptr ImageCaptureDescriptorDataInfoEXT
-> IO ImageCaptureDescriptorDataInfoEXT
peekCStruct Ptr ImageCaptureDescriptorDataInfoEXT
p = do
image <- forall a. Storable a => Ptr a -> IO a
peek @Image ((Ptr ImageCaptureDescriptorDataInfoEXT
p Ptr ImageCaptureDescriptorDataInfoEXT -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image))
pure $ ImageCaptureDescriptorDataInfoEXT
image
instance Storable ImageCaptureDescriptorDataInfoEXT where
sizeOf :: ImageCaptureDescriptorDataInfoEXT -> Int
sizeOf ~ImageCaptureDescriptorDataInfoEXT
_ = Int
24
alignment :: ImageCaptureDescriptorDataInfoEXT -> Int
alignment ~ImageCaptureDescriptorDataInfoEXT
_ = Int
8
peek :: Ptr ImageCaptureDescriptorDataInfoEXT
-> IO ImageCaptureDescriptorDataInfoEXT
peek = Ptr ImageCaptureDescriptorDataInfoEXT
-> IO ImageCaptureDescriptorDataInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> IO ()
poke Ptr ImageCaptureDescriptorDataInfoEXT
ptr ImageCaptureDescriptorDataInfoEXT
poked = Ptr ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> IO () -> IO ()
forall b.
Ptr ImageCaptureDescriptorDataInfoEXT
-> ImageCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageCaptureDescriptorDataInfoEXT
ptr ImageCaptureDescriptorDataInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero ImageCaptureDescriptorDataInfoEXT where
zero :: ImageCaptureDescriptorDataInfoEXT
zero = Image -> ImageCaptureDescriptorDataInfoEXT
ImageCaptureDescriptorDataInfoEXT
Image
forall a. Zero a => a
zero
data ImageViewCaptureDescriptorDataInfoEXT = ImageViewCaptureDescriptorDataInfoEXT
{
ImageViewCaptureDescriptorDataInfoEXT -> ImageView
imageView :: ImageView }
deriving (Typeable, ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> Bool
(ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> Bool)
-> (ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> Bool)
-> Eq ImageViewCaptureDescriptorDataInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> Bool
== :: ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> Bool
$c/= :: ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> Bool
/= :: ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ImageViewCaptureDescriptorDataInfoEXT)
#endif
deriving instance Show ImageViewCaptureDescriptorDataInfoEXT
instance ToCStruct ImageViewCaptureDescriptorDataInfoEXT where
withCStruct :: forall b.
ImageViewCaptureDescriptorDataInfoEXT
-> (Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO b) -> IO b
withCStruct ImageViewCaptureDescriptorDataInfoEXT
x Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO b
f = Int -> (Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO b) -> IO b)
-> (Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ImageViewCaptureDescriptorDataInfoEXT
p -> Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall b.
Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageViewCaptureDescriptorDataInfoEXT
p ImageViewCaptureDescriptorDataInfoEXT
x (Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO b
f Ptr ImageViewCaptureDescriptorDataInfoEXT
p)
pokeCStruct :: forall b.
Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> IO b -> IO b
pokeCStruct Ptr ImageViewCaptureDescriptorDataInfoEXT
p ImageViewCaptureDescriptorDataInfoEXT{ImageView
imageView :: ImageViewCaptureDescriptorDataInfoEXT -> ImageView
imageView :: ImageView
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageViewCaptureDescriptorDataInfoEXT
p Ptr ImageViewCaptureDescriptorDataInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageViewCaptureDescriptorDataInfoEXT
p Ptr ImageViewCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr ImageView -> ImageView -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageViewCaptureDescriptorDataInfoEXT
p Ptr ImageViewCaptureDescriptorDataInfoEXT -> Int -> Ptr ImageView
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageView)) (ImageView
imageView)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr ImageViewCaptureDescriptorDataInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr ImageViewCaptureDescriptorDataInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageViewCaptureDescriptorDataInfoEXT
p Ptr ImageViewCaptureDescriptorDataInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageViewCaptureDescriptorDataInfoEXT
p Ptr ImageViewCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr ImageView -> ImageView -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageViewCaptureDescriptorDataInfoEXT
p Ptr ImageViewCaptureDescriptorDataInfoEXT -> Int -> Ptr ImageView
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageView)) (ImageView
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct ImageViewCaptureDescriptorDataInfoEXT where
peekCStruct :: Ptr ImageViewCaptureDescriptorDataInfoEXT
-> IO ImageViewCaptureDescriptorDataInfoEXT
peekCStruct Ptr ImageViewCaptureDescriptorDataInfoEXT
p = do
imageView <- forall a. Storable a => Ptr a -> IO a
peek @ImageView ((Ptr ImageViewCaptureDescriptorDataInfoEXT
p Ptr ImageViewCaptureDescriptorDataInfoEXT -> Int -> Ptr ImageView
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageView))
pure $ ImageViewCaptureDescriptorDataInfoEXT
imageView
instance Storable ImageViewCaptureDescriptorDataInfoEXT where
sizeOf :: ImageViewCaptureDescriptorDataInfoEXT -> Int
sizeOf ~ImageViewCaptureDescriptorDataInfoEXT
_ = Int
24
alignment :: ImageViewCaptureDescriptorDataInfoEXT -> Int
alignment ~ImageViewCaptureDescriptorDataInfoEXT
_ = Int
8
peek :: Ptr ImageViewCaptureDescriptorDataInfoEXT
-> IO ImageViewCaptureDescriptorDataInfoEXT
peek = Ptr ImageViewCaptureDescriptorDataInfoEXT
-> IO ImageViewCaptureDescriptorDataInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> IO ()
poke Ptr ImageViewCaptureDescriptorDataInfoEXT
ptr ImageViewCaptureDescriptorDataInfoEXT
poked = Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> IO () -> IO ()
forall b.
Ptr ImageViewCaptureDescriptorDataInfoEXT
-> ImageViewCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageViewCaptureDescriptorDataInfoEXT
ptr ImageViewCaptureDescriptorDataInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero ImageViewCaptureDescriptorDataInfoEXT where
zero :: ImageViewCaptureDescriptorDataInfoEXT
zero = ImageView -> ImageViewCaptureDescriptorDataInfoEXT
ImageViewCaptureDescriptorDataInfoEXT
ImageView
forall a. Zero a => a
zero
data SamplerCaptureDescriptorDataInfoEXT = SamplerCaptureDescriptorDataInfoEXT
{
SamplerCaptureDescriptorDataInfoEXT -> Sampler
sampler :: Sampler }
deriving (Typeable, SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> Bool
(SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> Bool)
-> (SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> Bool)
-> Eq SamplerCaptureDescriptorDataInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> Bool
== :: SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> Bool
$c/= :: SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> Bool
/= :: SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (SamplerCaptureDescriptorDataInfoEXT)
#endif
deriving instance Show SamplerCaptureDescriptorDataInfoEXT
instance ToCStruct SamplerCaptureDescriptorDataInfoEXT where
withCStruct :: forall b.
SamplerCaptureDescriptorDataInfoEXT
-> (Ptr SamplerCaptureDescriptorDataInfoEXT -> IO b) -> IO b
withCStruct SamplerCaptureDescriptorDataInfoEXT
x Ptr SamplerCaptureDescriptorDataInfoEXT -> IO b
f = Int -> (Ptr SamplerCaptureDescriptorDataInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr SamplerCaptureDescriptorDataInfoEXT -> IO b) -> IO b)
-> (Ptr SamplerCaptureDescriptorDataInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr SamplerCaptureDescriptorDataInfoEXT
p -> Ptr SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall b.
Ptr SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SamplerCaptureDescriptorDataInfoEXT
p SamplerCaptureDescriptorDataInfoEXT
x (Ptr SamplerCaptureDescriptorDataInfoEXT -> IO b
f Ptr SamplerCaptureDescriptorDataInfoEXT
p)
pokeCStruct :: forall b.
Ptr SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> IO b -> IO b
pokeCStruct Ptr SamplerCaptureDescriptorDataInfoEXT
p SamplerCaptureDescriptorDataInfoEXT{Sampler
sampler :: SamplerCaptureDescriptorDataInfoEXT -> Sampler
sampler :: Sampler
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCaptureDescriptorDataInfoEXT
p Ptr SamplerCaptureDescriptorDataInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCaptureDescriptorDataInfoEXT
p Ptr SamplerCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Sampler -> Sampler -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCaptureDescriptorDataInfoEXT
p Ptr SamplerCaptureDescriptorDataInfoEXT -> Int -> Ptr Sampler
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Sampler)) (Sampler
sampler)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr SamplerCaptureDescriptorDataInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr SamplerCaptureDescriptorDataInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCaptureDescriptorDataInfoEXT
p Ptr SamplerCaptureDescriptorDataInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCaptureDescriptorDataInfoEXT
p Ptr SamplerCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Sampler -> Sampler -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCaptureDescriptorDataInfoEXT
p Ptr SamplerCaptureDescriptorDataInfoEXT -> Int -> Ptr Sampler
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Sampler)) (Sampler
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct SamplerCaptureDescriptorDataInfoEXT where
peekCStruct :: Ptr SamplerCaptureDescriptorDataInfoEXT
-> IO SamplerCaptureDescriptorDataInfoEXT
peekCStruct Ptr SamplerCaptureDescriptorDataInfoEXT
p = do
sampler <- forall a. Storable a => Ptr a -> IO a
peek @Sampler ((Ptr SamplerCaptureDescriptorDataInfoEXT
p Ptr SamplerCaptureDescriptorDataInfoEXT -> Int -> Ptr Sampler
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Sampler))
pure $ SamplerCaptureDescriptorDataInfoEXT
sampler
instance Storable SamplerCaptureDescriptorDataInfoEXT where
sizeOf :: SamplerCaptureDescriptorDataInfoEXT -> Int
sizeOf ~SamplerCaptureDescriptorDataInfoEXT
_ = Int
24
alignment :: SamplerCaptureDescriptorDataInfoEXT -> Int
alignment ~SamplerCaptureDescriptorDataInfoEXT
_ = Int
8
peek :: Ptr SamplerCaptureDescriptorDataInfoEXT
-> IO SamplerCaptureDescriptorDataInfoEXT
peek = Ptr SamplerCaptureDescriptorDataInfoEXT
-> IO SamplerCaptureDescriptorDataInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> IO ()
poke Ptr SamplerCaptureDescriptorDataInfoEXT
ptr SamplerCaptureDescriptorDataInfoEXT
poked = Ptr SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> IO () -> IO ()
forall b.
Ptr SamplerCaptureDescriptorDataInfoEXT
-> SamplerCaptureDescriptorDataInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SamplerCaptureDescriptorDataInfoEXT
ptr SamplerCaptureDescriptorDataInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero SamplerCaptureDescriptorDataInfoEXT where
zero :: SamplerCaptureDescriptorDataInfoEXT
zero = Sampler -> SamplerCaptureDescriptorDataInfoEXT
SamplerCaptureDescriptorDataInfoEXT
Sampler
forall a. Zero a => a
zero
data AccelerationStructureCaptureDescriptorDataInfoEXT = AccelerationStructureCaptureDescriptorDataInfoEXT
{
AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureKHR
accelerationStructure :: AccelerationStructureKHR
,
AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureNV
accelerationStructureNV :: AccelerationStructureNV
}
deriving (Typeable, AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT -> Bool
(AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT -> Bool)
-> (AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT -> Bool)
-> Eq AccelerationStructureCaptureDescriptorDataInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT -> Bool
== :: AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT -> Bool
$c/= :: AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT -> Bool
/= :: AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (AccelerationStructureCaptureDescriptorDataInfoEXT)
#endif
deriving instance Show AccelerationStructureCaptureDescriptorDataInfoEXT
instance ToCStruct AccelerationStructureCaptureDescriptorDataInfoEXT where
withCStruct :: forall b.
AccelerationStructureCaptureDescriptorDataInfoEXT
-> (Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO b)
-> IO b
withCStruct AccelerationStructureCaptureDescriptorDataInfoEXT
x Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO b
f = Int
-> (Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO b)
-> IO b)
-> (Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p -> Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO b
-> IO b
forall b.
Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p AccelerationStructureCaptureDescriptorDataInfoEXT
x (Ptr AccelerationStructureCaptureDescriptorDataInfoEXT -> IO b
f Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p)
pokeCStruct :: forall b.
Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO b
-> IO b
pokeCStruct Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p AccelerationStructureCaptureDescriptorDataInfoEXT{AccelerationStructureNV
AccelerationStructureKHR
accelerationStructure :: AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureKHR
accelerationStructureNV :: AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureNV
accelerationStructure :: AccelerationStructureKHR
accelerationStructureNV :: AccelerationStructureNV
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr AccelerationStructureKHR -> AccelerationStructureKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> Int -> Ptr AccelerationStructureKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr AccelerationStructureKHR)) (AccelerationStructureKHR
accelerationStructure)
Ptr AccelerationStructureNV -> AccelerationStructureNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> Int -> Ptr AccelerationStructureNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr AccelerationStructureNV)) (AccelerationStructureNV
accelerationStructureNV)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO b -> IO b
pokeZeroCStruct Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
IO b
f
instance FromCStruct AccelerationStructureCaptureDescriptorDataInfoEXT where
peekCStruct :: Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO AccelerationStructureCaptureDescriptorDataInfoEXT
peekCStruct Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p = do
accelerationStructure <- forall a. Storable a => Ptr a -> IO a
peek @AccelerationStructureKHR ((Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
p Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> Int -> Ptr AccelerationStructureKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr AccelerationStructureKHR))
accelerationStructureNV <- peek @AccelerationStructureNV ((p `plusPtr` 24 :: Ptr AccelerationStructureNV))
pure $ AccelerationStructureCaptureDescriptorDataInfoEXT
accelerationStructure accelerationStructureNV
instance Storable AccelerationStructureCaptureDescriptorDataInfoEXT where
sizeOf :: AccelerationStructureCaptureDescriptorDataInfoEXT -> Int
sizeOf ~AccelerationStructureCaptureDescriptorDataInfoEXT
_ = Int
32
alignment :: AccelerationStructureCaptureDescriptorDataInfoEXT -> Int
alignment ~AccelerationStructureCaptureDescriptorDataInfoEXT
_ = Int
8
peek :: Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO AccelerationStructureCaptureDescriptorDataInfoEXT
peek = Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO AccelerationStructureCaptureDescriptorDataInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT -> IO ()
poke Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
ptr AccelerationStructureCaptureDescriptorDataInfoEXT
poked = Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO ()
-> IO ()
forall b.
Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
-> AccelerationStructureCaptureDescriptorDataInfoEXT
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr AccelerationStructureCaptureDescriptorDataInfoEXT
ptr AccelerationStructureCaptureDescriptorDataInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero AccelerationStructureCaptureDescriptorDataInfoEXT where
zero :: AccelerationStructureCaptureDescriptorDataInfoEXT
zero = AccelerationStructureKHR
-> AccelerationStructureNV
-> AccelerationStructureCaptureDescriptorDataInfoEXT
AccelerationStructureCaptureDescriptorDataInfoEXT
AccelerationStructureKHR
forall a. Zero a => a
zero
AccelerationStructureNV
forall a. Zero a => a
zero
data OpaqueCaptureDescriptorDataCreateInfoEXT = OpaqueCaptureDescriptorDataCreateInfoEXT
{
OpaqueCaptureDescriptorDataCreateInfoEXT -> "descriptor" ::: Ptr ()
opaqueCaptureDescriptorData :: Ptr () }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (OpaqueCaptureDescriptorDataCreateInfoEXT)
#endif
deriving instance Show OpaqueCaptureDescriptorDataCreateInfoEXT
instance ToCStruct OpaqueCaptureDescriptorDataCreateInfoEXT where
withCStruct :: forall b.
OpaqueCaptureDescriptorDataCreateInfoEXT
-> (Ptr OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b) -> IO b
withCStruct OpaqueCaptureDescriptorDataCreateInfoEXT
x Ptr OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b
f = Int
-> (Ptr OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b) -> IO b)
-> (Ptr OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p -> Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b -> IO b
forall b.
Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p OpaqueCaptureDescriptorDataCreateInfoEXT
x (Ptr OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b
f Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p OpaqueCaptureDescriptorDataCreateInfoEXT{"descriptor" ::: Ptr ()
opaqueCaptureDescriptorData :: OpaqueCaptureDescriptorDataCreateInfoEXT -> "descriptor" ::: Ptr ()
opaqueCaptureDescriptorData :: "descriptor" ::: Ptr ()
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
opaqueCaptureDescriptorData)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("descriptor" ::: Ptr ()) -> ("descriptor" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr ()))) ("descriptor" ::: Ptr ()
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct OpaqueCaptureDescriptorDataCreateInfoEXT where
peekCStruct :: Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> IO OpaqueCaptureDescriptorDataCreateInfoEXT
peekCStruct Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p = do
opaqueCaptureDescriptorData <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
p Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> Int -> Ptr ("descriptor" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr ())))
pure $ OpaqueCaptureDescriptorDataCreateInfoEXT
opaqueCaptureDescriptorData
instance Storable OpaqueCaptureDescriptorDataCreateInfoEXT where
sizeOf :: OpaqueCaptureDescriptorDataCreateInfoEXT -> Int
sizeOf ~OpaqueCaptureDescriptorDataCreateInfoEXT
_ = Int
24
alignment :: OpaqueCaptureDescriptorDataCreateInfoEXT -> Int
alignment ~OpaqueCaptureDescriptorDataCreateInfoEXT
_ = Int
8
peek :: Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> IO OpaqueCaptureDescriptorDataCreateInfoEXT
peek = Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> IO OpaqueCaptureDescriptorDataCreateInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> OpaqueCaptureDescriptorDataCreateInfoEXT -> IO ()
poke Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
ptr OpaqueCaptureDescriptorDataCreateInfoEXT
poked = Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> OpaqueCaptureDescriptorDataCreateInfoEXT -> IO () -> IO ()
forall b.
Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
-> OpaqueCaptureDescriptorDataCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpaqueCaptureDescriptorDataCreateInfoEXT
ptr OpaqueCaptureDescriptorDataCreateInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero OpaqueCaptureDescriptorDataCreateInfoEXT where
zero :: OpaqueCaptureDescriptorDataCreateInfoEXT
zero = ("descriptor" ::: Ptr ())
-> OpaqueCaptureDescriptorDataCreateInfoEXT
OpaqueCaptureDescriptorDataCreateInfoEXT
"descriptor" ::: Ptr ()
forall a. Zero a => a
zero
data DescriptorDataEXT
= ASampler Sampler
| ACombinedImageSampler DescriptorImageInfo
| AnInputAttachmentImage DescriptorImageInfo
| ASampledImage (Maybe DescriptorImageInfo)
| AStorageImage (Maybe DescriptorImageInfo)
| AnUniformTexelBuffer (Maybe DescriptorAddressInfoEXT)
| AStorageTexelBuffer (Maybe DescriptorAddressInfoEXT)
| AnUniformBuffer (Maybe DescriptorAddressInfoEXT)
| AStorageBuffer (Maybe DescriptorAddressInfoEXT)
| AnAccelerationStructure DeviceAddress
deriving (Int -> DescriptorDataEXT -> ShowS
[DescriptorDataEXT] -> ShowS
DescriptorDataEXT -> String
(Int -> DescriptorDataEXT -> ShowS)
-> (DescriptorDataEXT -> String)
-> ([DescriptorDataEXT] -> ShowS)
-> Show DescriptorDataEXT
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DescriptorDataEXT -> ShowS
showsPrec :: Int -> DescriptorDataEXT -> ShowS
$cshow :: DescriptorDataEXT -> String
show :: DescriptorDataEXT -> String
$cshowList :: [DescriptorDataEXT] -> ShowS
showList :: [DescriptorDataEXT] -> ShowS
Show)
instance ToCStruct DescriptorDataEXT where
withCStruct :: forall b.
DescriptorDataEXT -> (Ptr DescriptorDataEXT -> IO b) -> IO b
withCStruct DescriptorDataEXT
x Ptr DescriptorDataEXT -> IO b
f = Int -> (Ptr DescriptorDataEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
8 ((Ptr DescriptorDataEXT -> IO b) -> IO b)
-> (Ptr DescriptorDataEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorDataEXT
p -> Ptr DescriptorDataEXT -> DescriptorDataEXT -> IO b -> IO b
forall b.
Ptr DescriptorDataEXT -> DescriptorDataEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorDataEXT
p DescriptorDataEXT
x (Ptr DescriptorDataEXT -> IO b
f Ptr DescriptorDataEXT
p)
pokeCStruct :: Ptr DescriptorDataEXT -> DescriptorDataEXT -> IO a -> IO a
pokeCStruct :: forall b.
Ptr DescriptorDataEXT -> DescriptorDataEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorDataEXT
p = (((() -> IO a) -> IO a) -> (IO a -> () -> IO a) -> IO a -> IO a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. IO a -> () -> IO a
forall a b. a -> b -> a
const) (((() -> IO a) -> IO a) -> IO a -> IO a)
-> (DescriptorDataEXT -> (() -> IO a) -> IO a)
-> DescriptorDataEXT
-> IO a
-> IO a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT a IO () -> (() -> IO a) -> IO a
forall {k} (r :: k) (m :: k -> *) a.
ContT r m a -> (a -> m r) -> m r
runContT (ContT a IO () -> (() -> IO a) -> IO a)
-> (DescriptorDataEXT -> ContT a IO ())
-> DescriptorDataEXT
-> (() -> IO a)
-> IO a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
ASampler Sampler
v -> do
pSampler <- ((Ptr Sampler -> IO a) -> IO a) -> ContT a IO (Ptr Sampler)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr Sampler -> IO a) -> IO a) -> ContT a IO (Ptr Sampler))
-> ((Ptr Sampler -> IO a) -> IO a) -> ContT a IO (Ptr Sampler)
forall a b. (a -> b) -> a -> b
$ Sampler -> (Ptr Sampler -> IO a) -> IO a
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with (Sampler
v)
lift $ poke (castPtr @_ @(Ptr Sampler) p) pSampler
ACombinedImageSampler DescriptorImageInfo
v -> do
pCombinedImageSampler <- ((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo))
-> ((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo)
forall a b. (a -> b) -> a -> b
$ DescriptorImageInfo -> (Ptr DescriptorImageInfo -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DescriptorImageInfo -> (Ptr DescriptorImageInfo -> IO b) -> IO b
withCStruct (DescriptorImageInfo
v)
lift $ poke (castPtr @_ @(Ptr DescriptorImageInfo) p) pCombinedImageSampler
AnInputAttachmentImage DescriptorImageInfo
v -> do
pInputAttachmentImage <- ((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo))
-> ((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo)
forall a b. (a -> b) -> a -> b
$ DescriptorImageInfo -> (Ptr DescriptorImageInfo -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DescriptorImageInfo -> (Ptr DescriptorImageInfo -> IO b) -> IO b
withCStruct (DescriptorImageInfo
v)
lift $ poke (castPtr @_ @(Ptr DescriptorImageInfo) p) pInputAttachmentImage
ASampledImage Maybe DescriptorImageInfo
v -> do
pSampledImage <- case (Maybe DescriptorImageInfo
v) of
Maybe DescriptorImageInfo
Nothing -> Ptr DescriptorImageInfo -> ContT a IO (Ptr DescriptorImageInfo)
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr DescriptorImageInfo
forall a. Ptr a
nullPtr
Just DescriptorImageInfo
j -> ((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo))
-> ((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo)
forall a b. (a -> b) -> a -> b
$ DescriptorImageInfo -> (Ptr DescriptorImageInfo -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DescriptorImageInfo -> (Ptr DescriptorImageInfo -> IO b) -> IO b
withCStruct (DescriptorImageInfo
j)
lift $ poke (castPtr @_ @(Ptr DescriptorImageInfo) p) pSampledImage
AStorageImage Maybe DescriptorImageInfo
v -> do
pStorageImage <- case (Maybe DescriptorImageInfo
v) of
Maybe DescriptorImageInfo
Nothing -> Ptr DescriptorImageInfo -> ContT a IO (Ptr DescriptorImageInfo)
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr DescriptorImageInfo
forall a. Ptr a
nullPtr
Just DescriptorImageInfo
j -> ((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo))
-> ((Ptr DescriptorImageInfo -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorImageInfo)
forall a b. (a -> b) -> a -> b
$ DescriptorImageInfo -> (Ptr DescriptorImageInfo -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DescriptorImageInfo -> (Ptr DescriptorImageInfo -> IO b) -> IO b
withCStruct (DescriptorImageInfo
j)
lift $ poke (castPtr @_ @(Ptr DescriptorImageInfo) p) pStorageImage
AnUniformTexelBuffer Maybe DescriptorAddressInfoEXT
v -> do
pUniformTexelBuffer <- case (Maybe DescriptorAddressInfoEXT
v) of
Maybe DescriptorAddressInfoEXT
Nothing -> Ptr DescriptorAddressInfoEXT
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr DescriptorAddressInfoEXT
forall a. Ptr a
nullPtr
Just DescriptorAddressInfoEXT
j -> ((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT))
-> ((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall a b. (a -> b) -> a -> b
$ DescriptorAddressInfoEXT
-> (Ptr DescriptorAddressInfoEXT -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DescriptorAddressInfoEXT
-> (Ptr DescriptorAddressInfoEXT -> IO b) -> IO b
withCStruct (DescriptorAddressInfoEXT
j)
lift $ poke (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p) pUniformTexelBuffer
AStorageTexelBuffer Maybe DescriptorAddressInfoEXT
v -> do
pStorageTexelBuffer <- case (Maybe DescriptorAddressInfoEXT
v) of
Maybe DescriptorAddressInfoEXT
Nothing -> Ptr DescriptorAddressInfoEXT
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr DescriptorAddressInfoEXT
forall a. Ptr a
nullPtr
Just DescriptorAddressInfoEXT
j -> ((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT))
-> ((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall a b. (a -> b) -> a -> b
$ DescriptorAddressInfoEXT
-> (Ptr DescriptorAddressInfoEXT -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DescriptorAddressInfoEXT
-> (Ptr DescriptorAddressInfoEXT -> IO b) -> IO b
withCStruct (DescriptorAddressInfoEXT
j)
lift $ poke (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p) pStorageTexelBuffer
AnUniformBuffer Maybe DescriptorAddressInfoEXT
v -> do
pUniformBuffer <- case (Maybe DescriptorAddressInfoEXT
v) of
Maybe DescriptorAddressInfoEXT
Nothing -> Ptr DescriptorAddressInfoEXT
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr DescriptorAddressInfoEXT
forall a. Ptr a
nullPtr
Just DescriptorAddressInfoEXT
j -> ((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT))
-> ((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall a b. (a -> b) -> a -> b
$ DescriptorAddressInfoEXT
-> (Ptr DescriptorAddressInfoEXT -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DescriptorAddressInfoEXT
-> (Ptr DescriptorAddressInfoEXT -> IO b) -> IO b
withCStruct (DescriptorAddressInfoEXT
j)
lift $ poke (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p) pUniformBuffer
AStorageBuffer Maybe DescriptorAddressInfoEXT
v -> do
pStorageBuffer <- case (Maybe DescriptorAddressInfoEXT
v) of
Maybe DescriptorAddressInfoEXT
Nothing -> Ptr DescriptorAddressInfoEXT
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr DescriptorAddressInfoEXT
forall a. Ptr a
nullPtr
Just DescriptorAddressInfoEXT
j -> ((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT))
-> ((Ptr DescriptorAddressInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DescriptorAddressInfoEXT)
forall a b. (a -> b) -> a -> b
$ DescriptorAddressInfoEXT
-> (Ptr DescriptorAddressInfoEXT -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DescriptorAddressInfoEXT
-> (Ptr DescriptorAddressInfoEXT -> IO b) -> IO b
withCStruct (DescriptorAddressInfoEXT
j)
lift $ poke (castPtr @_ @(Ptr DescriptorAddressInfoEXT) p) pStorageBuffer
AnAccelerationStructure DeviceAddress
v -> IO () -> ContT a IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT a m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT a IO ()) -> IO () -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (forall a b. Ptr a -> Ptr b
castPtr @_ @DeviceAddress Ptr DescriptorDataEXT
p) (DeviceAddress
v)
pokeZeroCStruct :: Ptr DescriptorDataEXT -> IO b -> IO b
pokeZeroCStruct :: forall b. Ptr DescriptorDataEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorDataEXT
_ IO b
f = IO b
f
cStructSize :: Int
cStructSize = Int
8
cStructAlignment :: Int
cStructAlignment = Int
8
instance Zero DescriptorDataEXT where
zero :: DescriptorDataEXT
zero = Sampler -> DescriptorDataEXT
ASampler Sampler
forall a. Zero a => a
zero
peekDescriptorDataEXT :: DescriptorType -> Ptr DescriptorDataEXT -> IO DescriptorDataEXT
peekDescriptorDataEXT :: DescriptorType -> Ptr DescriptorDataEXT -> IO DescriptorDataEXT
peekDescriptorDataEXT DescriptorType
tag Ptr DescriptorDataEXT
p = case DescriptorType
tag of
DescriptorType
DESCRIPTOR_TYPE_SAMPLER -> Sampler -> DescriptorDataEXT
ASampler (Sampler -> DescriptorDataEXT)
-> IO Sampler -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall a. Storable a => Ptr a -> IO a
peek @Sampler (Ptr Sampler -> IO Sampler) -> IO (Ptr Sampler) -> IO Sampler
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Ptr (Ptr Sampler) -> IO (Ptr Sampler)
forall a. Storable a => Ptr a -> IO a
peek (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr Sampler) Ptr DescriptorDataEXT
p))
DescriptorType
DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER -> DescriptorImageInfo -> DescriptorDataEXT
ACombinedImageSampler (DescriptorImageInfo -> DescriptorDataEXT)
-> IO DescriptorImageInfo -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DescriptorImageInfo (Ptr DescriptorImageInfo -> IO DescriptorImageInfo)
-> IO (Ptr DescriptorImageInfo) -> IO DescriptorImageInfo
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Ptr (Ptr DescriptorImageInfo) -> IO (Ptr DescriptorImageInfo)
forall a. Storable a => Ptr a -> IO a
peek (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr DescriptorImageInfo) Ptr DescriptorDataEXT
p))
DescriptorType
DESCRIPTOR_TYPE_INPUT_ATTACHMENT -> DescriptorImageInfo -> DescriptorDataEXT
AnInputAttachmentImage (DescriptorImageInfo -> DescriptorDataEXT)
-> IO DescriptorImageInfo -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DescriptorImageInfo (Ptr DescriptorImageInfo -> IO DescriptorImageInfo)
-> IO (Ptr DescriptorImageInfo) -> IO DescriptorImageInfo
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Ptr (Ptr DescriptorImageInfo) -> IO (Ptr DescriptorImageInfo)
forall a. Storable a => Ptr a -> IO a
peek (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr DescriptorImageInfo) Ptr DescriptorDataEXT
p))
DescriptorType
DESCRIPTOR_TYPE_SAMPLED_IMAGE -> Maybe DescriptorImageInfo -> DescriptorDataEXT
ASampledImage (Maybe DescriptorImageInfo -> DescriptorDataEXT)
-> IO (Maybe DescriptorImageInfo) -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (do
pSampledImage <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr DescriptorImageInfo) (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr DescriptorImageInfo) Ptr DescriptorDataEXT
p)
maybePeek (\Ptr DescriptorImageInfo
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DescriptorImageInfo (Ptr DescriptorImageInfo
j)) pSampledImage)
DescriptorType
DESCRIPTOR_TYPE_STORAGE_IMAGE -> Maybe DescriptorImageInfo -> DescriptorDataEXT
AStorageImage (Maybe DescriptorImageInfo -> DescriptorDataEXT)
-> IO (Maybe DescriptorImageInfo) -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (do
pStorageImage <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr DescriptorImageInfo) (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr DescriptorImageInfo) Ptr DescriptorDataEXT
p)
maybePeek (\Ptr DescriptorImageInfo
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DescriptorImageInfo (Ptr DescriptorImageInfo
j)) pStorageImage)
DescriptorType
DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER -> Maybe DescriptorAddressInfoEXT -> DescriptorDataEXT
AnUniformTexelBuffer (Maybe DescriptorAddressInfoEXT -> DescriptorDataEXT)
-> IO (Maybe DescriptorAddressInfoEXT) -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (do
pUniformTexelBuffer <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr DescriptorAddressInfoEXT) (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr DescriptorAddressInfoEXT) Ptr DescriptorDataEXT
p)
maybePeek (\Ptr DescriptorAddressInfoEXT
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DescriptorAddressInfoEXT (Ptr DescriptorAddressInfoEXT
j)) pUniformTexelBuffer)
DescriptorType
DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER -> Maybe DescriptorAddressInfoEXT -> DescriptorDataEXT
AStorageTexelBuffer (Maybe DescriptorAddressInfoEXT -> DescriptorDataEXT)
-> IO (Maybe DescriptorAddressInfoEXT) -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (do
pStorageTexelBuffer <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr DescriptorAddressInfoEXT) (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr DescriptorAddressInfoEXT) Ptr DescriptorDataEXT
p)
maybePeek (\Ptr DescriptorAddressInfoEXT
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DescriptorAddressInfoEXT (Ptr DescriptorAddressInfoEXT
j)) pStorageTexelBuffer)
DescriptorType
DESCRIPTOR_TYPE_UNIFORM_BUFFER -> Maybe DescriptorAddressInfoEXT -> DescriptorDataEXT
AnUniformBuffer (Maybe DescriptorAddressInfoEXT -> DescriptorDataEXT)
-> IO (Maybe DescriptorAddressInfoEXT) -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (do
pUniformBuffer <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr DescriptorAddressInfoEXT) (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr DescriptorAddressInfoEXT) Ptr DescriptorDataEXT
p)
maybePeek (\Ptr DescriptorAddressInfoEXT
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DescriptorAddressInfoEXT (Ptr DescriptorAddressInfoEXT
j)) pUniformBuffer)
DescriptorType
DESCRIPTOR_TYPE_STORAGE_BUFFER -> Maybe DescriptorAddressInfoEXT -> DescriptorDataEXT
AStorageBuffer (Maybe DescriptorAddressInfoEXT -> DescriptorDataEXT)
-> IO (Maybe DescriptorAddressInfoEXT) -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (do
pStorageBuffer <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr DescriptorAddressInfoEXT) (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr DescriptorAddressInfoEXT) Ptr DescriptorDataEXT
p)
maybePeek (\Ptr DescriptorAddressInfoEXT
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DescriptorAddressInfoEXT (Ptr DescriptorAddressInfoEXT
j)) pStorageBuffer)
DescriptorType
DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR -> DeviceAddress -> DescriptorDataEXT
AnAccelerationStructure (DeviceAddress -> DescriptorDataEXT)
-> IO DeviceAddress -> IO DescriptorDataEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress (forall a b. Ptr a -> Ptr b
castPtr @_ @DeviceAddress Ptr DescriptorDataEXT
p))
type EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1
pattern EXT_DESCRIPTOR_BUFFER_SPEC_VERSION :: forall a . Integral a => a
pattern $mEXT_DESCRIPTOR_BUFFER_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEXT_DESCRIPTOR_BUFFER_SPEC_VERSION :: forall a. Integral a => a
EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1
type EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer"
pattern EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mEXT_DESCRIPTOR_BUFFER_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEXT_DESCRIPTOR_BUFFER_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer"