{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_descriptor_heap ( writeSamplerDescriptorsEXT
, writeResourceDescriptorsEXT
, cmdBindSamplerHeapEXT
, cmdBindResourceHeapEXT
, cmdPushDataEXT
, registerCustomBorderColorEXT
, unregisterCustomBorderColorEXT
, getImageOpaqueCaptureDataEXT
, getPhysicalDeviceDescriptorSizeEXT
, getTensorOpaqueCaptureDataARM
, HostAddressRangeEXT(..)
, HostAddressRangeConstEXT(..)
, DeviceAddressRangeEXT(..)
, TexelBufferDescriptorInfoEXT(..)
, ImageDescriptorInfoEXT(..)
, ResourceDescriptorInfoEXT(..)
, BindHeapInfoEXT(..)
, PushDataInfoEXT(..)
, DescriptorMappingSourceConstantOffsetEXT(..)
, DescriptorMappingSourcePushIndexEXT(..)
, DescriptorMappingSourceIndirectIndexEXT(..)
, DescriptorMappingSourceIndirectIndexArrayEXT(..)
, DescriptorMappingSourceHeapDataEXT(..)
, DescriptorMappingSourceShaderRecordIndexEXT(..)
, DescriptorMappingSourceIndirectAddressEXT(..)
, DescriptorSetAndBindingMappingEXT(..)
, ShaderDescriptorSetAndBindingMappingInfoEXT(..)
, SamplerCustomBorderColorIndexCreateInfoEXT(..)
, OpaqueCaptureDataCreateInfoEXT(..)
, IndirectCommandsLayoutPushDataTokenNV(..)
, SubsampledImageFormatPropertiesEXT(..)
, PhysicalDeviceDescriptorHeapFeaturesEXT(..)
, PhysicalDeviceDescriptorHeapPropertiesEXT(..)
, CommandBufferInheritanceDescriptorHeapInfoEXT(..)
, PhysicalDeviceDescriptorHeapTensorPropertiesARM(..)
, ResourceDescriptorDataEXT(..)
, DescriptorMappingSourceDataEXT(..)
, DescriptorMappingSourceEXT( DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT
, DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT
, DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT
, DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT
, DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT
, DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT
, DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT
, DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT
, DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT
, DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT
, DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT
, ..
)
, SpirvResourceTypeFlagsEXT
, SpirvResourceTypeFlagBitsEXT( SPIRV_RESOURCE_TYPE_ALL_EXT
, SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT
, SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT
, SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT
, SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT
, SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT
, SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT
, SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT
, SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT
, SPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM
, SPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT
, ..
)
, EXT_DESCRIPTOR_HEAP_SPEC_VERSION
, pattern EXT_DESCRIPTOR_HEAP_SPEC_VERSION
, EXT_DESCRIPTOR_HEAP_EXTENSION_NAME
, pattern EXT_DESCRIPTOR_HEAP_EXTENSION_NAME
, TensorARM(..)
, SamplerCustomBorderColorCreateInfoEXT(..)
, TensorViewCreateInfoARM(..)
, IndirectCommandsTokenTypeNV(..)
, IndirectCommandsTokenTypeEXT(..)
, ShaderCreateFlagBitsEXT(..)
, ShaderCreateFlagsEXT
, TensorCreateFlagBitsARM(..)
, TensorCreateFlagsARM
, TensorViewCreateFlagBitsARM(..)
, TensorViewCreateFlagsARM
) where
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Exception.Base (bracket)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Data.Typeable (eqT)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Marshal.Alloc (callocBytes)
import Foreign.Marshal.Alloc (free)
import Foreign.Marshal.Utils (maybePeek)
import GHC.Base (when)
import GHC.IO (throwIO)
import GHC.Ptr (castPtr)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showString)
import GHC.Show (showsPrec)
import Numeric (showHex)
import Data.Coerce (coerce)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Control.Monad.Trans.Cont (runContT)
import Data.Vector (generateM)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
import Data.String (IsString)
import Data.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 Data.Int (Int32)
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Data.Word (Word32)
import Data.Word (Word64)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.CStruct.Extends (forgetExtensions)
import Vulkan.CStruct.Extends (peekSomeCStruct)
import Vulkan.CStruct.Extends (pokeSomeCStruct)
import Vulkan.CStruct.Extends (withSomeCStruct)
import Vulkan.NamedType ((:::))
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.FundamentalTypes (Bool32(..))
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_EXT_debug_utils (DebugUtilsObjectNameInfoEXT)
import Vulkan.Core10.Enums.DescriptorType (DescriptorType)
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(pVkCmdBindResourceHeapEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdBindSamplerHeapEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdPushDataEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetImageOpaqueCaptureDataEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetTensorOpaqueCaptureDataARM))
import Vulkan.Dynamic (DeviceCmds(pVkRegisterCustomBorderColorEXT))
import Vulkan.Dynamic (DeviceCmds(pVkUnregisterCustomBorderColorEXT))
import Vulkan.Dynamic (DeviceCmds(pVkWriteResourceDescriptorsEXT))
import Vulkan.Dynamic (DeviceCmds(pVkWriteSamplerDescriptorsEXT))
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.FundamentalTypes (Flags)
import Vulkan.Core10.Enums.Format (Format)
import Vulkan.Core10.Handles (Image)
import Vulkan.Core10.Handles (Image(..))
import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
import Vulkan.Core10.ImageView (ImageViewCreateInfo)
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceDescriptorSizeEXT))
import Vulkan.CStruct.Extends (PeekChain)
import Vulkan.CStruct.Extends (PeekChain(..))
import Vulkan.Core10.Handles (PhysicalDevice)
import Vulkan.Core10.Handles (PhysicalDevice(..))
import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
import Vulkan.Core10.Handles (PhysicalDevice_T)
import Vulkan.CStruct.Extends (PokeChain)
import Vulkan.CStruct.Extends (PokeChain(..))
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_push_constant_bank (PushConstantBankInfoNV)
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.Core10.Sampler (SamplerCreateInfo)
import Vulkan.Extensions.VK_EXT_custom_border_color (SamplerCustomBorderColorCreateInfoEXT)
import Vulkan.CStruct.Extends (SomeStruct)
import Vulkan.CStruct.Extends (SomeStruct(..))
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Extensions.Handles (TensorARM)
import Vulkan.Extensions.Handles (TensorARM(..))
import Vulkan.Extensions.VK_ARM_tensors (TensorViewCreateInfoARM)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_HEAP_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PUSH_DATA_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Extensions.VK_EXT_device_generated_commands (IndirectCommandsTokenTypeEXT(..))
import Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsTokenTypeNV(..))
import Vulkan.Extensions.VK_EXT_custom_border_color (SamplerCustomBorderColorCreateInfoEXT(..))
import Vulkan.Extensions.VK_EXT_shader_object (ShaderCreateFlagBitsEXT(..))
import Vulkan.Extensions.VK_EXT_shader_object (ShaderCreateFlagsEXT)
import Vulkan.Extensions.Handles (TensorARM(..))
import Vulkan.Extensions.VK_ARM_tensors (TensorCreateFlagBitsARM(..))
import Vulkan.Extensions.VK_ARM_tensors (TensorCreateFlagsARM)
import Vulkan.Extensions.VK_ARM_tensors (TensorViewCreateFlagBitsARM(..))
import Vulkan.Extensions.VK_ARM_tensors (TensorViewCreateFlagsARM)
import Vulkan.Extensions.VK_ARM_tensors (TensorViewCreateInfoARM(..))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkWriteSamplerDescriptorsEXT
:: FunPtr (Ptr Device_T -> Word32 -> Ptr (SomeStruct SamplerCreateInfo) -> Ptr HostAddressRangeEXT -> IO Result) -> Ptr Device_T -> Word32 -> Ptr (SomeStruct SamplerCreateInfo) -> Ptr HostAddressRangeEXT -> IO Result
writeSamplerDescriptorsEXT :: forall io
. (MonadIO io)
=>
Device
->
("samplers" ::: Vector (SomeStruct SamplerCreateInfo))
->
("descriptors" ::: Vector HostAddressRangeEXT)
-> io ()
writeSamplerDescriptorsEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> ("samplers" ::: Vector (SomeStruct SamplerCreateInfo))
-> ("descriptors" ::: Vector HostAddressRangeEXT)
-> io ()
writeSamplerDescriptorsEXT Device
device "samplers" ::: Vector (SomeStruct SamplerCreateInfo)
samplers "descriptors" ::: Vector HostAddressRangeEXT
descriptors = 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 vkWriteSamplerDescriptorsEXTPtr :: FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> IO Result)
vkWriteSamplerDescriptorsEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> IO Result)
pVkWriteSamplerDescriptorsEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds :: Device -> 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
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> IO Result)
vkWriteSamplerDescriptorsEXTPtr FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> 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 vkWriteSamplerDescriptorsEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkWriteSamplerDescriptorsEXT' :: Ptr Device_T
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> IO Result
vkWriteSamplerDescriptorsEXT' = FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> IO Result)
-> Ptr Device_T
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> IO Result
mkVkWriteSamplerDescriptorsEXT FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct SamplerCreateInfo)
-> Ptr HostAddressRangeEXT
-> IO Result)
vkWriteSamplerDescriptorsEXTPtr
let pSamplersLength :: Int
pSamplersLength = ("samplers" ::: Vector (SomeStruct SamplerCreateInfo)) -> Int
forall a. Vector a -> Int
Data.Vector.length (("samplers" ::: Vector (SomeStruct SamplerCreateInfo)) -> Int)
-> ("samplers" ::: Vector (SomeStruct SamplerCreateInfo)) -> Int
forall a b. (a -> b) -> a -> b
$ ("samplers" ::: Vector (SomeStruct SamplerCreateInfo)
samplers)
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 ((("descriptors" ::: Vector HostAddressRangeEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length (("descriptors" ::: Vector HostAddressRangeEXT) -> Int)
-> ("descriptors" ::: Vector HostAddressRangeEXT) -> Int
forall a b. (a -> b) -> a -> b
$ ("descriptors" ::: Vector HostAddressRangeEXT
descriptors)) Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
pSamplersLength) (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
"pDescriptors and pSamplers must have the same length" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
pPSamplers <- ((Ptr (SamplerCreateInfo (ZonkAny 2)) -> IO ()) -> IO ())
-> ContT () IO (Ptr (SamplerCreateInfo (ZonkAny 2)))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (SamplerCreateInfo (ZonkAny 2)) -> IO ()) -> IO ())
-> ContT () IO (Ptr (SamplerCreateInfo (ZonkAny 2))))
-> ((Ptr (SamplerCreateInfo (ZonkAny 2)) -> IO ()) -> IO ())
-> ContT () IO (Ptr (SamplerCreateInfo (ZonkAny 2)))
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @(SamplerCreateInfo _) ((("samplers" ::: Vector (SomeStruct SamplerCreateInfo)) -> Int
forall a. Vector a -> Int
Data.Vector.length ("samplers" ::: Vector (SomeStruct SamplerCreateInfo)
samplers)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
80)
Data.Vector.imapM_ (\Int
i SomeStruct SamplerCreateInfo
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 SamplerCreateInfo)
-> SomeStruct SamplerCreateInfo -> 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 (SamplerCreateInfo (ZonkAny 3))
-> Ptr (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (SamplerCreateInfo (ZonkAny 2))
pPSamplers Ptr (SamplerCreateInfo (ZonkAny 2))
-> Int -> Ptr (SamplerCreateInfo w)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
80 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (SamplerCreateInfo _))) (SomeStruct SamplerCreateInfo
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
$ ())) (samplers)
pPDescriptors <- ContT $ allocaBytes @HostAddressRangeEXT ((Data.Vector.length (descriptors)) * 16)
lift $ Data.Vector.imapM_ (\Int
i HostAddressRangeEXT
e -> Ptr HostAddressRangeEXT -> HostAddressRangeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr HostAddressRangeEXT
pPDescriptors Ptr HostAddressRangeEXT -> Int -> Ptr HostAddressRangeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
16 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr HostAddressRangeEXT) (HostAddressRangeEXT
e)) (descriptors)
r <- lift $ traceAroundEvent "vkWriteSamplerDescriptorsEXT" (vkWriteSamplerDescriptorsEXT'
(deviceHandle (device))
((fromIntegral pSamplersLength :: Word32))
(forgetExtensions (pPSamplers))
(pPDescriptors))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkWriteResourceDescriptorsEXT
:: FunPtr (Ptr Device_T -> Word32 -> Ptr (SomeStruct ResourceDescriptorInfoEXT) -> Ptr HostAddressRangeEXT -> IO Result) -> Ptr Device_T -> Word32 -> Ptr (SomeStruct ResourceDescriptorInfoEXT) -> Ptr HostAddressRangeEXT -> IO Result
writeResourceDescriptorsEXT :: forall io
. (MonadIO io)
=>
Device
->
("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT))
->
("descriptors" ::: Vector HostAddressRangeEXT)
-> io ()
writeResourceDescriptorsEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> ("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT))
-> ("descriptors" ::: Vector HostAddressRangeEXT)
-> io ()
writeResourceDescriptorsEXT Device
device
"resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT)
resources
"descriptors" ::: Vector HostAddressRangeEXT
descriptors = 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 vkWriteResourceDescriptorsEXTPtr :: FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> IO Result)
vkWriteResourceDescriptorsEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> IO Result)
pVkWriteResourceDescriptorsEXT (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
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> IO Result)
vkWriteResourceDescriptorsEXTPtr FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> 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 vkWriteResourceDescriptorsEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkWriteResourceDescriptorsEXT' :: Ptr Device_T
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> IO Result
vkWriteResourceDescriptorsEXT' = FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> IO Result)
-> Ptr Device_T
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> IO Result
mkVkWriteResourceDescriptorsEXT FunPtr
(Ptr Device_T
-> Word32
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
-> Ptr HostAddressRangeEXT
-> IO Result)
vkWriteResourceDescriptorsEXTPtr
let pResourcesLength :: Int
pResourcesLength = ("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT))
-> Int
forall a. Vector a -> Int
Data.Vector.length (("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT))
-> Int)
-> ("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT))
-> Int
forall a b. (a -> b) -> a -> b
$ ("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT)
resources)
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 ((("descriptors" ::: Vector HostAddressRangeEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length (("descriptors" ::: Vector HostAddressRangeEXT) -> Int)
-> ("descriptors" ::: Vector HostAddressRangeEXT) -> Int
forall a b. (a -> b) -> a -> b
$ ("descriptors" ::: Vector HostAddressRangeEXT
descriptors)) Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
pResourcesLength) (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
"pDescriptors and pResources must have the same length" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
pPResources <- ((Ptr (ResourceDescriptorInfoEXT (ZonkAny 0)) -> IO ()) -> IO ())
-> ContT () IO (Ptr (ResourceDescriptorInfoEXT (ZonkAny 0)))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (ResourceDescriptorInfoEXT (ZonkAny 0)) -> IO ()) -> IO ())
-> ContT () IO (Ptr (ResourceDescriptorInfoEXT (ZonkAny 0))))
-> ((Ptr (ResourceDescriptorInfoEXT (ZonkAny 0)) -> IO ())
-> IO ())
-> ContT () IO (Ptr (ResourceDescriptorInfoEXT (ZonkAny 0)))
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @(ResourceDescriptorInfoEXT _) ((("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT))
-> Int
forall a. Vector a -> Int
Data.Vector.length ("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT)
resources)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
32)
Data.Vector.imapM_ (\Int
i SomeStruct ResourceDescriptorInfoEXT
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 ResourceDescriptorInfoEXT)
-> SomeStruct ResourceDescriptorInfoEXT -> 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 (ResourceDescriptorInfoEXT (ZonkAny 1))
-> Ptr (SomeStruct ResourceDescriptorInfoEXT)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (ResourceDescriptorInfoEXT (ZonkAny 0))
pPResources Ptr (ResourceDescriptorInfoEXT (ZonkAny 0))
-> Int -> Ptr (ResourceDescriptorInfoEXT 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 (ResourceDescriptorInfoEXT _))) (SomeStruct ResourceDescriptorInfoEXT
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
$ ())) (resources)
pPDescriptors <- ContT $ allocaBytes @HostAddressRangeEXT ((Data.Vector.length (descriptors)) * 16)
lift $ Data.Vector.imapM_ (\Int
i HostAddressRangeEXT
e -> Ptr HostAddressRangeEXT -> HostAddressRangeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr HostAddressRangeEXT
pPDescriptors Ptr HostAddressRangeEXT -> Int -> Ptr HostAddressRangeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
16 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr HostAddressRangeEXT) (HostAddressRangeEXT
e)) (descriptors)
r <- lift $ traceAroundEvent "vkWriteResourceDescriptorsEXT" (vkWriteResourceDescriptorsEXT'
(deviceHandle (device))
((fromIntegral pResourcesLength :: Word32))
(forgetExtensions (pPResources))
(pPDescriptors))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdBindSamplerHeapEXT
:: FunPtr (Ptr CommandBuffer_T -> Ptr BindHeapInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Ptr BindHeapInfoEXT -> IO ()
cmdBindSamplerHeapEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("bindInfo" ::: BindHeapInfoEXT)
-> io ()
cmdBindSamplerHeapEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> ("bindInfo" ::: BindHeapInfoEXT) -> io ()
cmdBindSamplerHeapEXT CommandBuffer
commandBuffer "bindInfo" ::: BindHeapInfoEXT
bindInfo = 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 vkCmdBindSamplerHeapEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
vkCmdBindSamplerHeapEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
pVkCmdBindSamplerHeapEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
vkCmdBindSamplerHeapEXTPtr FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> 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 vkCmdBindSamplerHeapEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdBindSamplerHeapEXT' :: Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()
vkCmdBindSamplerHeapEXT' = FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
-> Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> IO ()
mkVkCmdBindSamplerHeapEXT FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
vkCmdBindSamplerHeapEXTPtr
pBindInfo <- ((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("bindInfo" ::: BindHeapInfoEXT)))
-> ((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall a b. (a -> b) -> a -> b
$ ("bindInfo" ::: BindHeapInfoEXT)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
("bindInfo" ::: BindHeapInfoEXT)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b
withCStruct ("bindInfo" ::: BindHeapInfoEXT
bindInfo)
lift $ traceAroundEvent "vkCmdBindSamplerHeapEXT" (vkCmdBindSamplerHeapEXT'
(commandBufferHandle (commandBuffer))
pBindInfo)
pure $ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdBindResourceHeapEXT
:: FunPtr (Ptr CommandBuffer_T -> Ptr BindHeapInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Ptr BindHeapInfoEXT -> IO ()
cmdBindResourceHeapEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("bindInfo" ::: BindHeapInfoEXT)
-> io ()
cmdBindResourceHeapEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> ("bindInfo" ::: BindHeapInfoEXT) -> io ()
cmdBindResourceHeapEXT CommandBuffer
commandBuffer "bindInfo" ::: BindHeapInfoEXT
bindInfo = 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 vkCmdBindResourceHeapEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
vkCmdBindResourceHeapEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
pVkCmdBindResourceHeapEXT (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
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
vkCmdBindResourceHeapEXTPtr FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> 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 vkCmdBindResourceHeapEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdBindResourceHeapEXT' :: Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()
vkCmdBindResourceHeapEXT' = FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
-> Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> IO ()
mkVkCmdBindResourceHeapEXT FunPtr
(Ptr CommandBuffer_T
-> Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ())
vkCmdBindResourceHeapEXTPtr
pBindInfo <- ((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("bindInfo" ::: BindHeapInfoEXT)))
-> ((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()) -> IO ())
-> ContT () IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall a b. (a -> b) -> a -> b
$ ("bindInfo" ::: BindHeapInfoEXT)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
("bindInfo" ::: BindHeapInfoEXT)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b
withCStruct ("bindInfo" ::: BindHeapInfoEXT
bindInfo)
lift $ traceAroundEvent "vkCmdBindResourceHeapEXT" (vkCmdBindResourceHeapEXT'
(commandBufferHandle (commandBuffer))
pBindInfo)
pure $ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdPushDataEXT
:: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ()
cmdPushDataEXT :: forall a io
. (Extendss PushDataInfoEXT a, PokeChain a, MonadIO io)
=>
CommandBuffer
->
(PushDataInfoEXT a)
-> io ()
cmdPushDataEXT :: forall (a :: [*]) (io :: * -> *).
(Extendss PushDataInfoEXT a, PokeChain a, MonadIO io) =>
CommandBuffer -> PushDataInfoEXT a -> io ()
cmdPushDataEXT CommandBuffer
commandBuffer PushDataInfoEXT a
pushDataInfo = 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 vkCmdPushDataEXTPtr :: FunPtr
(Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ())
vkCmdPushDataEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ())
pVkCmdPushDataEXT (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 -> Ptr (SomeStruct PushDataInfoEXT) -> IO ())
vkCmdPushDataEXTPtr FunPtr
(Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ())
-> FunPtr
(Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> 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 vkCmdPushDataEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdPushDataEXT' :: Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ()
vkCmdPushDataEXT' = FunPtr
(Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ())
-> Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ()
mkVkCmdPushDataEXT FunPtr
(Ptr CommandBuffer_T -> Ptr (SomeStruct PushDataInfoEXT) -> IO ())
vkCmdPushDataEXTPtr
pPushDataInfo <- ((Ptr (PushDataInfoEXT a) -> IO ()) -> IO ())
-> ContT () IO (Ptr (PushDataInfoEXT a))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (PushDataInfoEXT a) -> IO ()) -> IO ())
-> ContT () IO (Ptr (PushDataInfoEXT a)))
-> ((Ptr (PushDataInfoEXT a) -> IO ()) -> IO ())
-> ContT () IO (Ptr (PushDataInfoEXT a))
forall a b. (a -> b) -> a -> b
$ PushDataInfoEXT a -> (Ptr (PushDataInfoEXT a) -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
PushDataInfoEXT a -> (Ptr (PushDataInfoEXT a) -> IO b) -> IO b
withCStruct (PushDataInfoEXT a
pushDataInfo)
lift $ traceAroundEvent "vkCmdPushDataEXT" (vkCmdPushDataEXT'
(commandBufferHandle (commandBuffer))
(forgetExtensions pPushDataInfo))
pure $ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkRegisterCustomBorderColorEXT
:: FunPtr (Ptr Device_T -> Ptr SamplerCustomBorderColorCreateInfoEXT -> Bool32 -> Ptr Word32 -> IO Result) -> Ptr Device_T -> Ptr SamplerCustomBorderColorCreateInfoEXT -> Bool32 -> Ptr Word32 -> IO Result
registerCustomBorderColorEXT :: forall io
. (MonadIO io)
=>
Device
->
SamplerCustomBorderColorCreateInfoEXT
->
("requestIndex" ::: Bool)
-> io (("index" ::: Word32))
registerCustomBorderColorEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> SamplerCustomBorderColorCreateInfoEXT -> Bool -> io Word32
registerCustomBorderColorEXT Device
device
SamplerCustomBorderColorCreateInfoEXT
borderColor
Bool
requestIndex = IO Word32 -> io Word32
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> io Word32)
-> (ContT Word32 IO Word32 -> IO Word32)
-> ContT Word32 IO Word32
-> io Word32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT Word32 IO Word32 -> IO Word32
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT Word32 IO Word32 -> io Word32)
-> ContT Word32 IO Word32 -> io Word32
forall a b. (a -> b) -> a -> b
$ do
let vkRegisterCustomBorderColorEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> IO Result)
vkRegisterCustomBorderColorEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> IO Result)
pVkRegisterCustomBorderColorEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT Word32 IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT Word32 m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT Word32 IO ()) -> IO () -> ContT Word32 IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> IO Result)
vkRegisterCustomBorderColorEXTPtr FunPtr
(Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> 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 vkRegisterCustomBorderColorEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkRegisterCustomBorderColorEXT' :: Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> IO Result
vkRegisterCustomBorderColorEXT' = FunPtr
(Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> IO Result)
-> Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> IO Result
mkVkRegisterCustomBorderColorEXT FunPtr
(Ptr Device_T
-> Ptr SamplerCustomBorderColorCreateInfoEXT
-> Bool32
-> Ptr Word32
-> IO Result)
vkRegisterCustomBorderColorEXTPtr
pBorderColor <- ((Ptr SamplerCustomBorderColorCreateInfoEXT -> IO Word32)
-> IO Word32)
-> ContT Word32 IO (Ptr SamplerCustomBorderColorCreateInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr SamplerCustomBorderColorCreateInfoEXT -> IO Word32)
-> IO Word32)
-> ContT Word32 IO (Ptr SamplerCustomBorderColorCreateInfoEXT))
-> ((Ptr SamplerCustomBorderColorCreateInfoEXT -> IO Word32)
-> IO Word32)
-> ContT Word32 IO (Ptr SamplerCustomBorderColorCreateInfoEXT)
forall a b. (a -> b) -> a -> b
$ SamplerCustomBorderColorCreateInfoEXT
-> (Ptr SamplerCustomBorderColorCreateInfoEXT -> IO Word32)
-> IO Word32
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
SamplerCustomBorderColorCreateInfoEXT
-> (Ptr SamplerCustomBorderColorCreateInfoEXT -> IO b) -> IO b
withCStruct (SamplerCustomBorderColorCreateInfoEXT
borderColor)
pPIndex <- ContT $ bracket (callocBytes @Word32 4) free
r <- lift $ traceAroundEvent "vkRegisterCustomBorderColorEXT" (vkRegisterCustomBorderColorEXT'
(deviceHandle (device))
pBorderColor
(boolToBool32 (requestIndex))
(pPIndex))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
pIndex <- lift $ peek @Word32 pPIndex
pure $ (pIndex)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkUnregisterCustomBorderColorEXT
:: FunPtr (Ptr Device_T -> Word32 -> IO ()) -> Ptr Device_T -> Word32 -> IO ()
unregisterCustomBorderColorEXT :: forall io
. (MonadIO io)
=>
Device
->
("index" ::: Word32)
-> io ()
unregisterCustomBorderColorEXT :: forall (io :: * -> *). MonadIO io => Device -> Word32 -> io ()
unregisterCustomBorderColorEXT Device
device Word32
index = 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 vkUnregisterCustomBorderColorEXTPtr :: FunPtr (Ptr Device_T -> Word32 -> IO ())
vkUnregisterCustomBorderColorEXTPtr = DeviceCmds -> FunPtr (Ptr Device_T -> Word32 -> IO ())
pVkUnregisterCustomBorderColorEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr (Ptr Device_T -> Word32 -> IO ())
vkUnregisterCustomBorderColorEXTPtr FunPtr (Ptr Device_T -> Word32 -> IO ())
-> FunPtr (Ptr Device_T -> Word32 -> IO ()) -> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr (Ptr Device_T -> 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 vkUnregisterCustomBorderColorEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkUnregisterCustomBorderColorEXT' :: Ptr Device_T -> Word32 -> IO ()
vkUnregisterCustomBorderColorEXT' = FunPtr (Ptr Device_T -> Word32 -> IO ())
-> Ptr Device_T -> Word32 -> IO ()
mkVkUnregisterCustomBorderColorEXT FunPtr (Ptr Device_T -> Word32 -> IO ())
vkUnregisterCustomBorderColorEXTPtr
String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkUnregisterCustomBorderColorEXT" (Ptr Device_T -> Word32 -> IO ()
vkUnregisterCustomBorderColorEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(Word32
index))
() -> 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" mkVkGetImageOpaqueCaptureDataEXT
:: FunPtr (Ptr Device_T -> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result) -> Ptr Device_T -> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result
getImageOpaqueCaptureDataEXT :: forall io
. (MonadIO io)
=>
Device
->
("images" ::: Vector Image)
-> io (("datas" ::: Vector HostAddressRangeEXT))
getImageOpaqueCaptureDataEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> ("images" ::: Vector Image)
-> io ("descriptors" ::: Vector HostAddressRangeEXT)
getImageOpaqueCaptureDataEXT Device
device "images" ::: Vector Image
images = IO ("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT))
-> (ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> IO ("descriptors" ::: Vector HostAddressRangeEXT)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT)
forall a b. (a -> b) -> a -> b
$ do
let vkGetImageOpaqueCaptureDataEXTPtr :: FunPtr
(Ptr Device_T
-> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result)
vkGetImageOpaqueCaptureDataEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result)
pVkGetImageOpaqueCaptureDataEXT (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ("descriptors" ::: Vector HostAddressRangeEXT) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ())
-> IO ()
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result)
vkGetImageOpaqueCaptureDataEXTPtr FunPtr
(Ptr Device_T
-> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result)
-> FunPtr
(Ptr Device_T
-> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> 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 vkGetImageOpaqueCaptureDataEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetImageOpaqueCaptureDataEXT' :: Ptr Device_T
-> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result
vkGetImageOpaqueCaptureDataEXT' = FunPtr
(Ptr Device_T
-> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result)
-> Ptr Device_T
-> Word32
-> Ptr Image
-> Ptr HostAddressRangeEXT
-> IO Result
mkVkGetImageOpaqueCaptureDataEXT FunPtr
(Ptr Device_T
-> Word32 -> Ptr Image -> Ptr HostAddressRangeEXT -> IO Result)
vkGetImageOpaqueCaptureDataEXTPtr
pPImages <- ((Ptr Image -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT) IO (Ptr Image)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr Image -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT) IO (Ptr Image))
-> ((Ptr Image
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT) IO (Ptr Image)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @Image ((("images" ::: Vector Image) -> Int
forall a. Vector a -> Int
Data.Vector.length ("images" ::: Vector Image
images)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
8)
lift $ Data.Vector.imapM_ (\Int
i Image
e -> Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Image
pPImages Ptr Image -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
8 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr Image) (Image
e)) (images)
pPDatas <- ContT $ bracket (callocBytes @HostAddressRangeEXT ((fromIntegral ((fromIntegral (Data.Vector.length $ (images)) :: Word32))) * 16)) free
_ <- traverse (\Int
i -> ((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ())
-> ((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ()
forall a b. (a -> b) -> a -> b
$ Ptr HostAddressRangeEXT
-> IO ("descriptors" ::: Vector HostAddressRangeEXT)
-> IO ("descriptors" ::: Vector HostAddressRangeEXT)
forall b. Ptr HostAddressRangeEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct (Ptr HostAddressRangeEXT
pPDatas Ptr HostAddressRangeEXT -> Int -> Ptr HostAddressRangeEXT
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
16) :: Ptr HostAddressRangeEXT) (IO ("descriptors" ::: Vector HostAddressRangeEXT)
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> (() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> () -> IO ("descriptors" ::: Vector HostAddressRangeEXT)
forall a b. (a -> b) -> a -> b
$ ())) [0..(fromIntegral ((fromIntegral (Data.Vector.length $ (images)) :: Word32))) - 1]
r <- lift $ traceAroundEvent "vkGetImageOpaqueCaptureDataEXT" (vkGetImageOpaqueCaptureDataEXT'
(deviceHandle (device))
((fromIntegral (Data.Vector.length $ (images)) :: Word32))
(pPImages)
((pPDatas)))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
pDatas <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (images)) :: Word32))) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @HostAddressRangeEXT (((Ptr HostAddressRangeEXT
pPDatas) Ptr HostAddressRangeEXT -> Int -> Ptr HostAddressRangeEXT
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
16 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr HostAddressRangeEXT)))
pure $ (pDatas)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceDescriptorSizeEXT
:: FunPtr (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize) -> Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize
getPhysicalDeviceDescriptorSizeEXT :: forall io
. (MonadIO io)
=>
PhysicalDevice
->
DescriptorType
-> io (DeviceSize)
getPhysicalDeviceDescriptorSizeEXT :: forall (io :: * -> *).
MonadIO io =>
PhysicalDevice -> DescriptorType -> io DeviceSize
getPhysicalDeviceDescriptorSizeEXT PhysicalDevice
physicalDevice DescriptorType
descriptorType = IO DeviceSize -> io DeviceSize
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DeviceSize -> io DeviceSize) -> IO DeviceSize -> io DeviceSize
forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceDescriptorSizeEXTPtr :: FunPtr (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize)
vkGetPhysicalDeviceDescriptorSizeEXTPtr = InstanceCmds
-> FunPtr (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize)
pVkGetPhysicalDeviceDescriptorSizeEXT (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
instanceCmds :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize)
vkGetPhysicalDeviceDescriptorSizeEXTPtr FunPtr (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize)
-> FunPtr (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize)
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 vkGetPhysicalDeviceDescriptorSizeEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetPhysicalDeviceDescriptorSizeEXT' :: Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize
vkGetPhysicalDeviceDescriptorSizeEXT' = FunPtr (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize)
-> Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize
mkVkGetPhysicalDeviceDescriptorSizeEXT FunPtr (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize)
vkGetPhysicalDeviceDescriptorSizeEXTPtr
r <- String -> IO DeviceSize -> IO DeviceSize
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceDescriptorSizeEXT" (Ptr PhysicalDevice_T -> DescriptorType -> IO DeviceSize
vkGetPhysicalDeviceDescriptorSizeEXT'
(PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice))
(DescriptorType
descriptorType))
pure $ (r)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetTensorOpaqueCaptureDataARM
:: FunPtr (Ptr Device_T -> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result) -> Ptr Device_T -> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result
getTensorOpaqueCaptureDataARM :: forall io
. (MonadIO io)
=>
Device
->
("tensors" ::: Vector TensorARM)
-> io (("datas" ::: Vector HostAddressRangeEXT))
getTensorOpaqueCaptureDataARM :: forall (io :: * -> *).
MonadIO io =>
Device
-> ("tensors" ::: Vector TensorARM)
-> io ("descriptors" ::: Vector HostAddressRangeEXT)
getTensorOpaqueCaptureDataARM Device
device "tensors" ::: Vector TensorARM
tensors = IO ("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT))
-> (ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> IO ("descriptors" ::: Vector HostAddressRangeEXT)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT)
IO
("descriptors" ::: Vector HostAddressRangeEXT)
-> io ("descriptors" ::: Vector HostAddressRangeEXT)
forall a b. (a -> b) -> a -> b
$ do
let vkGetTensorOpaqueCaptureDataARMPtr :: FunPtr
(Ptr Device_T
-> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result)
vkGetTensorOpaqueCaptureDataARMPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result)
pVkGetTensorOpaqueCaptureDataARM (case Device
device of Device{DeviceCmds
deviceCmds :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ("descriptors" ::: Vector HostAddressRangeEXT) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ())
-> IO ()
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result)
vkGetTensorOpaqueCaptureDataARMPtr FunPtr
(Ptr Device_T
-> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result)
-> FunPtr
(Ptr Device_T
-> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> 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 vkGetTensorOpaqueCaptureDataARM is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetTensorOpaqueCaptureDataARM' :: Ptr Device_T
-> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result
vkGetTensorOpaqueCaptureDataARM' = FunPtr
(Ptr Device_T
-> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result)
-> Ptr Device_T
-> Word32
-> Ptr TensorARM
-> Ptr HostAddressRangeEXT
-> IO Result
mkVkGetTensorOpaqueCaptureDataARM FunPtr
(Ptr Device_T
-> Word32 -> Ptr TensorARM -> Ptr HostAddressRangeEXT -> IO Result)
vkGetTensorOpaqueCaptureDataARMPtr
pPTensors <- ((Ptr TensorARM
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT) IO (Ptr TensorARM)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr TensorARM
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT) IO (Ptr TensorARM))
-> ((Ptr TensorARM
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT
("descriptors" ::: Vector HostAddressRangeEXT) IO (Ptr TensorARM)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @TensorARM ((("tensors" ::: Vector TensorARM) -> Int
forall a. Vector a -> Int
Data.Vector.length ("tensors" ::: Vector TensorARM
tensors)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
8)
lift $ Data.Vector.imapM_ (\Int
i TensorARM
e -> Ptr TensorARM -> TensorARM -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TensorARM
pPTensors Ptr TensorARM -> Int -> Ptr TensorARM
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
8 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr TensorARM) (TensorARM
e)) (tensors)
pPDatas <- ContT $ bracket (callocBytes @HostAddressRangeEXT ((fromIntegral ((fromIntegral (Data.Vector.length $ (tensors)) :: Word32))) * 16)) free
_ <- traverse (\Int
i -> ((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ())
-> ((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ContT ("descriptors" ::: Vector HostAddressRangeEXT) IO ()
forall a b. (a -> b) -> a -> b
$ Ptr HostAddressRangeEXT
-> IO ("descriptors" ::: Vector HostAddressRangeEXT)
-> IO ("descriptors" ::: Vector HostAddressRangeEXT)
forall b. Ptr HostAddressRangeEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct (Ptr HostAddressRangeEXT
pPDatas Ptr HostAddressRangeEXT -> Int -> Ptr HostAddressRangeEXT
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
16) :: Ptr HostAddressRangeEXT) (IO ("descriptors" ::: Vector HostAddressRangeEXT)
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> ((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> (() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> IO ("descriptors" ::: Vector HostAddressRangeEXT)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO ("descriptors" ::: Vector HostAddressRangeEXT))
-> () -> IO ("descriptors" ::: Vector HostAddressRangeEXT)
forall a b. (a -> b) -> a -> b
$ ())) [0..(fromIntegral ((fromIntegral (Data.Vector.length $ (tensors)) :: Word32))) - 1]
r <- lift $ traceAroundEvent "vkGetTensorOpaqueCaptureDataARM" (vkGetTensorOpaqueCaptureDataARM'
(deviceHandle (device))
((fromIntegral (Data.Vector.length $ (tensors)) :: Word32))
(pPTensors)
((pPDatas)))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
pDatas <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (tensors)) :: Word32))) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @HostAddressRangeEXT (((Ptr HostAddressRangeEXT
pPDatas) Ptr HostAddressRangeEXT -> Int -> Ptr HostAddressRangeEXT
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
16 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr HostAddressRangeEXT)))
pure $ (pDatas)
data HostAddressRangeEXT = HostAddressRangeEXT
{
HostAddressRangeEXT -> Ptr ()
address :: Ptr ()
,
HostAddressRangeEXT -> DeviceSize
size :: Word64
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (HostAddressRangeEXT)
#endif
deriving instance Show HostAddressRangeEXT
instance ToCStruct HostAddressRangeEXT where
withCStruct :: forall b.
HostAddressRangeEXT -> (Ptr HostAddressRangeEXT -> IO b) -> IO b
withCStruct HostAddressRangeEXT
x Ptr HostAddressRangeEXT -> IO b
f = Int -> (Ptr HostAddressRangeEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
16 ((Ptr HostAddressRangeEXT -> IO b) -> IO b)
-> (Ptr HostAddressRangeEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr HostAddressRangeEXT
p -> Ptr HostAddressRangeEXT -> HostAddressRangeEXT -> IO b -> IO b
forall b.
Ptr HostAddressRangeEXT -> HostAddressRangeEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr HostAddressRangeEXT
p HostAddressRangeEXT
x (Ptr HostAddressRangeEXT -> IO b
f Ptr HostAddressRangeEXT
p)
pokeCStruct :: forall b.
Ptr HostAddressRangeEXT -> HostAddressRangeEXT -> IO b -> IO b
pokeCStruct Ptr HostAddressRangeEXT
p HostAddressRangeEXT{DeviceSize
Ptr ()
address :: HostAddressRangeEXT -> Ptr ()
size :: HostAddressRangeEXT -> DeviceSize
address :: Ptr ()
size :: DeviceSize
..} IO b
f = do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr HostAddressRangeEXT
p Ptr HostAddressRangeEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr (Ptr ()))) (Ptr ()
address)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr HostAddressRangeEXT
p Ptr HostAddressRangeEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr CSize)) (DeviceSize -> CSize
CSize (DeviceSize
size))
IO b
f
cStructSize :: Int
cStructSize = Int
16
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr HostAddressRangeEXT -> IO b -> IO b
pokeZeroCStruct Ptr HostAddressRangeEXT
p IO b
f = do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr HostAddressRangeEXT
p Ptr HostAddressRangeEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr (Ptr ()))) (Ptr ()
forall a. Zero a => a
zero)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr HostAddressRangeEXT
p Ptr HostAddressRangeEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr CSize)) (DeviceSize -> CSize
CSize (DeviceSize
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct HostAddressRangeEXT where
peekCStruct :: Ptr HostAddressRangeEXT -> IO HostAddressRangeEXT
peekCStruct Ptr HostAddressRangeEXT
p = do
address <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr HostAddressRangeEXT
p Ptr HostAddressRangeEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr (Ptr ())))
size <- peek @CSize ((p `plusPtr` 8 :: Ptr CSize))
pure $ HostAddressRangeEXT
address (coerce @CSize @Word64 size)
instance Storable HostAddressRangeEXT where
sizeOf :: HostAddressRangeEXT -> Int
sizeOf ~HostAddressRangeEXT
_ = Int
16
alignment :: HostAddressRangeEXT -> Int
alignment ~HostAddressRangeEXT
_ = Int
8
peek :: Ptr HostAddressRangeEXT -> IO HostAddressRangeEXT
peek = Ptr HostAddressRangeEXT -> IO HostAddressRangeEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr HostAddressRangeEXT -> HostAddressRangeEXT -> IO ()
poke Ptr HostAddressRangeEXT
ptr HostAddressRangeEXT
poked = Ptr HostAddressRangeEXT -> HostAddressRangeEXT -> IO () -> IO ()
forall b.
Ptr HostAddressRangeEXT -> HostAddressRangeEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr HostAddressRangeEXT
ptr HostAddressRangeEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero HostAddressRangeEXT where
zero :: HostAddressRangeEXT
zero = Ptr () -> DeviceSize -> HostAddressRangeEXT
HostAddressRangeEXT
Ptr ()
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
data HostAddressRangeConstEXT = HostAddressRangeConstEXT
{
HostAddressRangeConstEXT -> Ptr ()
address :: Ptr ()
,
HostAddressRangeConstEXT -> DeviceSize
size :: Word64
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (HostAddressRangeConstEXT)
#endif
deriving instance Show HostAddressRangeConstEXT
instance ToCStruct HostAddressRangeConstEXT where
withCStruct :: forall b.
HostAddressRangeConstEXT
-> (Ptr HostAddressRangeConstEXT -> IO b) -> IO b
withCStruct HostAddressRangeConstEXT
x Ptr HostAddressRangeConstEXT -> IO b
f = Int -> (Ptr HostAddressRangeConstEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
16 ((Ptr HostAddressRangeConstEXT -> IO b) -> IO b)
-> (Ptr HostAddressRangeConstEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr HostAddressRangeConstEXT
p -> Ptr HostAddressRangeConstEXT
-> HostAddressRangeConstEXT -> IO b -> IO b
forall b.
Ptr HostAddressRangeConstEXT
-> HostAddressRangeConstEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr HostAddressRangeConstEXT
p HostAddressRangeConstEXT
x (Ptr HostAddressRangeConstEXT -> IO b
f Ptr HostAddressRangeConstEXT
p)
pokeCStruct :: forall b.
Ptr HostAddressRangeConstEXT
-> HostAddressRangeConstEXT -> IO b -> IO b
pokeCStruct Ptr HostAddressRangeConstEXT
p HostAddressRangeConstEXT{DeviceSize
Ptr ()
address :: HostAddressRangeConstEXT -> Ptr ()
size :: HostAddressRangeConstEXT -> DeviceSize
address :: Ptr ()
size :: DeviceSize
..} IO b
f = do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr HostAddressRangeConstEXT
p Ptr HostAddressRangeConstEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr (Ptr ()))) (Ptr ()
address)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr HostAddressRangeConstEXT
p Ptr HostAddressRangeConstEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr CSize)) (DeviceSize -> CSize
CSize (DeviceSize
size))
IO b
f
cStructSize :: Int
cStructSize = Int
16
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr HostAddressRangeConstEXT -> IO b -> IO b
pokeZeroCStruct Ptr HostAddressRangeConstEXT
p IO b
f = do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr HostAddressRangeConstEXT
p Ptr HostAddressRangeConstEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr (Ptr ()))) (Ptr ()
forall a. Zero a => a
zero)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr HostAddressRangeConstEXT
p Ptr HostAddressRangeConstEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr CSize)) (DeviceSize -> CSize
CSize (DeviceSize
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct HostAddressRangeConstEXT where
peekCStruct :: Ptr HostAddressRangeConstEXT -> IO HostAddressRangeConstEXT
peekCStruct Ptr HostAddressRangeConstEXT
p = do
address <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr HostAddressRangeConstEXT
p Ptr HostAddressRangeConstEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr (Ptr ())))
size <- peek @CSize ((p `plusPtr` 8 :: Ptr CSize))
pure $ HostAddressRangeConstEXT
address (coerce @CSize @Word64 size)
instance Storable HostAddressRangeConstEXT where
sizeOf :: HostAddressRangeConstEXT -> Int
sizeOf ~HostAddressRangeConstEXT
_ = Int
16
alignment :: HostAddressRangeConstEXT -> Int
alignment ~HostAddressRangeConstEXT
_ = Int
8
peek :: Ptr HostAddressRangeConstEXT -> IO HostAddressRangeConstEXT
peek = Ptr HostAddressRangeConstEXT -> IO HostAddressRangeConstEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr HostAddressRangeConstEXT -> HostAddressRangeConstEXT -> IO ()
poke Ptr HostAddressRangeConstEXT
ptr HostAddressRangeConstEXT
poked = Ptr HostAddressRangeConstEXT
-> HostAddressRangeConstEXT -> IO () -> IO ()
forall b.
Ptr HostAddressRangeConstEXT
-> HostAddressRangeConstEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr HostAddressRangeConstEXT
ptr HostAddressRangeConstEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero HostAddressRangeConstEXT where
zero :: HostAddressRangeConstEXT
zero = Ptr () -> DeviceSize -> HostAddressRangeConstEXT
HostAddressRangeConstEXT
Ptr ()
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
data DeviceAddressRangeEXT = DeviceAddressRangeEXT
{
DeviceAddressRangeEXT -> DeviceSize
address :: DeviceAddress
,
DeviceAddressRangeEXT -> DeviceSize
size :: DeviceSize
}
deriving (Typeable, DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> Bool
(DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> Bool)
-> (DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> Bool)
-> Eq DeviceAddressRangeEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> Bool
== :: DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> Bool
$c/= :: DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> Bool
/= :: DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DeviceAddressRangeEXT)
#endif
deriving instance Show DeviceAddressRangeEXT
instance ToCStruct DeviceAddressRangeEXT where
withCStruct :: forall b.
DeviceAddressRangeEXT
-> (Ptr DeviceAddressRangeEXT -> IO b) -> IO b
withCStruct DeviceAddressRangeEXT
x Ptr DeviceAddressRangeEXT -> IO b
f = Int -> (Ptr DeviceAddressRangeEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
16 ((Ptr DeviceAddressRangeEXT -> IO b) -> IO b)
-> (Ptr DeviceAddressRangeEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DeviceAddressRangeEXT
p -> Ptr DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> IO b -> IO b
forall b.
Ptr DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DeviceAddressRangeEXT
p DeviceAddressRangeEXT
x (Ptr DeviceAddressRangeEXT -> IO b
f Ptr DeviceAddressRangeEXT
p)
pokeCStruct :: forall b.
Ptr DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> IO b -> IO b
pokeCStruct Ptr DeviceAddressRangeEXT
p DeviceAddressRangeEXT{DeviceSize
address :: DeviceAddressRangeEXT -> DeviceSize
size :: DeviceAddressRangeEXT -> DeviceSize
address :: DeviceSize
size :: DeviceSize
..} IO b
f = do
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DeviceAddressRangeEXT
p Ptr DeviceAddressRangeEXT -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (DeviceSize
address)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DeviceAddressRangeEXT
p Ptr DeviceAddressRangeEXT -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceSize)) (DeviceSize
size)
IO b
f
cStructSize :: Int
cStructSize = Int
16
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DeviceAddressRangeEXT -> IO b -> IO b
pokeZeroCStruct Ptr DeviceAddressRangeEXT
p IO b
f = do
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DeviceAddressRangeEXT
p Ptr DeviceAddressRangeEXT -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DeviceAddressRangeEXT where
peekCStruct :: Ptr DeviceAddressRangeEXT -> IO DeviceAddressRangeEXT
peekCStruct Ptr DeviceAddressRangeEXT
p = do
address <- forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress ((Ptr DeviceAddressRangeEXT
p Ptr DeviceAddressRangeEXT -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress))
size <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))
pure $ DeviceAddressRangeEXT
address size
instance Storable DeviceAddressRangeEXT where
sizeOf :: DeviceAddressRangeEXT -> Int
sizeOf ~DeviceAddressRangeEXT
_ = Int
16
alignment :: DeviceAddressRangeEXT -> Int
alignment ~DeviceAddressRangeEXT
_ = Int
8
peek :: Ptr DeviceAddressRangeEXT -> IO DeviceAddressRangeEXT
peek = Ptr DeviceAddressRangeEXT -> IO DeviceAddressRangeEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> IO ()
poke Ptr DeviceAddressRangeEXT
ptr DeviceAddressRangeEXT
poked = Ptr DeviceAddressRangeEXT
-> DeviceAddressRangeEXT -> IO () -> IO ()
forall b.
Ptr DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DeviceAddressRangeEXT
ptr DeviceAddressRangeEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DeviceAddressRangeEXT where
zero :: DeviceAddressRangeEXT
zero = DeviceSize -> DeviceSize -> DeviceAddressRangeEXT
DeviceAddressRangeEXT
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
data TexelBufferDescriptorInfoEXT = TexelBufferDescriptorInfoEXT
{
TexelBufferDescriptorInfoEXT -> Format
format :: Format
,
TexelBufferDescriptorInfoEXT -> DeviceAddressRangeEXT
addressRange :: DeviceAddressRangeEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (TexelBufferDescriptorInfoEXT)
#endif
deriving instance Show TexelBufferDescriptorInfoEXT
instance ToCStruct TexelBufferDescriptorInfoEXT where
withCStruct :: forall b.
TexelBufferDescriptorInfoEXT
-> (Ptr TexelBufferDescriptorInfoEXT -> IO b) -> IO b
withCStruct TexelBufferDescriptorInfoEXT
x Ptr TexelBufferDescriptorInfoEXT -> IO b
f = Int -> (Ptr TexelBufferDescriptorInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr TexelBufferDescriptorInfoEXT -> IO b) -> IO b)
-> (Ptr TexelBufferDescriptorInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr TexelBufferDescriptorInfoEXT
p -> Ptr TexelBufferDescriptorInfoEXT
-> TexelBufferDescriptorInfoEXT -> IO b -> IO b
forall b.
Ptr TexelBufferDescriptorInfoEXT
-> TexelBufferDescriptorInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr TexelBufferDescriptorInfoEXT
p TexelBufferDescriptorInfoEXT
x (Ptr TexelBufferDescriptorInfoEXT -> IO b
f Ptr TexelBufferDescriptorInfoEXT
p)
pokeCStruct :: forall b.
Ptr TexelBufferDescriptorInfoEXT
-> TexelBufferDescriptorInfoEXT -> IO b -> IO b
pokeCStruct Ptr TexelBufferDescriptorInfoEXT
p TexelBufferDescriptorInfoEXT{Format
DeviceAddressRangeEXT
format :: TexelBufferDescriptorInfoEXT -> Format
addressRange :: TexelBufferDescriptorInfoEXT -> DeviceAddressRangeEXT
format :: Format
addressRange :: DeviceAddressRangeEXT
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr TexelBufferDescriptorInfoEXT
p Ptr TexelBufferDescriptorInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr TexelBufferDescriptorInfoEXT
p Ptr TexelBufferDescriptorInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr TexelBufferDescriptorInfoEXT
p Ptr TexelBufferDescriptorInfoEXT -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format)) (Format
format)
Ptr DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr TexelBufferDescriptorInfoEXT
p Ptr TexelBufferDescriptorInfoEXT
-> Int -> Ptr DeviceAddressRangeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceAddressRangeEXT)) (DeviceAddressRangeEXT
addressRange)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr TexelBufferDescriptorInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr TexelBufferDescriptorInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr TexelBufferDescriptorInfoEXT
p Ptr TexelBufferDescriptorInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr TexelBufferDescriptorInfoEXT
p Ptr TexelBufferDescriptorInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Format -> Format -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr TexelBufferDescriptorInfoEXT
p Ptr TexelBufferDescriptorInfoEXT -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format)) (Format
forall a. Zero a => a
zero)
Ptr DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr TexelBufferDescriptorInfoEXT
p Ptr TexelBufferDescriptorInfoEXT
-> Int -> Ptr DeviceAddressRangeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceAddressRangeEXT)) (DeviceAddressRangeEXT
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct TexelBufferDescriptorInfoEXT where
peekCStruct :: Ptr TexelBufferDescriptorInfoEXT -> IO TexelBufferDescriptorInfoEXT
peekCStruct Ptr TexelBufferDescriptorInfoEXT
p = do
format <- forall a. Storable a => Ptr a -> IO a
peek @Format ((Ptr TexelBufferDescriptorInfoEXT
p Ptr TexelBufferDescriptorInfoEXT -> Int -> Ptr Format
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format))
addressRange <- peekCStruct @DeviceAddressRangeEXT ((p `plusPtr` 24 :: Ptr DeviceAddressRangeEXT))
pure $ TexelBufferDescriptorInfoEXT
format addressRange
instance Storable TexelBufferDescriptorInfoEXT where
sizeOf :: TexelBufferDescriptorInfoEXT -> Int
sizeOf ~TexelBufferDescriptorInfoEXT
_ = Int
40
alignment :: TexelBufferDescriptorInfoEXT -> Int
alignment ~TexelBufferDescriptorInfoEXT
_ = Int
8
peek :: Ptr TexelBufferDescriptorInfoEXT -> IO TexelBufferDescriptorInfoEXT
peek = Ptr TexelBufferDescriptorInfoEXT -> IO TexelBufferDescriptorInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr TexelBufferDescriptorInfoEXT
-> TexelBufferDescriptorInfoEXT -> IO ()
poke Ptr TexelBufferDescriptorInfoEXT
ptr TexelBufferDescriptorInfoEXT
poked = Ptr TexelBufferDescriptorInfoEXT
-> TexelBufferDescriptorInfoEXT -> IO () -> IO ()
forall b.
Ptr TexelBufferDescriptorInfoEXT
-> TexelBufferDescriptorInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr TexelBufferDescriptorInfoEXT
ptr TexelBufferDescriptorInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero TexelBufferDescriptorInfoEXT where
zero :: TexelBufferDescriptorInfoEXT
zero = Format -> DeviceAddressRangeEXT -> TexelBufferDescriptorInfoEXT
TexelBufferDescriptorInfoEXT
Format
forall a. Zero a => a
zero
DeviceAddressRangeEXT
forall a. Zero a => a
zero
data ImageDescriptorInfoEXT = ImageDescriptorInfoEXT
{
ImageDescriptorInfoEXT -> SomeStruct ImageViewCreateInfo
view :: SomeStruct ImageViewCreateInfo
,
ImageDescriptorInfoEXT -> ImageLayout
layout :: ImageLayout
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ImageDescriptorInfoEXT)
#endif
deriving instance Show ImageDescriptorInfoEXT
instance ToCStruct ImageDescriptorInfoEXT where
withCStruct :: forall b.
ImageDescriptorInfoEXT
-> (Ptr ImageDescriptorInfoEXT -> IO b) -> IO b
withCStruct ImageDescriptorInfoEXT
x Ptr ImageDescriptorInfoEXT -> IO b
f = Int -> (Ptr ImageDescriptorInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr ImageDescriptorInfoEXT -> IO b) -> IO b)
-> (Ptr ImageDescriptorInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ImageDescriptorInfoEXT
p -> Ptr ImageDescriptorInfoEXT
-> ImageDescriptorInfoEXT -> IO b -> IO b
forall b.
Ptr ImageDescriptorInfoEXT
-> ImageDescriptorInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageDescriptorInfoEXT
p ImageDescriptorInfoEXT
x (Ptr ImageDescriptorInfoEXT -> IO b
f Ptr ImageDescriptorInfoEXT
p)
pokeCStruct :: forall b.
Ptr ImageDescriptorInfoEXT
-> ImageDescriptorInfoEXT -> IO b -> IO b
pokeCStruct Ptr ImageDescriptorInfoEXT
p ImageDescriptorInfoEXT{ImageLayout
SomeStruct ImageViewCreateInfo
view :: ImageDescriptorInfoEXT -> SomeStruct ImageViewCreateInfo
layout :: ImageDescriptorInfoEXT -> ImageLayout
view :: SomeStruct ImageViewCreateInfo
layout :: ImageLayout
..} 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 ImageDescriptorInfoEXT
p Ptr ImageDescriptorInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageDescriptorInfoEXT
p Ptr ImageDescriptorInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
pView'' <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
forall r (m :: * -> *) a. ((a -> m r) -> m r) -> ContT r m a
ContT @_ @_ @(Ptr (ImageViewCreateInfo '[])) (((Ptr (ImageViewCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (ImageViewCreateInfo '[])))
-> ((Ptr (ImageViewCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (ImageViewCreateInfo '[]))
forall a b. (a -> b) -> a -> b
$ \Ptr (ImageViewCreateInfo '[]) -> IO b
cont -> forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
SomeStruct a
-> (forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b)
-> IO b
withSomeCStruct @ImageViewCreateInfo (SomeStruct ImageViewCreateInfo
view) (Ptr (ImageViewCreateInfo '[]) -> IO b
cont (Ptr (ImageViewCreateInfo '[]) -> IO b)
-> (Ptr (ImageViewCreateInfo es) -> Ptr (ImageViewCreateInfo '[]))
-> Ptr (ImageViewCreateInfo es)
-> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (ImageViewCreateInfo es) -> Ptr (ImageViewCreateInfo '[])
forall a b. Ptr a -> Ptr b
castPtr)
lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageViewCreateInfo _)))) pView''
lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (layout)
lift $ f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr ImageDescriptorInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr ImageDescriptorInfoEXT
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 ImageDescriptorInfoEXT
p Ptr ImageDescriptorInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageDescriptorInfoEXT
p Ptr ImageDescriptorInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
pView'' <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
forall r (m :: * -> *) a. ((a -> m r) -> m r) -> ContT r m a
ContT @_ @_ @(Ptr (ImageViewCreateInfo '[])) (((Ptr (ImageViewCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (ImageViewCreateInfo '[])))
-> ((Ptr (ImageViewCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (ImageViewCreateInfo '[]))
forall a b. (a -> b) -> a -> b
$ \Ptr (ImageViewCreateInfo '[]) -> IO b
cont -> forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
SomeStruct a
-> (forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b)
-> IO b
withSomeCStruct @ImageViewCreateInfo ((ImageViewCreateInfo '[] -> SomeStruct ImageViewCreateInfo
forall (a :: [*] -> *) (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
a es -> SomeStruct a
SomeStruct ImageViewCreateInfo '[]
forall a. Zero a => a
zero)) (Ptr (ImageViewCreateInfo '[]) -> IO b
cont (Ptr (ImageViewCreateInfo '[]) -> IO b)
-> (Ptr (ImageViewCreateInfo es) -> Ptr (ImageViewCreateInfo '[]))
-> Ptr (ImageViewCreateInfo es)
-> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (ImageViewCreateInfo es) -> Ptr (ImageViewCreateInfo '[])
forall a b. Ptr a -> Ptr b
castPtr)
lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageViewCreateInfo _)))) pView''
lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)
lift $ f
instance FromCStruct ImageDescriptorInfoEXT where
peekCStruct :: Ptr ImageDescriptorInfoEXT -> IO ImageDescriptorInfoEXT
peekCStruct Ptr ImageDescriptorInfoEXT
p = do
pView <- Ptr (SomeStruct ImageViewCreateInfo)
-> IO (SomeStruct ImageViewCreateInfo)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (SomeStruct ImageViewCreateInfo)
-> IO (SomeStruct ImageViewCreateInfo))
-> (Ptr (ImageViewCreateInfo (ZonkAny 4))
-> Ptr (SomeStruct ImageViewCreateInfo))
-> Ptr (ImageViewCreateInfo (ZonkAny 4))
-> IO (SomeStruct ImageViewCreateInfo)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (ImageViewCreateInfo (ZonkAny 4))
-> Ptr (SomeStruct ImageViewCreateInfo)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (ImageViewCreateInfo (ZonkAny 4))
-> IO (SomeStruct ImageViewCreateInfo))
-> IO (Ptr (ImageViewCreateInfo (ZonkAny 4)))
-> IO (SomeStruct ImageViewCreateInfo)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Ptr (Ptr (ImageViewCreateInfo (ZonkAny 4)))
-> IO (Ptr (ImageViewCreateInfo (ZonkAny 4)))
forall a. Storable a => Ptr a -> IO a
peek ((Ptr ImageDescriptorInfoEXT
p Ptr ImageDescriptorInfoEXT
-> Int -> Ptr (Ptr (ImageViewCreateInfo w))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr (ImageViewCreateInfo _))))
layout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))
pure $ ImageDescriptorInfoEXT
pView layout
instance Zero ImageDescriptorInfoEXT where
zero :: ImageDescriptorInfoEXT
zero = SomeStruct ImageViewCreateInfo
-> ImageLayout -> ImageDescriptorInfoEXT
ImageDescriptorInfoEXT
(ImageViewCreateInfo '[] -> SomeStruct ImageViewCreateInfo
forall (a :: [*] -> *) (es :: [*]).
(Extendss a es, PokeChain es, Show (Chain es)) =>
a es -> SomeStruct a
SomeStruct ImageViewCreateInfo '[]
forall a. Zero a => a
zero)
ImageLayout
forall a. Zero a => a
zero
data ResourceDescriptorInfoEXT (es :: [Type]) = ResourceDescriptorInfoEXT
{
forall (es :: [*]). ResourceDescriptorInfoEXT es -> Chain es
next :: Chain es
,
forall (es :: [*]). ResourceDescriptorInfoEXT es -> DescriptorType
type' :: DescriptorType
,
forall (es :: [*]).
ResourceDescriptorInfoEXT es -> ResourceDescriptorDataEXT
data' :: ResourceDescriptorDataEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ResourceDescriptorInfoEXT (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (ResourceDescriptorInfoEXT es)
instance Extensible ResourceDescriptorInfoEXT where
extensibleTypeName :: String
extensibleTypeName = String
"ResourceDescriptorInfoEXT"
setNext :: forall (ds :: [*]) (es :: [*]).
ResourceDescriptorInfoEXT ds
-> Chain es -> ResourceDescriptorInfoEXT es
setNext ResourceDescriptorInfoEXT{DescriptorType
Chain ds
ResourceDescriptorDataEXT
next :: forall (es :: [*]). ResourceDescriptorInfoEXT es -> Chain es
type' :: forall (es :: [*]). ResourceDescriptorInfoEXT es -> DescriptorType
data' :: forall (es :: [*]).
ResourceDescriptorInfoEXT es -> ResourceDescriptorDataEXT
next :: Chain ds
type' :: DescriptorType
data' :: ResourceDescriptorDataEXT
..} Chain es
next' = ResourceDescriptorInfoEXT{next :: Chain es
next = Chain es
next', DescriptorType
ResourceDescriptorDataEXT
type' :: DescriptorType
data' :: ResourceDescriptorDataEXT
type' :: DescriptorType
data' :: ResourceDescriptorDataEXT
..}
getNext :: forall (es :: [*]). ResourceDescriptorInfoEXT es -> Chain es
getNext ResourceDescriptorInfoEXT{DescriptorType
Chain es
ResourceDescriptorDataEXT
next :: forall (es :: [*]). ResourceDescriptorInfoEXT es -> Chain es
type' :: forall (es :: [*]). ResourceDescriptorInfoEXT es -> DescriptorType
data' :: forall (es :: [*]).
ResourceDescriptorInfoEXT es -> ResourceDescriptorDataEXT
next :: Chain es
type' :: DescriptorType
data' :: ResourceDescriptorDataEXT
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends ResourceDescriptorInfoEXT e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e -> (Extends ResourceDescriptorInfoEXT e => b) -> Maybe b
extends proxy e
_ Extends ResourceDescriptorInfoEXT e => b
f
| Just e :~: DebugUtilsObjectNameInfoEXT
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 @DebugUtilsObjectNameInfoEXT = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends ResourceDescriptorInfoEXT e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance ( Extendss ResourceDescriptorInfoEXT es
, PokeChain es ) => ToCStruct (ResourceDescriptorInfoEXT es) where
withCStruct :: forall b.
ResourceDescriptorInfoEXT es
-> (Ptr (ResourceDescriptorInfoEXT es) -> IO b) -> IO b
withCStruct ResourceDescriptorInfoEXT es
x Ptr (ResourceDescriptorInfoEXT es) -> IO b
f = Int -> (Ptr (ResourceDescriptorInfoEXT es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr (ResourceDescriptorInfoEXT es) -> IO b) -> IO b)
-> (Ptr (ResourceDescriptorInfoEXT es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (ResourceDescriptorInfoEXT es)
p -> Ptr (ResourceDescriptorInfoEXT es)
-> ResourceDescriptorInfoEXT es -> IO b -> IO b
forall b.
Ptr (ResourceDescriptorInfoEXT es)
-> ResourceDescriptorInfoEXT es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (ResourceDescriptorInfoEXT es)
p ResourceDescriptorInfoEXT es
x (Ptr (ResourceDescriptorInfoEXT es) -> IO b
f Ptr (ResourceDescriptorInfoEXT es)
p)
pokeCStruct :: forall b.
Ptr (ResourceDescriptorInfoEXT es)
-> ResourceDescriptorInfoEXT es -> IO b -> IO b
pokeCStruct Ptr (ResourceDescriptorInfoEXT es)
p ResourceDescriptorInfoEXT{DescriptorType
Chain es
ResourceDescriptorDataEXT
next :: forall (es :: [*]). ResourceDescriptorInfoEXT es -> Chain es
type' :: forall (es :: [*]). ResourceDescriptorInfoEXT es -> DescriptorType
data' :: forall (es :: [*]).
ResourceDescriptorInfoEXT es -> ResourceDescriptorDataEXT
next :: Chain es
type' :: DescriptorType
data' :: ResourceDescriptorDataEXT
..} 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 (ResourceDescriptorInfoEXT es)
p Ptr (ResourceDescriptorInfoEXT es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT)
pNext'' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (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) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (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 (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (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 ResourceDescriptorDataEXT)) (data') . ($ ())
lift $ f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (ResourceDescriptorInfoEXT es) -> IO b -> IO b
pokeZeroCStruct Ptr (ResourceDescriptorInfoEXT 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 (ResourceDescriptorInfoEXT es)
p Ptr (ResourceDescriptorInfoEXT es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT)
pNext' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (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) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (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 (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (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 ResourceDescriptorDataEXT)) (zero) . ($ ())
lift $ f
instance es ~ '[] => Zero (ResourceDescriptorInfoEXT es) where
zero :: ResourceDescriptorInfoEXT es
zero = Chain es
-> DescriptorType
-> ResourceDescriptorDataEXT
-> ResourceDescriptorInfoEXT es
forall (es :: [*]).
Chain es
-> DescriptorType
-> ResourceDescriptorDataEXT
-> ResourceDescriptorInfoEXT es
ResourceDescriptorInfoEXT
()
DescriptorType
forall a. Zero a => a
zero
ResourceDescriptorDataEXT
forall a. Zero a => a
zero
data BindHeapInfoEXT = BindHeapInfoEXT
{
("bindInfo" ::: BindHeapInfoEXT) -> DeviceAddressRangeEXT
heapRange :: DeviceAddressRangeEXT
,
("bindInfo" ::: BindHeapInfoEXT) -> DeviceSize
reservedRangeOffset :: DeviceSize
,
("bindInfo" ::: BindHeapInfoEXT) -> DeviceSize
reservedRangeSize :: DeviceSize
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (BindHeapInfoEXT)
#endif
deriving instance Show BindHeapInfoEXT
instance ToCStruct BindHeapInfoEXT where
withCStruct :: forall b.
("bindInfo" ::: BindHeapInfoEXT)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b
withCStruct "bindInfo" ::: BindHeapInfoEXT
x Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b
f = Int -> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
48 ((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ("bindInfo" ::: BindHeapInfoEXT)
p -> Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> ("bindInfo" ::: BindHeapInfoEXT) -> IO b -> IO b
forall b.
Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> ("bindInfo" ::: BindHeapInfoEXT) -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ("bindInfo" ::: BindHeapInfoEXT)
p "bindInfo" ::: BindHeapInfoEXT
x (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b
f Ptr ("bindInfo" ::: BindHeapInfoEXT)
p)
pokeCStruct :: forall b.
Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> ("bindInfo" ::: BindHeapInfoEXT) -> IO b -> IO b
pokeCStruct Ptr ("bindInfo" ::: BindHeapInfoEXT)
p BindHeapInfoEXT{DeviceSize
DeviceAddressRangeEXT
heapRange :: ("bindInfo" ::: BindHeapInfoEXT) -> DeviceAddressRangeEXT
reservedRangeOffset :: ("bindInfo" ::: BindHeapInfoEXT) -> DeviceSize
reservedRangeSize :: ("bindInfo" ::: BindHeapInfoEXT) -> DeviceSize
heapRange :: DeviceAddressRangeEXT
reservedRangeOffset :: DeviceSize
reservedRangeSize :: DeviceSize
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BIND_HEAP_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> Int -> Ptr DeviceAddressRangeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceAddressRangeEXT)) (DeviceAddressRangeEXT
heapRange)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT) -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (DeviceSize
reservedRangeOffset)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT) -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr DeviceSize)) (DeviceSize
reservedRangeSize)
IO b
f
cStructSize :: Int
cStructSize = Int
48
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b -> IO b
pokeZeroCStruct Ptr ("bindInfo" ::: BindHeapInfoEXT)
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BIND_HEAP_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceAddressRangeEXT -> DeviceAddressRangeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> Int -> Ptr DeviceAddressRangeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceAddressRangeEXT)) (DeviceAddressRangeEXT
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT) -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT) -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct BindHeapInfoEXT where
peekCStruct :: Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> IO ("bindInfo" ::: BindHeapInfoEXT)
peekCStruct Ptr ("bindInfo" ::: BindHeapInfoEXT)
p = do
heapRange <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DeviceAddressRangeEXT ((Ptr ("bindInfo" ::: BindHeapInfoEXT)
p Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> Int -> Ptr DeviceAddressRangeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceAddressRangeEXT))
reservedRangeOffset <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))
reservedRangeSize <- peek @DeviceSize ((p `plusPtr` 40 :: Ptr DeviceSize))
pure $ BindHeapInfoEXT
heapRange reservedRangeOffset reservedRangeSize
instance Storable BindHeapInfoEXT where
sizeOf :: ("bindInfo" ::: BindHeapInfoEXT) -> Int
sizeOf ~"bindInfo" ::: BindHeapInfoEXT
_ = Int
48
alignment :: ("bindInfo" ::: BindHeapInfoEXT) -> Int
alignment ~"bindInfo" ::: BindHeapInfoEXT
_ = Int
8
peek :: Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> IO ("bindInfo" ::: BindHeapInfoEXT)
peek = Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> IO ("bindInfo" ::: BindHeapInfoEXT)
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> ("bindInfo" ::: BindHeapInfoEXT) -> IO ()
poke Ptr ("bindInfo" ::: BindHeapInfoEXT)
ptr "bindInfo" ::: BindHeapInfoEXT
poked = Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> ("bindInfo" ::: BindHeapInfoEXT) -> IO () -> IO ()
forall b.
Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> ("bindInfo" ::: BindHeapInfoEXT) -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ("bindInfo" ::: BindHeapInfoEXT)
ptr "bindInfo" ::: BindHeapInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero BindHeapInfoEXT where
zero :: "bindInfo" ::: BindHeapInfoEXT
zero = DeviceAddressRangeEXT
-> DeviceSize -> DeviceSize -> "bindInfo" ::: BindHeapInfoEXT
BindHeapInfoEXT
DeviceAddressRangeEXT
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
data PushDataInfoEXT (es :: [Type]) = PushDataInfoEXT
{
forall (es :: [*]). PushDataInfoEXT es -> Chain es
next :: Chain es
,
forall (es :: [*]). PushDataInfoEXT es -> Word32
offset :: Word32
,
forall (es :: [*]). PushDataInfoEXT es -> HostAddressRangeConstEXT
data' :: HostAddressRangeConstEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PushDataInfoEXT (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (PushDataInfoEXT es)
instance Extensible PushDataInfoEXT where
extensibleTypeName :: String
extensibleTypeName = String
"PushDataInfoEXT"
setNext :: forall (ds :: [*]) (es :: [*]).
PushDataInfoEXT ds -> Chain es -> PushDataInfoEXT es
setNext PushDataInfoEXT{Word32
Chain ds
HostAddressRangeConstEXT
next :: forall (es :: [*]). PushDataInfoEXT es -> Chain es
offset :: forall (es :: [*]). PushDataInfoEXT es -> Word32
data' :: forall (es :: [*]). PushDataInfoEXT es -> HostAddressRangeConstEXT
next :: Chain ds
offset :: Word32
data' :: HostAddressRangeConstEXT
..} Chain es
next' = PushDataInfoEXT{next :: Chain es
next = Chain es
next', Word32
HostAddressRangeConstEXT
offset :: Word32
data' :: HostAddressRangeConstEXT
offset :: Word32
data' :: HostAddressRangeConstEXT
..}
getNext :: forall (es :: [*]). PushDataInfoEXT es -> Chain es
getNext PushDataInfoEXT{Word32
Chain es
HostAddressRangeConstEXT
next :: forall (es :: [*]). PushDataInfoEXT es -> Chain es
offset :: forall (es :: [*]). PushDataInfoEXT es -> Word32
data' :: forall (es :: [*]). PushDataInfoEXT es -> HostAddressRangeConstEXT
next :: Chain es
offset :: Word32
data' :: HostAddressRangeConstEXT
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends PushDataInfoEXT e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e -> (Extends PushDataInfoEXT e => b) -> Maybe b
extends proxy e
_ Extends PushDataInfoEXT e => b
f
| Just e :~: PushConstantBankInfoNV
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 @PushConstantBankInfoNV = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends PushDataInfoEXT e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance ( Extendss PushDataInfoEXT es
, PokeChain es ) => ToCStruct (PushDataInfoEXT es) where
withCStruct :: forall b.
PushDataInfoEXT es -> (Ptr (PushDataInfoEXT es) -> IO b) -> IO b
withCStruct PushDataInfoEXT es
x Ptr (PushDataInfoEXT es) -> IO b
f = Int -> (Ptr (PushDataInfoEXT es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr (PushDataInfoEXT es) -> IO b) -> IO b)
-> (Ptr (PushDataInfoEXT es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (PushDataInfoEXT es)
p -> Ptr (PushDataInfoEXT es) -> PushDataInfoEXT es -> IO b -> IO b
forall b.
Ptr (PushDataInfoEXT es) -> PushDataInfoEXT es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (PushDataInfoEXT es)
p PushDataInfoEXT es
x (Ptr (PushDataInfoEXT es) -> IO b
f Ptr (PushDataInfoEXT es)
p)
pokeCStruct :: forall b.
Ptr (PushDataInfoEXT es) -> PushDataInfoEXT es -> IO b -> IO b
pokeCStruct Ptr (PushDataInfoEXT es)
p PushDataInfoEXT{Word32
Chain es
HostAddressRangeConstEXT
next :: forall (es :: [*]). PushDataInfoEXT es -> Chain es
offset :: forall (es :: [*]). PushDataInfoEXT es -> Word32
data' :: forall (es :: [*]). PushDataInfoEXT es -> HostAddressRangeConstEXT
next :: Chain es
offset :: Word32
data' :: HostAddressRangeConstEXT
..} 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 (PushDataInfoEXT es)
p Ptr (PushDataInfoEXT es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PUSH_DATA_INFO_EXT)
pNext'' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (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) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (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 (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (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 Word32)) (offset)
lift $ poke ((p `plusPtr` 24 :: Ptr HostAddressRangeConstEXT)) (data')
lift $ f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (PushDataInfoEXT es) -> IO b -> IO b
pokeZeroCStruct Ptr (PushDataInfoEXT 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 (PushDataInfoEXT es)
p Ptr (PushDataInfoEXT es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PUSH_DATA_INFO_EXT)
pNext' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (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) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (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 (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (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 Word32)) (zero)
lift $ poke ((p `plusPtr` 24 :: Ptr HostAddressRangeConstEXT)) (zero)
lift $ f
instance ( Extendss PushDataInfoEXT es
, PeekChain es ) => FromCStruct (PushDataInfoEXT es) where
peekCStruct :: Ptr (PushDataInfoEXT es) -> IO (PushDataInfoEXT es)
peekCStruct Ptr (PushDataInfoEXT es)
p = do
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (PushDataInfoEXT es)
p Ptr (PushDataInfoEXT es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
next <- peekChain (castPtr pNext)
offset <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
data' <- peekCStruct @HostAddressRangeConstEXT ((p `plusPtr` 24 :: Ptr HostAddressRangeConstEXT))
pure $ PushDataInfoEXT
next offset data'
instance es ~ '[] => Zero (PushDataInfoEXT es) where
zero :: PushDataInfoEXT es
zero = Chain es
-> Word32 -> HostAddressRangeConstEXT -> PushDataInfoEXT es
forall (es :: [*]).
Chain es
-> Word32 -> HostAddressRangeConstEXT -> PushDataInfoEXT es
PushDataInfoEXT
()
Word32
forall a. Zero a => a
zero
HostAddressRangeConstEXT
forall a. Zero a => a
zero
data DescriptorMappingSourceConstantOffsetEXT = DescriptorMappingSourceConstantOffsetEXT
{
DescriptorMappingSourceConstantOffsetEXT -> Word32
heapOffset :: Word32
,
DescriptorMappingSourceConstantOffsetEXT -> Word32
heapArrayStride :: Word32
,
DescriptorMappingSourceConstantOffsetEXT
-> Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
,
DescriptorMappingSourceConstantOffsetEXT -> Word32
samplerHeapOffset :: Word32
,
DescriptorMappingSourceConstantOffsetEXT -> Word32
samplerHeapArrayStride :: Word32
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorMappingSourceConstantOffsetEXT)
#endif
deriving instance Show DescriptorMappingSourceConstantOffsetEXT
instance ToCStruct DescriptorMappingSourceConstantOffsetEXT where
withCStruct :: forall b.
DescriptorMappingSourceConstantOffsetEXT
-> (Ptr DescriptorMappingSourceConstantOffsetEXT -> IO b) -> IO b
withCStruct DescriptorMappingSourceConstantOffsetEXT
x Ptr DescriptorMappingSourceConstantOffsetEXT -> IO b
f = Int
-> (Ptr DescriptorMappingSourceConstantOffsetEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr DescriptorMappingSourceConstantOffsetEXT -> IO b) -> IO b)
-> (Ptr DescriptorMappingSourceConstantOffsetEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorMappingSourceConstantOffsetEXT
p -> Ptr DescriptorMappingSourceConstantOffsetEXT
-> DescriptorMappingSourceConstantOffsetEXT -> IO b -> IO b
forall b.
Ptr DescriptorMappingSourceConstantOffsetEXT
-> DescriptorMappingSourceConstantOffsetEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceConstantOffsetEXT
p DescriptorMappingSourceConstantOffsetEXT
x (Ptr DescriptorMappingSourceConstantOffsetEXT -> IO b
f Ptr DescriptorMappingSourceConstantOffsetEXT
p)
pokeCStruct :: forall b.
Ptr DescriptorMappingSourceConstantOffsetEXT
-> DescriptorMappingSourceConstantOffsetEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceConstantOffsetEXT
p DescriptorMappingSourceConstantOffsetEXT{Maybe (SomeStruct SamplerCreateInfo)
Word32
heapOffset :: DescriptorMappingSourceConstantOffsetEXT -> Word32
heapArrayStride :: DescriptorMappingSourceConstantOffsetEXT -> Word32
embeddedSampler :: DescriptorMappingSourceConstantOffsetEXT
-> Maybe (SomeStruct SamplerCreateInfo)
samplerHeapOffset :: DescriptorMappingSourceConstantOffsetEXT -> Word32
samplerHeapArrayStride :: DescriptorMappingSourceConstantOffsetEXT -> Word32
heapOffset :: Word32
heapArrayStride :: Word32
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
samplerHeapOffset :: Word32
samplerHeapArrayStride :: Word32
..} 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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceConstantOffsetEXT
p Ptr DescriptorMappingSourceConstantOffsetEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
heapOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceConstantOffsetEXT
p Ptr DescriptorMappingSourceConstantOffsetEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
heapArrayStride)
pEmbeddedSampler'' <- case (Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler) of
Maybe (SomeStruct SamplerCreateInfo)
Nothing -> Ptr (SamplerCreateInfo '[])
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr (SamplerCreateInfo '[])
forall a. Ptr a
nullPtr
Just SomeStruct SamplerCreateInfo
j -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
forall r (m :: * -> *) a. ((a -> m r) -> m r) -> ContT r m a
ContT @_ @_ @(Ptr (SamplerCreateInfo '[])) (((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[])))
-> ((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a b. (a -> b) -> a -> b
$ \Ptr (SamplerCreateInfo '[]) -> IO b
cont -> forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
SomeStruct a
-> (forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b)
-> IO b
withSomeCStruct @SamplerCreateInfo (SomeStruct SamplerCreateInfo
j) (Ptr (SamplerCreateInfo '[]) -> IO b
cont (Ptr (SamplerCreateInfo '[]) -> IO b)
-> (Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[]))
-> Ptr (SamplerCreateInfo es)
-> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[])
forall a b. Ptr a -> Ptr b
castPtr)
lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr (SamplerCreateInfo _)))) pEmbeddedSampler''
lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (samplerHeapOffset)
lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (samplerHeapArrayStride)
lift $ f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr DescriptorMappingSourceConstantOffsetEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorMappingSourceConstantOffsetEXT
p IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceConstantOffsetEXT
p Ptr DescriptorMappingSourceConstantOffsetEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceConstantOffsetEXT
p Ptr DescriptorMappingSourceConstantOffsetEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceConstantOffsetEXT
p Ptr DescriptorMappingSourceConstantOffsetEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceConstantOffsetEXT
p Ptr DescriptorMappingSourceConstantOffsetEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorMappingSourceConstantOffsetEXT where
peekCStruct :: Ptr DescriptorMappingSourceConstantOffsetEXT
-> IO DescriptorMappingSourceConstantOffsetEXT
peekCStruct Ptr DescriptorMappingSourceConstantOffsetEXT
p = do
heapOffset <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr DescriptorMappingSourceConstantOffsetEXT
p Ptr DescriptorMappingSourceConstantOffsetEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
heapArrayStride <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
pEmbeddedSampler <- peek @(Ptr (SamplerCreateInfo _)) ((p `plusPtr` 8 :: Ptr (Ptr (SamplerCreateInfo _))))
pEmbeddedSampler' <- maybePeek (\Ptr (SamplerCreateInfo (ZonkAny 5))
j -> Ptr (SomeStruct SamplerCreateInfo)
-> IO (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (SamplerCreateInfo (ZonkAny 5))
-> Ptr (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (SamplerCreateInfo (ZonkAny 5))
j))) pEmbeddedSampler
samplerHeapOffset <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
samplerHeapArrayStride <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
pure $ DescriptorMappingSourceConstantOffsetEXT
heapOffset
heapArrayStride
pEmbeddedSampler'
samplerHeapOffset
samplerHeapArrayStride
instance Zero DescriptorMappingSourceConstantOffsetEXT where
zero :: DescriptorMappingSourceConstantOffsetEXT
zero = Word32
-> Word32
-> Maybe (SomeStruct SamplerCreateInfo)
-> Word32
-> Word32
-> DescriptorMappingSourceConstantOffsetEXT
DescriptorMappingSourceConstantOffsetEXT
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Maybe (SomeStruct SamplerCreateInfo)
forall a. Maybe a
Nothing
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data DescriptorMappingSourcePushIndexEXT = DescriptorMappingSourcePushIndexEXT
{
DescriptorMappingSourcePushIndexEXT -> Word32
heapOffset :: Word32
,
DescriptorMappingSourcePushIndexEXT -> Word32
pushOffset :: Word32
,
DescriptorMappingSourcePushIndexEXT -> Word32
heapIndexStride :: Word32
,
DescriptorMappingSourcePushIndexEXT -> Word32
heapArrayStride :: Word32
,
DescriptorMappingSourcePushIndexEXT
-> Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
,
DescriptorMappingSourcePushIndexEXT -> Bool
useCombinedImageSamplerIndex :: Bool
,
DescriptorMappingSourcePushIndexEXT -> Word32
samplerHeapOffset :: Word32
,
DescriptorMappingSourcePushIndexEXT -> Word32
samplerPushOffset :: Word32
,
DescriptorMappingSourcePushIndexEXT -> Word32
samplerHeapIndexStride :: Word32
,
DescriptorMappingSourcePushIndexEXT -> Word32
samplerHeapArrayStride :: Word32
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorMappingSourcePushIndexEXT)
#endif
deriving instance Show DescriptorMappingSourcePushIndexEXT
instance ToCStruct DescriptorMappingSourcePushIndexEXT where
withCStruct :: forall b.
DescriptorMappingSourcePushIndexEXT
-> (Ptr DescriptorMappingSourcePushIndexEXT -> IO b) -> IO b
withCStruct DescriptorMappingSourcePushIndexEXT
x Ptr DescriptorMappingSourcePushIndexEXT -> IO b
f = Int -> (Ptr DescriptorMappingSourcePushIndexEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
48 ((Ptr DescriptorMappingSourcePushIndexEXT -> IO b) -> IO b)
-> (Ptr DescriptorMappingSourcePushIndexEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorMappingSourcePushIndexEXT
p -> Ptr DescriptorMappingSourcePushIndexEXT
-> DescriptorMappingSourcePushIndexEXT -> IO b -> IO b
forall b.
Ptr DescriptorMappingSourcePushIndexEXT
-> DescriptorMappingSourcePushIndexEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourcePushIndexEXT
p DescriptorMappingSourcePushIndexEXT
x (Ptr DescriptorMappingSourcePushIndexEXT -> IO b
f Ptr DescriptorMappingSourcePushIndexEXT
p)
pokeCStruct :: forall b.
Ptr DescriptorMappingSourcePushIndexEXT
-> DescriptorMappingSourcePushIndexEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourcePushIndexEXT
p DescriptorMappingSourcePushIndexEXT{Bool
Maybe (SomeStruct SamplerCreateInfo)
Word32
heapOffset :: DescriptorMappingSourcePushIndexEXT -> Word32
pushOffset :: DescriptorMappingSourcePushIndexEXT -> Word32
heapIndexStride :: DescriptorMappingSourcePushIndexEXT -> Word32
heapArrayStride :: DescriptorMappingSourcePushIndexEXT -> Word32
embeddedSampler :: DescriptorMappingSourcePushIndexEXT
-> Maybe (SomeStruct SamplerCreateInfo)
useCombinedImageSamplerIndex :: DescriptorMappingSourcePushIndexEXT -> Bool
samplerHeapOffset :: DescriptorMappingSourcePushIndexEXT -> Word32
samplerPushOffset :: DescriptorMappingSourcePushIndexEXT -> Word32
samplerHeapIndexStride :: DescriptorMappingSourcePushIndexEXT -> Word32
samplerHeapArrayStride :: DescriptorMappingSourcePushIndexEXT -> Word32
heapOffset :: Word32
pushOffset :: Word32
heapIndexStride :: Word32
heapArrayStride :: Word32
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
useCombinedImageSamplerIndex :: Bool
samplerHeapOffset :: Word32
samplerPushOffset :: Word32
samplerHeapIndexStride :: Word32
samplerHeapArrayStride :: Word32
..} 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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
heapOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
pushOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
heapIndexStride)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
heapArrayStride)
pEmbeddedSampler'' <- case (Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler) of
Maybe (SomeStruct SamplerCreateInfo)
Nothing -> Ptr (SamplerCreateInfo '[])
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr (SamplerCreateInfo '[])
forall a. Ptr a
nullPtr
Just SomeStruct SamplerCreateInfo
j -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
forall r (m :: * -> *) a. ((a -> m r) -> m r) -> ContT r m a
ContT @_ @_ @(Ptr (SamplerCreateInfo '[])) (((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[])))
-> ((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a b. (a -> b) -> a -> b
$ \Ptr (SamplerCreateInfo '[]) -> IO b
cont -> forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
SomeStruct a
-> (forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b)
-> IO b
withSomeCStruct @SamplerCreateInfo (SomeStruct SamplerCreateInfo
j) (Ptr (SamplerCreateInfo '[]) -> IO b
cont (Ptr (SamplerCreateInfo '[]) -> IO b)
-> (Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[]))
-> Ptr (SamplerCreateInfo es)
-> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[])
forall a b. Ptr a -> Ptr b
castPtr)
lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (SamplerCreateInfo _)))) pEmbeddedSampler''
lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (useCombinedImageSamplerIndex))
lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (samplerHeapOffset)
lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (samplerPushOffset)
lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (samplerHeapIndexStride)
lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (samplerHeapArrayStride)
lift $ f
cStructSize :: Int
cStructSize = Int
48
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DescriptorMappingSourcePushIndexEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorMappingSourcePushIndexEXT
p IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> 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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorMappingSourcePushIndexEXT where
peekCStruct :: Ptr DescriptorMappingSourcePushIndexEXT
-> IO DescriptorMappingSourcePushIndexEXT
peekCStruct Ptr DescriptorMappingSourcePushIndexEXT
p = do
heapOffset <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr DescriptorMappingSourcePushIndexEXT
p Ptr DescriptorMappingSourcePushIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
pushOffset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
heapIndexStride <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
heapArrayStride <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
pEmbeddedSampler <- peek @(Ptr (SamplerCreateInfo _)) ((p `plusPtr` 16 :: Ptr (Ptr (SamplerCreateInfo _))))
pEmbeddedSampler' <- maybePeek (\Ptr (SamplerCreateInfo (ZonkAny 6))
j -> Ptr (SomeStruct SamplerCreateInfo)
-> IO (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (SamplerCreateInfo (ZonkAny 6))
-> Ptr (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (SamplerCreateInfo (ZonkAny 6))
j))) pEmbeddedSampler
useCombinedImageSamplerIndex <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
samplerHeapOffset <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
samplerPushOffset <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
samplerHeapIndexStride <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
samplerHeapArrayStride <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
pure $ DescriptorMappingSourcePushIndexEXT
heapOffset
pushOffset
heapIndexStride
heapArrayStride
pEmbeddedSampler'
(bool32ToBool useCombinedImageSamplerIndex)
samplerHeapOffset
samplerPushOffset
samplerHeapIndexStride
samplerHeapArrayStride
instance Zero DescriptorMappingSourcePushIndexEXT where
zero :: DescriptorMappingSourcePushIndexEXT
zero = Word32
-> Word32
-> Word32
-> Word32
-> Maybe (SomeStruct SamplerCreateInfo)
-> Bool
-> Word32
-> Word32
-> Word32
-> Word32
-> DescriptorMappingSourcePushIndexEXT
DescriptorMappingSourcePushIndexEXT
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Maybe (SomeStruct SamplerCreateInfo)
forall a. Maybe a
Nothing
Bool
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data DescriptorMappingSourceIndirectIndexEXT = DescriptorMappingSourceIndirectIndexEXT
{
DescriptorMappingSourceIndirectIndexEXT -> Word32
heapOffset :: Word32
,
DescriptorMappingSourceIndirectIndexEXT -> Word32
pushOffset :: Word32
,
DescriptorMappingSourceIndirectIndexEXT -> Word32
addressOffset :: Word32
,
DescriptorMappingSourceIndirectIndexEXT -> Word32
heapIndexStride :: Word32
,
DescriptorMappingSourceIndirectIndexEXT -> Word32
heapArrayStride :: Word32
,
DescriptorMappingSourceIndirectIndexEXT
-> Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
,
DescriptorMappingSourceIndirectIndexEXT -> Bool
useCombinedImageSamplerIndex :: Bool
,
DescriptorMappingSourceIndirectIndexEXT -> Word32
samplerHeapOffset :: Word32
,
DescriptorMappingSourceIndirectIndexEXT -> Word32
samplerPushOffset :: Word32
,
DescriptorMappingSourceIndirectIndexEXT -> Word32
samplerAddressOffset :: Word32
,
DescriptorMappingSourceIndirectIndexEXT -> Word32
samplerHeapIndexStride :: Word32
,
DescriptorMappingSourceIndirectIndexEXT -> Word32
samplerHeapArrayStride :: Word32
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorMappingSourceIndirectIndexEXT)
#endif
deriving instance Show DescriptorMappingSourceIndirectIndexEXT
instance ToCStruct DescriptorMappingSourceIndirectIndexEXT where
withCStruct :: forall b.
DescriptorMappingSourceIndirectIndexEXT
-> (Ptr DescriptorMappingSourceIndirectIndexEXT -> IO b) -> IO b
withCStruct DescriptorMappingSourceIndirectIndexEXT
x Ptr DescriptorMappingSourceIndirectIndexEXT -> IO b
f = Int
-> (Ptr DescriptorMappingSourceIndirectIndexEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 ((Ptr DescriptorMappingSourceIndirectIndexEXT -> IO b) -> IO b)
-> (Ptr DescriptorMappingSourceIndirectIndexEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorMappingSourceIndirectIndexEXT
p -> Ptr DescriptorMappingSourceIndirectIndexEXT
-> DescriptorMappingSourceIndirectIndexEXT -> IO b -> IO b
forall b.
Ptr DescriptorMappingSourceIndirectIndexEXT
-> DescriptorMappingSourceIndirectIndexEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceIndirectIndexEXT
p DescriptorMappingSourceIndirectIndexEXT
x (Ptr DescriptorMappingSourceIndirectIndexEXT -> IO b
f Ptr DescriptorMappingSourceIndirectIndexEXT
p)
pokeCStruct :: forall b.
Ptr DescriptorMappingSourceIndirectIndexEXT
-> DescriptorMappingSourceIndirectIndexEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceIndirectIndexEXT
p DescriptorMappingSourceIndirectIndexEXT{Bool
Maybe (SomeStruct SamplerCreateInfo)
Word32
heapOffset :: DescriptorMappingSourceIndirectIndexEXT -> Word32
pushOffset :: DescriptorMappingSourceIndirectIndexEXT -> Word32
addressOffset :: DescriptorMappingSourceIndirectIndexEXT -> Word32
heapIndexStride :: DescriptorMappingSourceIndirectIndexEXT -> Word32
heapArrayStride :: DescriptorMappingSourceIndirectIndexEXT -> Word32
embeddedSampler :: DescriptorMappingSourceIndirectIndexEXT
-> Maybe (SomeStruct SamplerCreateInfo)
useCombinedImageSamplerIndex :: DescriptorMappingSourceIndirectIndexEXT -> Bool
samplerHeapOffset :: DescriptorMappingSourceIndirectIndexEXT -> Word32
samplerPushOffset :: DescriptorMappingSourceIndirectIndexEXT -> Word32
samplerAddressOffset :: DescriptorMappingSourceIndirectIndexEXT -> Word32
samplerHeapIndexStride :: DescriptorMappingSourceIndirectIndexEXT -> Word32
samplerHeapArrayStride :: DescriptorMappingSourceIndirectIndexEXT -> Word32
heapOffset :: Word32
pushOffset :: Word32
addressOffset :: Word32
heapIndexStride :: Word32
heapArrayStride :: Word32
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
useCombinedImageSamplerIndex :: Bool
samplerHeapOffset :: Word32
samplerPushOffset :: Word32
samplerAddressOffset :: Word32
samplerHeapIndexStride :: Word32
samplerHeapArrayStride :: Word32
..} 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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
heapOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
pushOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
addressOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
heapIndexStride)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
heapArrayStride)
pEmbeddedSampler'' <- case (Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler) of
Maybe (SomeStruct SamplerCreateInfo)
Nothing -> Ptr (SamplerCreateInfo '[])
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr (SamplerCreateInfo '[])
forall a. Ptr a
nullPtr
Just SomeStruct SamplerCreateInfo
j -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
forall r (m :: * -> *) a. ((a -> m r) -> m r) -> ContT r m a
ContT @_ @_ @(Ptr (SamplerCreateInfo '[])) (((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[])))
-> ((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a b. (a -> b) -> a -> b
$ \Ptr (SamplerCreateInfo '[]) -> IO b
cont -> forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
SomeStruct a
-> (forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b)
-> IO b
withSomeCStruct @SamplerCreateInfo (SomeStruct SamplerCreateInfo
j) (Ptr (SamplerCreateInfo '[]) -> IO b
cont (Ptr (SamplerCreateInfo '[]) -> IO b)
-> (Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[]))
-> Ptr (SamplerCreateInfo es)
-> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[])
forall a b. Ptr a -> Ptr b
castPtr)
lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr (SamplerCreateInfo _)))) pEmbeddedSampler''
lift $ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (useCombinedImageSamplerIndex))
lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (samplerHeapOffset)
lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (samplerPushOffset)
lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (samplerAddressOffset)
lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) (samplerHeapIndexStride)
lift $ poke ((p `plusPtr` 52 :: Ptr Word32)) (samplerHeapArrayStride)
lift $ f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr DescriptorMappingSourceIndirectIndexEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorMappingSourceIndirectIndexEXT
p IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorMappingSourceIndirectIndexEXT where
peekCStruct :: Ptr DescriptorMappingSourceIndirectIndexEXT
-> IO DescriptorMappingSourceIndirectIndexEXT
peekCStruct Ptr DescriptorMappingSourceIndirectIndexEXT
p = do
heapOffset <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr DescriptorMappingSourceIndirectIndexEXT
p Ptr DescriptorMappingSourceIndirectIndexEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
pushOffset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
addressOffset <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
heapIndexStride <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
heapArrayStride <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
pEmbeddedSampler <- peek @(Ptr (SamplerCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (SamplerCreateInfo _))))
pEmbeddedSampler' <- maybePeek (\Ptr (SamplerCreateInfo (ZonkAny 7))
j -> Ptr (SomeStruct SamplerCreateInfo)
-> IO (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (SamplerCreateInfo (ZonkAny 7))
-> Ptr (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (SamplerCreateInfo (ZonkAny 7))
j))) pEmbeddedSampler
useCombinedImageSamplerIndex <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
samplerHeapOffset <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
samplerPushOffset <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
samplerAddressOffset <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
samplerHeapIndexStride <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
samplerHeapArrayStride <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))
pure $ DescriptorMappingSourceIndirectIndexEXT
heapOffset
pushOffset
addressOffset
heapIndexStride
heapArrayStride
pEmbeddedSampler'
(bool32ToBool useCombinedImageSamplerIndex)
samplerHeapOffset
samplerPushOffset
samplerAddressOffset
samplerHeapIndexStride
samplerHeapArrayStride
instance Zero DescriptorMappingSourceIndirectIndexEXT where
zero :: DescriptorMappingSourceIndirectIndexEXT
zero = Word32
-> Word32
-> Word32
-> Word32
-> Word32
-> Maybe (SomeStruct SamplerCreateInfo)
-> Bool
-> Word32
-> Word32
-> Word32
-> Word32
-> Word32
-> DescriptorMappingSourceIndirectIndexEXT
DescriptorMappingSourceIndirectIndexEXT
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Maybe (SomeStruct SamplerCreateInfo)
forall a. Maybe a
Nothing
Bool
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data DescriptorMappingSourceIndirectIndexArrayEXT = DescriptorMappingSourceIndirectIndexArrayEXT
{
DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
heapOffset :: Word32
,
DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
pushOffset :: Word32
,
DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
addressOffset :: Word32
,
DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
heapIndexStride :: Word32
,
DescriptorMappingSourceIndirectIndexArrayEXT
-> Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
,
DescriptorMappingSourceIndirectIndexArrayEXT -> Bool
useCombinedImageSamplerIndex :: Bool
,
DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
samplerHeapOffset :: Word32
,
DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
samplerPushOffset :: Word32
,
DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
samplerAddressOffset :: Word32
,
DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
samplerHeapIndexStride :: Word32
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorMappingSourceIndirectIndexArrayEXT)
#endif
deriving instance Show DescriptorMappingSourceIndirectIndexArrayEXT
instance ToCStruct DescriptorMappingSourceIndirectIndexArrayEXT where
withCStruct :: forall b.
DescriptorMappingSourceIndirectIndexArrayEXT
-> (Ptr DescriptorMappingSourceIndirectIndexArrayEXT -> IO b)
-> IO b
withCStruct DescriptorMappingSourceIndirectIndexArrayEXT
x Ptr DescriptorMappingSourceIndirectIndexArrayEXT -> IO b
f = Int
-> (Ptr DescriptorMappingSourceIndirectIndexArrayEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
48 ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT -> IO b)
-> IO b)
-> (Ptr DescriptorMappingSourceIndirectIndexArrayEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p -> Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> DescriptorMappingSourceIndirectIndexArrayEXT -> IO b -> IO b
forall b.
Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> DescriptorMappingSourceIndirectIndexArrayEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p DescriptorMappingSourceIndirectIndexArrayEXT
x (Ptr DescriptorMappingSourceIndirectIndexArrayEXT -> IO b
f Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p)
pokeCStruct :: forall b.
Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> DescriptorMappingSourceIndirectIndexArrayEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p DescriptorMappingSourceIndirectIndexArrayEXT{Bool
Maybe (SomeStruct SamplerCreateInfo)
Word32
heapOffset :: DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
pushOffset :: DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
addressOffset :: DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
heapIndexStride :: DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
embeddedSampler :: DescriptorMappingSourceIndirectIndexArrayEXT
-> Maybe (SomeStruct SamplerCreateInfo)
useCombinedImageSamplerIndex :: DescriptorMappingSourceIndirectIndexArrayEXT -> Bool
samplerHeapOffset :: DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
samplerPushOffset :: DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
samplerAddressOffset :: DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
samplerHeapIndexStride :: DescriptorMappingSourceIndirectIndexArrayEXT -> Word32
heapOffset :: Word32
pushOffset :: Word32
addressOffset :: Word32
heapIndexStride :: Word32
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
useCombinedImageSamplerIndex :: Bool
samplerHeapOffset :: Word32
samplerPushOffset :: Word32
samplerAddressOffset :: Word32
samplerHeapIndexStride :: Word32
..} 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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
heapOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
pushOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
addressOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
heapIndexStride)
pEmbeddedSampler'' <- case (Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler) of
Maybe (SomeStruct SamplerCreateInfo)
Nothing -> Ptr (SamplerCreateInfo '[])
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr (SamplerCreateInfo '[])
forall a. Ptr a
nullPtr
Just SomeStruct SamplerCreateInfo
j -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
forall r (m :: * -> *) a. ((a -> m r) -> m r) -> ContT r m a
ContT @_ @_ @(Ptr (SamplerCreateInfo '[])) (((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[])))
-> ((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a b. (a -> b) -> a -> b
$ \Ptr (SamplerCreateInfo '[]) -> IO b
cont -> forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
SomeStruct a
-> (forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b)
-> IO b
withSomeCStruct @SamplerCreateInfo (SomeStruct SamplerCreateInfo
j) (Ptr (SamplerCreateInfo '[]) -> IO b
cont (Ptr (SamplerCreateInfo '[]) -> IO b)
-> (Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[]))
-> Ptr (SamplerCreateInfo es)
-> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[])
forall a b. Ptr a -> Ptr b
castPtr)
lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (SamplerCreateInfo _)))) pEmbeddedSampler''
lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (useCombinedImageSamplerIndex))
lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (samplerHeapOffset)
lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (samplerPushOffset)
lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (samplerAddressOffset)
lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (samplerHeapIndexStride)
lift $ f
cStructSize :: Int
cStructSize = Int
48
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr DescriptorMappingSourceIndirectIndexArrayEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> 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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorMappingSourceIndirectIndexArrayEXT where
peekCStruct :: Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> IO DescriptorMappingSourceIndirectIndexArrayEXT
peekCStruct Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p = do
heapOffset <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr DescriptorMappingSourceIndirectIndexArrayEXT
p Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
pushOffset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
addressOffset <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
heapIndexStride <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
pEmbeddedSampler <- peek @(Ptr (SamplerCreateInfo _)) ((p `plusPtr` 16 :: Ptr (Ptr (SamplerCreateInfo _))))
pEmbeddedSampler' <- maybePeek (\Ptr (SamplerCreateInfo (ZonkAny 8))
j -> Ptr (SomeStruct SamplerCreateInfo)
-> IO (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (SamplerCreateInfo (ZonkAny 8))
-> Ptr (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (SamplerCreateInfo (ZonkAny 8))
j))) pEmbeddedSampler
useCombinedImageSamplerIndex <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
samplerHeapOffset <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
samplerPushOffset <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
samplerAddressOffset <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
samplerHeapIndexStride <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
pure $ DescriptorMappingSourceIndirectIndexArrayEXT
heapOffset
pushOffset
addressOffset
heapIndexStride
pEmbeddedSampler'
(bool32ToBool useCombinedImageSamplerIndex)
samplerHeapOffset
samplerPushOffset
samplerAddressOffset
samplerHeapIndexStride
instance Zero DescriptorMappingSourceIndirectIndexArrayEXT where
zero :: DescriptorMappingSourceIndirectIndexArrayEXT
zero = Word32
-> Word32
-> Word32
-> Word32
-> Maybe (SomeStruct SamplerCreateInfo)
-> Bool
-> Word32
-> Word32
-> Word32
-> Word32
-> DescriptorMappingSourceIndirectIndexArrayEXT
DescriptorMappingSourceIndirectIndexArrayEXT
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Maybe (SomeStruct SamplerCreateInfo)
forall a. Maybe a
Nothing
Bool
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data DescriptorMappingSourceHeapDataEXT = DescriptorMappingSourceHeapDataEXT
{
DescriptorMappingSourceHeapDataEXT -> Word32
heapOffset :: Word32
,
DescriptorMappingSourceHeapDataEXT -> Word32
pushOffset :: Word32
}
deriving (Typeable, DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> Bool
(DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> Bool)
-> (DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> Bool)
-> Eq DescriptorMappingSourceHeapDataEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> Bool
== :: DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> Bool
$c/= :: DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> Bool
/= :: DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorMappingSourceHeapDataEXT)
#endif
deriving instance Show DescriptorMappingSourceHeapDataEXT
instance ToCStruct DescriptorMappingSourceHeapDataEXT where
withCStruct :: forall b.
DescriptorMappingSourceHeapDataEXT
-> (Ptr DescriptorMappingSourceHeapDataEXT -> IO b) -> IO b
withCStruct DescriptorMappingSourceHeapDataEXT
x Ptr DescriptorMappingSourceHeapDataEXT -> IO b
f = Int -> (Ptr DescriptorMappingSourceHeapDataEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
8 ((Ptr DescriptorMappingSourceHeapDataEXT -> IO b) -> IO b)
-> (Ptr DescriptorMappingSourceHeapDataEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorMappingSourceHeapDataEXT
p -> Ptr DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> IO b -> IO b
forall b.
Ptr DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceHeapDataEXT
p DescriptorMappingSourceHeapDataEXT
x (Ptr DescriptorMappingSourceHeapDataEXT -> IO b
f Ptr DescriptorMappingSourceHeapDataEXT
p)
pokeCStruct :: forall b.
Ptr DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceHeapDataEXT
p DescriptorMappingSourceHeapDataEXT{Word32
heapOffset :: DescriptorMappingSourceHeapDataEXT -> Word32
pushOffset :: DescriptorMappingSourceHeapDataEXT -> Word32
heapOffset :: Word32
pushOffset :: Word32
..} IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceHeapDataEXT
p Ptr DescriptorMappingSourceHeapDataEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
heapOffset)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceHeapDataEXT
p Ptr DescriptorMappingSourceHeapDataEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
pushOffset)
IO b
f
cStructSize :: Int
cStructSize = Int
8
cStructAlignment :: Int
cStructAlignment = Int
4
pokeZeroCStruct :: forall b. Ptr DescriptorMappingSourceHeapDataEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorMappingSourceHeapDataEXT
p IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceHeapDataEXT
p Ptr DescriptorMappingSourceHeapDataEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceHeapDataEXT
p Ptr DescriptorMappingSourceHeapDataEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorMappingSourceHeapDataEXT where
peekCStruct :: Ptr DescriptorMappingSourceHeapDataEXT
-> IO DescriptorMappingSourceHeapDataEXT
peekCStruct Ptr DescriptorMappingSourceHeapDataEXT
p = do
heapOffset <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr DescriptorMappingSourceHeapDataEXT
p Ptr DescriptorMappingSourceHeapDataEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
pushOffset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
pure $ DescriptorMappingSourceHeapDataEXT
heapOffset pushOffset
instance Storable DescriptorMappingSourceHeapDataEXT where
sizeOf :: DescriptorMappingSourceHeapDataEXT -> Int
sizeOf ~DescriptorMappingSourceHeapDataEXT
_ = Int
8
alignment :: DescriptorMappingSourceHeapDataEXT -> Int
alignment ~DescriptorMappingSourceHeapDataEXT
_ = Int
4
peek :: Ptr DescriptorMappingSourceHeapDataEXT
-> IO DescriptorMappingSourceHeapDataEXT
peek = Ptr DescriptorMappingSourceHeapDataEXT
-> IO DescriptorMappingSourceHeapDataEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> IO ()
poke Ptr DescriptorMappingSourceHeapDataEXT
ptr DescriptorMappingSourceHeapDataEXT
poked = Ptr DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> IO () -> IO ()
forall b.
Ptr DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceHeapDataEXT
ptr DescriptorMappingSourceHeapDataEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DescriptorMappingSourceHeapDataEXT where
zero :: DescriptorMappingSourceHeapDataEXT
zero = Word32 -> Word32 -> DescriptorMappingSourceHeapDataEXT
DescriptorMappingSourceHeapDataEXT
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data DescriptorMappingSourceShaderRecordIndexEXT = DescriptorMappingSourceShaderRecordIndexEXT
{
DescriptorMappingSourceShaderRecordIndexEXT -> Word32
heapOffset :: Word32
,
DescriptorMappingSourceShaderRecordIndexEXT -> Word32
shaderRecordOffset :: Word32
,
DescriptorMappingSourceShaderRecordIndexEXT -> Word32
heapIndexStride :: Word32
,
DescriptorMappingSourceShaderRecordIndexEXT -> Word32
heapArrayStride :: Word32
,
DescriptorMappingSourceShaderRecordIndexEXT
-> Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
,
DescriptorMappingSourceShaderRecordIndexEXT -> Bool
useCombinedImageSamplerIndex :: Bool
,
DescriptorMappingSourceShaderRecordIndexEXT -> Word32
samplerHeapOffset :: Word32
,
DescriptorMappingSourceShaderRecordIndexEXT -> Word32
samplerShaderRecordOffset :: Word32
,
DescriptorMappingSourceShaderRecordIndexEXT -> Word32
samplerHeapIndexStride :: Word32
,
DescriptorMappingSourceShaderRecordIndexEXT -> Word32
samplerHeapArrayStride :: Word32
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorMappingSourceShaderRecordIndexEXT)
#endif
deriving instance Show DescriptorMappingSourceShaderRecordIndexEXT
instance ToCStruct DescriptorMappingSourceShaderRecordIndexEXT where
withCStruct :: forall b.
DescriptorMappingSourceShaderRecordIndexEXT
-> (Ptr DescriptorMappingSourceShaderRecordIndexEXT -> IO b)
-> IO b
withCStruct DescriptorMappingSourceShaderRecordIndexEXT
x Ptr DescriptorMappingSourceShaderRecordIndexEXT -> IO b
f = Int
-> (Ptr DescriptorMappingSourceShaderRecordIndexEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
48 ((Ptr DescriptorMappingSourceShaderRecordIndexEXT -> IO b) -> IO b)
-> (Ptr DescriptorMappingSourceShaderRecordIndexEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorMappingSourceShaderRecordIndexEXT
p -> Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> DescriptorMappingSourceShaderRecordIndexEXT -> IO b -> IO b
forall b.
Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> DescriptorMappingSourceShaderRecordIndexEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceShaderRecordIndexEXT
p DescriptorMappingSourceShaderRecordIndexEXT
x (Ptr DescriptorMappingSourceShaderRecordIndexEXT -> IO b
f Ptr DescriptorMappingSourceShaderRecordIndexEXT
p)
pokeCStruct :: forall b.
Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> DescriptorMappingSourceShaderRecordIndexEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceShaderRecordIndexEXT
p DescriptorMappingSourceShaderRecordIndexEXT{Bool
Maybe (SomeStruct SamplerCreateInfo)
Word32
heapOffset :: DescriptorMappingSourceShaderRecordIndexEXT -> Word32
shaderRecordOffset :: DescriptorMappingSourceShaderRecordIndexEXT -> Word32
heapIndexStride :: DescriptorMappingSourceShaderRecordIndexEXT -> Word32
heapArrayStride :: DescriptorMappingSourceShaderRecordIndexEXT -> Word32
embeddedSampler :: DescriptorMappingSourceShaderRecordIndexEXT
-> Maybe (SomeStruct SamplerCreateInfo)
useCombinedImageSamplerIndex :: DescriptorMappingSourceShaderRecordIndexEXT -> Bool
samplerHeapOffset :: DescriptorMappingSourceShaderRecordIndexEXT -> Word32
samplerShaderRecordOffset :: DescriptorMappingSourceShaderRecordIndexEXT -> Word32
samplerHeapIndexStride :: DescriptorMappingSourceShaderRecordIndexEXT -> Word32
samplerHeapArrayStride :: DescriptorMappingSourceShaderRecordIndexEXT -> Word32
heapOffset :: Word32
shaderRecordOffset :: Word32
heapIndexStride :: Word32
heapArrayStride :: Word32
embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
useCombinedImageSamplerIndex :: Bool
samplerHeapOffset :: Word32
samplerShaderRecordOffset :: Word32
samplerHeapIndexStride :: Word32
samplerHeapArrayStride :: Word32
..} 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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
heapOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
shaderRecordOffset)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
heapIndexStride)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
heapArrayStride)
pEmbeddedSampler'' <- case (Maybe (SomeStruct SamplerCreateInfo)
embeddedSampler) of
Maybe (SomeStruct SamplerCreateInfo)
Nothing -> Ptr (SamplerCreateInfo '[])
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr (SamplerCreateInfo '[])
forall a. Ptr a
nullPtr
Just SomeStruct SamplerCreateInfo
j -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
forall r (m :: * -> *) a. ((a -> m r) -> m r) -> ContT r m a
ContT @_ @_ @(Ptr (SamplerCreateInfo '[])) (((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[])))
-> ((Ptr (SamplerCreateInfo '[]) -> IO b) -> IO b)
-> ContT b IO (Ptr (SamplerCreateInfo '[]))
forall a b. (a -> b) -> a -> b
$ \Ptr (SamplerCreateInfo '[]) -> IO b
cont -> forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
SomeStruct a
-> (forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b)
-> IO b
withSomeCStruct @SamplerCreateInfo (SomeStruct SamplerCreateInfo
j) (Ptr (SamplerCreateInfo '[]) -> IO b
cont (Ptr (SamplerCreateInfo '[]) -> IO b)
-> (Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[]))
-> Ptr (SamplerCreateInfo es)
-> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (SamplerCreateInfo es) -> Ptr (SamplerCreateInfo '[])
forall a b. Ptr a -> Ptr b
castPtr)
lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (SamplerCreateInfo _)))) pEmbeddedSampler''
lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (useCombinedImageSamplerIndex))
lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (samplerHeapOffset)
lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (samplerShaderRecordOffset)
lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (samplerHeapIndexStride)
lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (samplerHeapArrayStride)
lift $ f
cStructSize :: Int
cStructSize = Int
48
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr DescriptorMappingSourceShaderRecordIndexEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorMappingSourceShaderRecordIndexEXT
p IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> 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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorMappingSourceShaderRecordIndexEXT where
peekCStruct :: Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> IO DescriptorMappingSourceShaderRecordIndexEXT
peekCStruct Ptr DescriptorMappingSourceShaderRecordIndexEXT
p = do
heapOffset <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr DescriptorMappingSourceShaderRecordIndexEXT
p Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
shaderRecordOffset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
heapIndexStride <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
heapArrayStride <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
pEmbeddedSampler <- peek @(Ptr (SamplerCreateInfo _)) ((p `plusPtr` 16 :: Ptr (Ptr (SamplerCreateInfo _))))
pEmbeddedSampler' <- maybePeek (\Ptr (SamplerCreateInfo (ZonkAny 9))
j -> Ptr (SomeStruct SamplerCreateInfo)
-> IO (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (SamplerCreateInfo (ZonkAny 9))
-> Ptr (SomeStruct SamplerCreateInfo)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (SamplerCreateInfo (ZonkAny 9))
j))) pEmbeddedSampler
useCombinedImageSamplerIndex <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
samplerHeapOffset <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
samplerShaderRecordOffset <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
samplerHeapIndexStride <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
samplerHeapArrayStride <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
pure $ DescriptorMappingSourceShaderRecordIndexEXT
heapOffset
shaderRecordOffset
heapIndexStride
heapArrayStride
pEmbeddedSampler'
(bool32ToBool useCombinedImageSamplerIndex)
samplerHeapOffset
samplerShaderRecordOffset
samplerHeapIndexStride
samplerHeapArrayStride
instance Zero DescriptorMappingSourceShaderRecordIndexEXT where
zero :: DescriptorMappingSourceShaderRecordIndexEXT
zero = Word32
-> Word32
-> Word32
-> Word32
-> Maybe (SomeStruct SamplerCreateInfo)
-> Bool
-> Word32
-> Word32
-> Word32
-> Word32
-> DescriptorMappingSourceShaderRecordIndexEXT
DescriptorMappingSourceShaderRecordIndexEXT
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Maybe (SomeStruct SamplerCreateInfo)
forall a. Maybe a
Nothing
Bool
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data DescriptorMappingSourceIndirectAddressEXT = DescriptorMappingSourceIndirectAddressEXT
{
DescriptorMappingSourceIndirectAddressEXT -> Word32
pushOffset :: Word32
,
DescriptorMappingSourceIndirectAddressEXT -> Word32
addressOffset :: Word32
}
deriving (Typeable, DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> Bool
(DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> Bool)
-> (DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> Bool)
-> Eq DescriptorMappingSourceIndirectAddressEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> Bool
== :: DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> Bool
$c/= :: DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> Bool
/= :: DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorMappingSourceIndirectAddressEXT)
#endif
deriving instance Show DescriptorMappingSourceIndirectAddressEXT
instance ToCStruct DescriptorMappingSourceIndirectAddressEXT where
withCStruct :: forall b.
DescriptorMappingSourceIndirectAddressEXT
-> (Ptr DescriptorMappingSourceIndirectAddressEXT -> IO b) -> IO b
withCStruct DescriptorMappingSourceIndirectAddressEXT
x Ptr DescriptorMappingSourceIndirectAddressEXT -> IO b
f = Int
-> (Ptr DescriptorMappingSourceIndirectAddressEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
8 ((Ptr DescriptorMappingSourceIndirectAddressEXT -> IO b) -> IO b)
-> (Ptr DescriptorMappingSourceIndirectAddressEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorMappingSourceIndirectAddressEXT
p -> Ptr DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> IO b -> IO b
forall b.
Ptr DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceIndirectAddressEXT
p DescriptorMappingSourceIndirectAddressEXT
x (Ptr DescriptorMappingSourceIndirectAddressEXT -> IO b
f Ptr DescriptorMappingSourceIndirectAddressEXT
p)
pokeCStruct :: forall b.
Ptr DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceIndirectAddressEXT
p DescriptorMappingSourceIndirectAddressEXT{Word32
pushOffset :: DescriptorMappingSourceIndirectAddressEXT -> Word32
addressOffset :: DescriptorMappingSourceIndirectAddressEXT -> Word32
pushOffset :: Word32
addressOffset :: Word32
..} IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectAddressEXT
p Ptr DescriptorMappingSourceIndirectAddressEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
pushOffset)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectAddressEXT
p Ptr DescriptorMappingSourceIndirectAddressEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
addressOffset)
IO b
f
cStructSize :: Int
cStructSize = Int
8
cStructAlignment :: Int
cStructAlignment = Int
4
pokeZeroCStruct :: forall b.
Ptr DescriptorMappingSourceIndirectAddressEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorMappingSourceIndirectAddressEXT
p IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectAddressEXT
p Ptr DescriptorMappingSourceIndirectAddressEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorMappingSourceIndirectAddressEXT
p Ptr DescriptorMappingSourceIndirectAddressEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorMappingSourceIndirectAddressEXT where
peekCStruct :: Ptr DescriptorMappingSourceIndirectAddressEXT
-> IO DescriptorMappingSourceIndirectAddressEXT
peekCStruct Ptr DescriptorMappingSourceIndirectAddressEXT
p = do
pushOffset <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr DescriptorMappingSourceIndirectAddressEXT
p Ptr DescriptorMappingSourceIndirectAddressEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
addressOffset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
pure $ DescriptorMappingSourceIndirectAddressEXT
pushOffset addressOffset
instance Storable DescriptorMappingSourceIndirectAddressEXT where
sizeOf :: DescriptorMappingSourceIndirectAddressEXT -> Int
sizeOf ~DescriptorMappingSourceIndirectAddressEXT
_ = Int
8
alignment :: DescriptorMappingSourceIndirectAddressEXT -> Int
alignment ~DescriptorMappingSourceIndirectAddressEXT
_ = Int
4
peek :: Ptr DescriptorMappingSourceIndirectAddressEXT
-> IO DescriptorMappingSourceIndirectAddressEXT
peek = Ptr DescriptorMappingSourceIndirectAddressEXT
-> IO DescriptorMappingSourceIndirectAddressEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> IO ()
poke Ptr DescriptorMappingSourceIndirectAddressEXT
ptr DescriptorMappingSourceIndirectAddressEXT
poked = Ptr DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> IO () -> IO ()
forall b.
Ptr DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceIndirectAddressEXT
ptr DescriptorMappingSourceIndirectAddressEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DescriptorMappingSourceIndirectAddressEXT where
zero :: DescriptorMappingSourceIndirectAddressEXT
zero = Word32 -> Word32 -> DescriptorMappingSourceIndirectAddressEXT
DescriptorMappingSourceIndirectAddressEXT
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data DescriptorSetAndBindingMappingEXT (es :: [Type]) = DescriptorSetAndBindingMappingEXT
{
forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> Chain es
next :: Chain es
,
forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
descriptorSet :: Word32
,
forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
firstBinding :: Word32
,
forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
bindingCount :: Word32
,
forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> SpirvResourceTypeFlagsEXT
resourceMask :: SpirvResourceTypeFlagsEXT
,
forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> DescriptorMappingSourceEXT
source :: DescriptorMappingSourceEXT
,
forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es
-> DescriptorMappingSourceDataEXT
sourceData :: DescriptorMappingSourceDataEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorSetAndBindingMappingEXT (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (DescriptorSetAndBindingMappingEXT es)
instance Extensible DescriptorSetAndBindingMappingEXT where
extensibleTypeName :: String
extensibleTypeName = String
"DescriptorSetAndBindingMappingEXT"
setNext :: forall (ds :: [*]) (es :: [*]).
DescriptorSetAndBindingMappingEXT ds
-> Chain es -> DescriptorSetAndBindingMappingEXT es
setNext DescriptorSetAndBindingMappingEXT{Word32
Chain ds
SpirvResourceTypeFlagsEXT
DescriptorMappingSourceEXT
DescriptorMappingSourceDataEXT
next :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> Chain es
descriptorSet :: forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
firstBinding :: forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
bindingCount :: forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
resourceMask :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> SpirvResourceTypeFlagsEXT
source :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> DescriptorMappingSourceEXT
sourceData :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es
-> DescriptorMappingSourceDataEXT
next :: Chain ds
descriptorSet :: Word32
firstBinding :: Word32
bindingCount :: Word32
resourceMask :: SpirvResourceTypeFlagsEXT
source :: DescriptorMappingSourceEXT
sourceData :: DescriptorMappingSourceDataEXT
..} Chain es
next' = DescriptorSetAndBindingMappingEXT{next :: Chain es
next = Chain es
next', Word32
SpirvResourceTypeFlagsEXT
DescriptorMappingSourceEXT
DescriptorMappingSourceDataEXT
descriptorSet :: Word32
firstBinding :: Word32
bindingCount :: Word32
resourceMask :: SpirvResourceTypeFlagsEXT
source :: DescriptorMappingSourceEXT
sourceData :: DescriptorMappingSourceDataEXT
descriptorSet :: Word32
firstBinding :: Word32
bindingCount :: Word32
resourceMask :: SpirvResourceTypeFlagsEXT
source :: DescriptorMappingSourceEXT
sourceData :: DescriptorMappingSourceDataEXT
..}
getNext :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> Chain es
getNext DescriptorSetAndBindingMappingEXT{Word32
Chain es
SpirvResourceTypeFlagsEXT
DescriptorMappingSourceEXT
DescriptorMappingSourceDataEXT
next :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> Chain es
descriptorSet :: forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
firstBinding :: forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
bindingCount :: forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
resourceMask :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> SpirvResourceTypeFlagsEXT
source :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> DescriptorMappingSourceEXT
sourceData :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es
-> DescriptorMappingSourceDataEXT
next :: Chain es
descriptorSet :: Word32
firstBinding :: Word32
bindingCount :: Word32
resourceMask :: SpirvResourceTypeFlagsEXT
source :: DescriptorMappingSourceEXT
sourceData :: DescriptorMappingSourceDataEXT
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorSetAndBindingMappingEXT e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e
-> (Extends DescriptorSetAndBindingMappingEXT e => b) -> Maybe b
extends proxy e
_ Extends DescriptorSetAndBindingMappingEXT e => b
f
| Just e :~: PushConstantBankInfoNV
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 @PushConstantBankInfoNV = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends DescriptorSetAndBindingMappingEXT e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance ( Extendss DescriptorSetAndBindingMappingEXT es
, PokeChain es ) => ToCStruct (DescriptorSetAndBindingMappingEXT es) where
withCStruct :: forall b.
DescriptorSetAndBindingMappingEXT es
-> (Ptr (DescriptorSetAndBindingMappingEXT es) -> IO b) -> IO b
withCStruct DescriptorSetAndBindingMappingEXT es
x Ptr (DescriptorSetAndBindingMappingEXT es) -> IO b
f = Int -> (Ptr (DescriptorSetAndBindingMappingEXT es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
96 ((Ptr (DescriptorSetAndBindingMappingEXT es) -> IO b) -> IO b)
-> (Ptr (DescriptorSetAndBindingMappingEXT es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (DescriptorSetAndBindingMappingEXT es)
p -> Ptr (DescriptorSetAndBindingMappingEXT es)
-> DescriptorSetAndBindingMappingEXT es -> IO b -> IO b
forall b.
Ptr (DescriptorSetAndBindingMappingEXT es)
-> DescriptorSetAndBindingMappingEXT es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (DescriptorSetAndBindingMappingEXT es)
p DescriptorSetAndBindingMappingEXT es
x (Ptr (DescriptorSetAndBindingMappingEXT es) -> IO b
f Ptr (DescriptorSetAndBindingMappingEXT es)
p)
pokeCStruct :: forall b.
Ptr (DescriptorSetAndBindingMappingEXT es)
-> DescriptorSetAndBindingMappingEXT es -> IO b -> IO b
pokeCStruct Ptr (DescriptorSetAndBindingMappingEXT es)
p DescriptorSetAndBindingMappingEXT{Word32
Chain es
SpirvResourceTypeFlagsEXT
DescriptorMappingSourceEXT
DescriptorMappingSourceDataEXT
next :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> Chain es
descriptorSet :: forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
firstBinding :: forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
bindingCount :: forall (es :: [*]). DescriptorSetAndBindingMappingEXT es -> Word32
resourceMask :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> SpirvResourceTypeFlagsEXT
source :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es -> DescriptorMappingSourceEXT
sourceData :: forall (es :: [*]).
DescriptorSetAndBindingMappingEXT es
-> DescriptorMappingSourceDataEXT
next :: Chain es
descriptorSet :: Word32
firstBinding :: Word32
bindingCount :: Word32
resourceMask :: SpirvResourceTypeFlagsEXT
source :: DescriptorMappingSourceEXT
sourceData :: DescriptorMappingSourceDataEXT
..} 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 (DescriptorSetAndBindingMappingEXT es)
p Ptr (DescriptorSetAndBindingMappingEXT es)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT)
pNext'' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (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) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (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 (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (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 Word32)) (descriptorSet)
lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (firstBinding)
lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (bindingCount)
lift $ poke ((p `plusPtr` 28 :: Ptr SpirvResourceTypeFlagsEXT)) (resourceMask)
lift $ poke ((p `plusPtr` 32 :: Ptr DescriptorMappingSourceEXT)) (source)
ContT $ pokeCStruct ((p `plusPtr` 40 :: Ptr DescriptorMappingSourceDataEXT)) (sourceData) . ($ ())
lift $ f
cStructSize :: Int
cStructSize = Int
96
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr (DescriptorSetAndBindingMappingEXT es) -> IO b -> IO b
pokeZeroCStruct Ptr (DescriptorSetAndBindingMappingEXT 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 (DescriptorSetAndBindingMappingEXT es)
p Ptr (DescriptorSetAndBindingMappingEXT es)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT)
pNext' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (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) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (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 (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (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 Word32)) (zero)
lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)
lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
lift $ poke ((p `plusPtr` 28 :: Ptr SpirvResourceTypeFlagsEXT)) (zero)
lift $ poke ((p `plusPtr` 32 :: Ptr DescriptorMappingSourceEXT)) (zero)
ContT $ pokeCStruct ((p `plusPtr` 40 :: Ptr DescriptorMappingSourceDataEXT)) (zero) . ($ ())
lift $ f
instance es ~ '[] => Zero (DescriptorSetAndBindingMappingEXT es) where
zero :: DescriptorSetAndBindingMappingEXT es
zero = Chain es
-> Word32
-> Word32
-> Word32
-> SpirvResourceTypeFlagsEXT
-> DescriptorMappingSourceEXT
-> DescriptorMappingSourceDataEXT
-> DescriptorSetAndBindingMappingEXT es
forall (es :: [*]).
Chain es
-> Word32
-> Word32
-> Word32
-> SpirvResourceTypeFlagsEXT
-> DescriptorMappingSourceEXT
-> DescriptorMappingSourceDataEXT
-> DescriptorSetAndBindingMappingEXT es
DescriptorSetAndBindingMappingEXT
()
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
SpirvResourceTypeFlagsEXT
forall a. Zero a => a
zero
DescriptorMappingSourceEXT
forall a. Zero a => a
zero
DescriptorMappingSourceDataEXT
forall a. Zero a => a
zero
data ShaderDescriptorSetAndBindingMappingInfoEXT = ShaderDescriptorSetAndBindingMappingInfoEXT
{
ShaderDescriptorSetAndBindingMappingInfoEXT
-> Vector (SomeStruct DescriptorSetAndBindingMappingEXT)
mappings :: Vector (SomeStruct DescriptorSetAndBindingMappingEXT) }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ShaderDescriptorSetAndBindingMappingInfoEXT)
#endif
deriving instance Show ShaderDescriptorSetAndBindingMappingInfoEXT
instance ToCStruct ShaderDescriptorSetAndBindingMappingInfoEXT where
withCStruct :: forall b.
ShaderDescriptorSetAndBindingMappingInfoEXT
-> (Ptr ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b)
-> IO b
withCStruct ShaderDescriptorSetAndBindingMappingInfoEXT
x Ptr ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b
f = Int
-> (Ptr ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b) -> IO b)
-> (Ptr ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
p -> Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
-> ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b -> IO b
forall b.
Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
-> ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
p ShaderDescriptorSetAndBindingMappingInfoEXT
x (Ptr ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b
f Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
p)
pokeCStruct :: forall b.
Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
-> ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b -> IO b
pokeCStruct Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
p ShaderDescriptorSetAndBindingMappingInfoEXT{Vector (SomeStruct DescriptorSetAndBindingMappingEXT)
mappings :: ShaderDescriptorSetAndBindingMappingInfoEXT
-> Vector (SomeStruct DescriptorSetAndBindingMappingEXT)
mappings :: Vector (SomeStruct DescriptorSetAndBindingMappingEXT)
..} 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 ShaderDescriptorSetAndBindingMappingInfoEXT
p Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
p Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
p Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) ((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector (SomeStruct DescriptorSetAndBindingMappingEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct DescriptorSetAndBindingMappingEXT) -> Int)
-> Vector (SomeStruct DescriptorSetAndBindingMappingEXT) -> Int
forall a b. (a -> b) -> a -> b
$ (Vector (SomeStruct DescriptorSetAndBindingMappingEXT)
mappings)) :: Word32))
pPMappings' <- ((Ptr (DescriptorSetAndBindingMappingEXT (ZonkAny 10)) -> IO b)
-> IO b)
-> ContT
b IO (Ptr (DescriptorSetAndBindingMappingEXT (ZonkAny 10)))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (DescriptorSetAndBindingMappingEXT (ZonkAny 10)) -> IO b)
-> IO b)
-> ContT
b IO (Ptr (DescriptorSetAndBindingMappingEXT (ZonkAny 10))))
-> ((Ptr (DescriptorSetAndBindingMappingEXT (ZonkAny 10)) -> IO b)
-> IO b)
-> ContT
b IO (Ptr (DescriptorSetAndBindingMappingEXT (ZonkAny 10)))
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @(DescriptorSetAndBindingMappingEXT _) ((Vector (SomeStruct DescriptorSetAndBindingMappingEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct DescriptorSetAndBindingMappingEXT)
mappings)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
96)
Data.Vector.imapM_ (\Int
i SomeStruct DescriptorSetAndBindingMappingEXT
e -> ((() -> IO b) -> IO b) -> ContT b IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (SomeStruct DescriptorSetAndBindingMappingEXT)
-> SomeStruct DescriptorSetAndBindingMappingEXT -> IO b -> IO b
forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
Ptr (SomeStruct a) -> SomeStruct a -> IO b -> IO b
pokeSomeCStruct (Ptr (DescriptorSetAndBindingMappingEXT (ZonkAny 11))
-> Ptr (SomeStruct DescriptorSetAndBindingMappingEXT)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (DescriptorSetAndBindingMappingEXT (ZonkAny 10))
pPMappings' Ptr (DescriptorSetAndBindingMappingEXT (ZonkAny 10))
-> Int -> Ptr (DescriptorSetAndBindingMappingEXT w)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
96 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (DescriptorSetAndBindingMappingEXT _))) (SomeStruct DescriptorSetAndBindingMappingEXT
e) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())) (mappings)
lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr (DescriptorSetAndBindingMappingEXT _)))) (pPMappings')
lift $ f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr ShaderDescriptorSetAndBindingMappingInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
p Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
p Ptr ShaderDescriptorSetAndBindingMappingInfoEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
IO b
f
instance Zero ShaderDescriptorSetAndBindingMappingInfoEXT where
zero :: ShaderDescriptorSetAndBindingMappingInfoEXT
zero = Vector (SomeStruct DescriptorSetAndBindingMappingEXT)
-> ShaderDescriptorSetAndBindingMappingInfoEXT
ShaderDescriptorSetAndBindingMappingInfoEXT
Vector (SomeStruct DescriptorSetAndBindingMappingEXT)
forall a. Monoid a => a
mempty
data SamplerCustomBorderColorIndexCreateInfoEXT = SamplerCustomBorderColorIndexCreateInfoEXT
{
SamplerCustomBorderColorIndexCreateInfoEXT -> Word32
index :: Word32 }
deriving (Typeable, SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> Bool
(SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> Bool)
-> (SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> Bool)
-> Eq SamplerCustomBorderColorIndexCreateInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> Bool
== :: SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> Bool
$c/= :: SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> Bool
/= :: SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (SamplerCustomBorderColorIndexCreateInfoEXT)
#endif
deriving instance Show SamplerCustomBorderColorIndexCreateInfoEXT
instance ToCStruct SamplerCustomBorderColorIndexCreateInfoEXT where
withCStruct :: forall b.
SamplerCustomBorderColorIndexCreateInfoEXT
-> (Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> IO b) -> IO b
withCStruct SamplerCustomBorderColorIndexCreateInfoEXT
x Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> IO b
f = Int
-> (Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> IO b) -> IO b)
-> (Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p -> Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> IO b -> IO b
forall b.
Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p SamplerCustomBorderColorIndexCreateInfoEXT
x (Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> IO b
f Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p SamplerCustomBorderColorIndexCreateInfoEXT{Word32
index :: SamplerCustomBorderColorIndexCreateInfoEXT -> Word32
index :: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
index)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct SamplerCustomBorderColorIndexCreateInfoEXT where
peekCStruct :: Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> IO SamplerCustomBorderColorIndexCreateInfoEXT
peekCStruct Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p = do
index <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr SamplerCustomBorderColorIndexCreateInfoEXT
p Ptr SamplerCustomBorderColorIndexCreateInfoEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
pure $ SamplerCustomBorderColorIndexCreateInfoEXT
index
instance Storable SamplerCustomBorderColorIndexCreateInfoEXT where
sizeOf :: SamplerCustomBorderColorIndexCreateInfoEXT -> Int
sizeOf ~SamplerCustomBorderColorIndexCreateInfoEXT
_ = Int
24
alignment :: SamplerCustomBorderColorIndexCreateInfoEXT -> Int
alignment ~SamplerCustomBorderColorIndexCreateInfoEXT
_ = Int
8
peek :: Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> IO SamplerCustomBorderColorIndexCreateInfoEXT
peek = Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> IO SamplerCustomBorderColorIndexCreateInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> IO ()
poke Ptr SamplerCustomBorderColorIndexCreateInfoEXT
ptr SamplerCustomBorderColorIndexCreateInfoEXT
poked = Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> IO () -> IO ()
forall b.
Ptr SamplerCustomBorderColorIndexCreateInfoEXT
-> SamplerCustomBorderColorIndexCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SamplerCustomBorderColorIndexCreateInfoEXT
ptr SamplerCustomBorderColorIndexCreateInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero SamplerCustomBorderColorIndexCreateInfoEXT where
zero :: SamplerCustomBorderColorIndexCreateInfoEXT
zero = Word32 -> SamplerCustomBorderColorIndexCreateInfoEXT
SamplerCustomBorderColorIndexCreateInfoEXT
Word32
forall a. Zero a => a
zero
data OpaqueCaptureDataCreateInfoEXT = OpaqueCaptureDataCreateInfoEXT
{
OpaqueCaptureDataCreateInfoEXT -> Maybe HostAddressRangeConstEXT
data' :: Maybe HostAddressRangeConstEXT }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (OpaqueCaptureDataCreateInfoEXT)
#endif
deriving instance Show OpaqueCaptureDataCreateInfoEXT
instance ToCStruct OpaqueCaptureDataCreateInfoEXT where
withCStruct :: forall b.
OpaqueCaptureDataCreateInfoEXT
-> (Ptr OpaqueCaptureDataCreateInfoEXT -> IO b) -> IO b
withCStruct OpaqueCaptureDataCreateInfoEXT
x Ptr OpaqueCaptureDataCreateInfoEXT -> IO b
f = Int -> (Ptr OpaqueCaptureDataCreateInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr OpaqueCaptureDataCreateInfoEXT -> IO b) -> IO b)
-> (Ptr OpaqueCaptureDataCreateInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr OpaqueCaptureDataCreateInfoEXT
p -> Ptr OpaqueCaptureDataCreateInfoEXT
-> OpaqueCaptureDataCreateInfoEXT -> IO b -> IO b
forall b.
Ptr OpaqueCaptureDataCreateInfoEXT
-> OpaqueCaptureDataCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr OpaqueCaptureDataCreateInfoEXT
p OpaqueCaptureDataCreateInfoEXT
x (Ptr OpaqueCaptureDataCreateInfoEXT -> IO b
f Ptr OpaqueCaptureDataCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr OpaqueCaptureDataCreateInfoEXT
-> OpaqueCaptureDataCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr OpaqueCaptureDataCreateInfoEXT
p OpaqueCaptureDataCreateInfoEXT{Maybe HostAddressRangeConstEXT
data' :: OpaqueCaptureDataCreateInfoEXT -> Maybe HostAddressRangeConstEXT
data' :: Maybe HostAddressRangeConstEXT
..} 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 OpaqueCaptureDataCreateInfoEXT
p Ptr OpaqueCaptureDataCreateInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpaqueCaptureDataCreateInfoEXT
p Ptr OpaqueCaptureDataCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
pData'' <- case (Maybe HostAddressRangeConstEXT
data') of
Maybe HostAddressRangeConstEXT
Nothing -> Ptr HostAddressRangeConstEXT
-> ContT b IO (Ptr HostAddressRangeConstEXT)
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr HostAddressRangeConstEXT
forall a. Ptr a
nullPtr
Just HostAddressRangeConstEXT
j -> ((Ptr HostAddressRangeConstEXT -> IO b) -> IO b)
-> ContT b IO (Ptr HostAddressRangeConstEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr HostAddressRangeConstEXT -> IO b) -> IO b)
-> ContT b IO (Ptr HostAddressRangeConstEXT))
-> ((Ptr HostAddressRangeConstEXT -> IO b) -> IO b)
-> ContT b IO (Ptr HostAddressRangeConstEXT)
forall a b. (a -> b) -> a -> b
$ HostAddressRangeConstEXT
-> (Ptr HostAddressRangeConstEXT -> IO b) -> IO b
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
HostAddressRangeConstEXT
-> (Ptr HostAddressRangeConstEXT -> IO b) -> IO b
withCStruct (HostAddressRangeConstEXT
j)
lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr HostAddressRangeConstEXT))) pData''
lift $ f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr OpaqueCaptureDataCreateInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr OpaqueCaptureDataCreateInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpaqueCaptureDataCreateInfoEXT
p Ptr OpaqueCaptureDataCreateInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr OpaqueCaptureDataCreateInfoEXT
p Ptr OpaqueCaptureDataCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
IO b
f
instance FromCStruct OpaqueCaptureDataCreateInfoEXT where
peekCStruct :: Ptr OpaqueCaptureDataCreateInfoEXT
-> IO OpaqueCaptureDataCreateInfoEXT
peekCStruct Ptr OpaqueCaptureDataCreateInfoEXT
p = do
pData <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr HostAddressRangeConstEXT) ((Ptr OpaqueCaptureDataCreateInfoEXT
p Ptr OpaqueCaptureDataCreateInfoEXT
-> Int -> Ptr (Ptr HostAddressRangeConstEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr HostAddressRangeConstEXT)))
pData' <- maybePeek (\Ptr HostAddressRangeConstEXT
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @HostAddressRangeConstEXT (Ptr HostAddressRangeConstEXT
j)) pData
pure $ OpaqueCaptureDataCreateInfoEXT
pData'
instance Zero OpaqueCaptureDataCreateInfoEXT where
zero :: OpaqueCaptureDataCreateInfoEXT
zero = Maybe HostAddressRangeConstEXT -> OpaqueCaptureDataCreateInfoEXT
OpaqueCaptureDataCreateInfoEXT
Maybe HostAddressRangeConstEXT
forall a. Maybe a
Nothing
data IndirectCommandsLayoutPushDataTokenNV = IndirectCommandsLayoutPushDataTokenNV
{
IndirectCommandsLayoutPushDataTokenNV -> Word32
pushDataOffset :: Word32
,
IndirectCommandsLayoutPushDataTokenNV -> Word32
pushDataSize :: Word32
}
deriving (Typeable, IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> Bool
(IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> Bool)
-> (IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> Bool)
-> Eq IndirectCommandsLayoutPushDataTokenNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> Bool
== :: IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> Bool
$c/= :: IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> Bool
/= :: IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (IndirectCommandsLayoutPushDataTokenNV)
#endif
deriving instance Show IndirectCommandsLayoutPushDataTokenNV
instance ToCStruct IndirectCommandsLayoutPushDataTokenNV where
withCStruct :: forall b.
IndirectCommandsLayoutPushDataTokenNV
-> (Ptr IndirectCommandsLayoutPushDataTokenNV -> IO b) -> IO b
withCStruct IndirectCommandsLayoutPushDataTokenNV
x Ptr IndirectCommandsLayoutPushDataTokenNV -> IO b
f = Int -> (Ptr IndirectCommandsLayoutPushDataTokenNV -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr IndirectCommandsLayoutPushDataTokenNV -> IO b) -> IO b)
-> (Ptr IndirectCommandsLayoutPushDataTokenNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr IndirectCommandsLayoutPushDataTokenNV
p -> Ptr IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> IO b -> IO b
forall b.
Ptr IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr IndirectCommandsLayoutPushDataTokenNV
p IndirectCommandsLayoutPushDataTokenNV
x (Ptr IndirectCommandsLayoutPushDataTokenNV -> IO b
f Ptr IndirectCommandsLayoutPushDataTokenNV
p)
pokeCStruct :: forall b.
Ptr IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> IO b -> IO b
pokeCStruct Ptr IndirectCommandsLayoutPushDataTokenNV
p IndirectCommandsLayoutPushDataTokenNV{Word32
pushDataOffset :: IndirectCommandsLayoutPushDataTokenNV -> Word32
pushDataSize :: IndirectCommandsLayoutPushDataTokenNV -> Word32
pushDataOffset :: Word32
pushDataSize :: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr IndirectCommandsLayoutPushDataTokenNV
p Ptr IndirectCommandsLayoutPushDataTokenNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr IndirectCommandsLayoutPushDataTokenNV
p Ptr IndirectCommandsLayoutPushDataTokenNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr IndirectCommandsLayoutPushDataTokenNV
p Ptr IndirectCommandsLayoutPushDataTokenNV -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
pushDataOffset)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr IndirectCommandsLayoutPushDataTokenNV
p Ptr IndirectCommandsLayoutPushDataTokenNV -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Word32
pushDataSize)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr IndirectCommandsLayoutPushDataTokenNV -> IO b -> IO b
pokeZeroCStruct Ptr IndirectCommandsLayoutPushDataTokenNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr IndirectCommandsLayoutPushDataTokenNV
p Ptr IndirectCommandsLayoutPushDataTokenNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr IndirectCommandsLayoutPushDataTokenNV
p Ptr IndirectCommandsLayoutPushDataTokenNV -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr IndirectCommandsLayoutPushDataTokenNV
p Ptr IndirectCommandsLayoutPushDataTokenNV -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr IndirectCommandsLayoutPushDataTokenNV
p Ptr IndirectCommandsLayoutPushDataTokenNV -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct IndirectCommandsLayoutPushDataTokenNV where
peekCStruct :: Ptr IndirectCommandsLayoutPushDataTokenNV
-> IO IndirectCommandsLayoutPushDataTokenNV
peekCStruct Ptr IndirectCommandsLayoutPushDataTokenNV
p = do
pushDataOffset <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr IndirectCommandsLayoutPushDataTokenNV
p Ptr IndirectCommandsLayoutPushDataTokenNV -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
pushDataSize <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
pure $ IndirectCommandsLayoutPushDataTokenNV
pushDataOffset pushDataSize
instance Storable IndirectCommandsLayoutPushDataTokenNV where
sizeOf :: IndirectCommandsLayoutPushDataTokenNV -> Int
sizeOf ~IndirectCommandsLayoutPushDataTokenNV
_ = Int
24
alignment :: IndirectCommandsLayoutPushDataTokenNV -> Int
alignment ~IndirectCommandsLayoutPushDataTokenNV
_ = Int
8
peek :: Ptr IndirectCommandsLayoutPushDataTokenNV
-> IO IndirectCommandsLayoutPushDataTokenNV
peek = Ptr IndirectCommandsLayoutPushDataTokenNV
-> IO IndirectCommandsLayoutPushDataTokenNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> IO ()
poke Ptr IndirectCommandsLayoutPushDataTokenNV
ptr IndirectCommandsLayoutPushDataTokenNV
poked = Ptr IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> IO () -> IO ()
forall b.
Ptr IndirectCommandsLayoutPushDataTokenNV
-> IndirectCommandsLayoutPushDataTokenNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr IndirectCommandsLayoutPushDataTokenNV
ptr IndirectCommandsLayoutPushDataTokenNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero IndirectCommandsLayoutPushDataTokenNV where
zero :: IndirectCommandsLayoutPushDataTokenNV
zero = Word32 -> Word32 -> IndirectCommandsLayoutPushDataTokenNV
IndirectCommandsLayoutPushDataTokenNV
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data SubsampledImageFormatPropertiesEXT = SubsampledImageFormatPropertiesEXT
{
SubsampledImageFormatPropertiesEXT -> Word32
subsampledImageDescriptorCount :: Word32 }
deriving (Typeable, SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> Bool
(SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> Bool)
-> (SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> Bool)
-> Eq SubsampledImageFormatPropertiesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> Bool
== :: SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> Bool
$c/= :: SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> Bool
/= :: SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (SubsampledImageFormatPropertiesEXT)
#endif
deriving instance Show SubsampledImageFormatPropertiesEXT
instance ToCStruct SubsampledImageFormatPropertiesEXT where
withCStruct :: forall b.
SubsampledImageFormatPropertiesEXT
-> (Ptr SubsampledImageFormatPropertiesEXT -> IO b) -> IO b
withCStruct SubsampledImageFormatPropertiesEXT
x Ptr SubsampledImageFormatPropertiesEXT -> IO b
f = Int -> (Ptr SubsampledImageFormatPropertiesEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr SubsampledImageFormatPropertiesEXT -> IO b) -> IO b)
-> (Ptr SubsampledImageFormatPropertiesEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr SubsampledImageFormatPropertiesEXT
p -> Ptr SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> IO b -> IO b
forall b.
Ptr SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SubsampledImageFormatPropertiesEXT
p SubsampledImageFormatPropertiesEXT
x (Ptr SubsampledImageFormatPropertiesEXT -> IO b
f Ptr SubsampledImageFormatPropertiesEXT
p)
pokeCStruct :: forall b.
Ptr SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> IO b -> IO b
pokeCStruct Ptr SubsampledImageFormatPropertiesEXT
p SubsampledImageFormatPropertiesEXT{Word32
subsampledImageDescriptorCount :: SubsampledImageFormatPropertiesEXT -> Word32
subsampledImageDescriptorCount :: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubsampledImageFormatPropertiesEXT
p Ptr SubsampledImageFormatPropertiesEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubsampledImageFormatPropertiesEXT
p Ptr SubsampledImageFormatPropertiesEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubsampledImageFormatPropertiesEXT
p Ptr SubsampledImageFormatPropertiesEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
subsampledImageDescriptorCount)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr SubsampledImageFormatPropertiesEXT -> IO b -> IO b
pokeZeroCStruct Ptr SubsampledImageFormatPropertiesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubsampledImageFormatPropertiesEXT
p Ptr SubsampledImageFormatPropertiesEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubsampledImageFormatPropertiesEXT
p Ptr SubsampledImageFormatPropertiesEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubsampledImageFormatPropertiesEXT
p Ptr SubsampledImageFormatPropertiesEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct SubsampledImageFormatPropertiesEXT where
peekCStruct :: Ptr SubsampledImageFormatPropertiesEXT
-> IO SubsampledImageFormatPropertiesEXT
peekCStruct Ptr SubsampledImageFormatPropertiesEXT
p = do
subsampledImageDescriptorCount <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr SubsampledImageFormatPropertiesEXT
p Ptr SubsampledImageFormatPropertiesEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
pure $ SubsampledImageFormatPropertiesEXT
subsampledImageDescriptorCount
instance Storable SubsampledImageFormatPropertiesEXT where
sizeOf :: SubsampledImageFormatPropertiesEXT -> Int
sizeOf ~SubsampledImageFormatPropertiesEXT
_ = Int
24
alignment :: SubsampledImageFormatPropertiesEXT -> Int
alignment ~SubsampledImageFormatPropertiesEXT
_ = Int
8
peek :: Ptr SubsampledImageFormatPropertiesEXT
-> IO SubsampledImageFormatPropertiesEXT
peek = Ptr SubsampledImageFormatPropertiesEXT
-> IO SubsampledImageFormatPropertiesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> IO ()
poke Ptr SubsampledImageFormatPropertiesEXT
ptr SubsampledImageFormatPropertiesEXT
poked = Ptr SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> IO () -> IO ()
forall b.
Ptr SubsampledImageFormatPropertiesEXT
-> SubsampledImageFormatPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SubsampledImageFormatPropertiesEXT
ptr SubsampledImageFormatPropertiesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero SubsampledImageFormatPropertiesEXT where
zero :: SubsampledImageFormatPropertiesEXT
zero = Word32 -> SubsampledImageFormatPropertiesEXT
SubsampledImageFormatPropertiesEXT
Word32
forall a. Zero a => a
zero
data PhysicalDeviceDescriptorHeapFeaturesEXT = PhysicalDeviceDescriptorHeapFeaturesEXT
{
PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool
descriptorHeap :: Bool
,
PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool
descriptorHeapCaptureReplay :: Bool
}
deriving (Typeable, PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool
(PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool)
-> (PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool)
-> Eq PhysicalDeviceDescriptorHeapFeaturesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool
== :: PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool
$c/= :: PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool
/= :: PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceDescriptorHeapFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceDescriptorHeapFeaturesEXT
instance ToCStruct PhysicalDeviceDescriptorHeapFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceDescriptorHeapFeaturesEXT
-> (Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceDescriptorHeapFeaturesEXT
x Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b) -> IO b)
-> (Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p -> Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b -> IO b
forall b.
Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p PhysicalDeviceDescriptorHeapFeaturesEXT
x (Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b
f Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p PhysicalDeviceDescriptorHeapFeaturesEXT{Bool
descriptorHeap :: PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool
descriptorHeapCaptureReplay :: PhysicalDeviceDescriptorHeapFeaturesEXT -> Bool
descriptorHeap :: Bool
descriptorHeapCaptureReplay :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
descriptorHeap))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
descriptorHeapCaptureReplay))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> 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 PhysicalDeviceDescriptorHeapFeaturesEXT
p Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> 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))
IO b
f
instance FromCStruct PhysicalDeviceDescriptorHeapFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> IO PhysicalDeviceDescriptorHeapFeaturesEXT
peekCStruct Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p = do
descriptorHeap <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
p Ptr PhysicalDeviceDescriptorHeapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
descriptorHeapCaptureReplay <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
pure $ PhysicalDeviceDescriptorHeapFeaturesEXT
(bool32ToBool descriptorHeap)
(bool32ToBool descriptorHeapCaptureReplay)
instance Storable PhysicalDeviceDescriptorHeapFeaturesEXT where
sizeOf :: PhysicalDeviceDescriptorHeapFeaturesEXT -> Int
sizeOf ~PhysicalDeviceDescriptorHeapFeaturesEXT
_ = Int
24
alignment :: PhysicalDeviceDescriptorHeapFeaturesEXT -> Int
alignment ~PhysicalDeviceDescriptorHeapFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> IO PhysicalDeviceDescriptorHeapFeaturesEXT
peek = Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> IO PhysicalDeviceDescriptorHeapFeaturesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
ptr PhysicalDeviceDescriptorHeapFeaturesEXT
poked = Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
-> PhysicalDeviceDescriptorHeapFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorHeapFeaturesEXT
ptr PhysicalDeviceDescriptorHeapFeaturesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceDescriptorHeapFeaturesEXT where
zero :: PhysicalDeviceDescriptorHeapFeaturesEXT
zero = Bool -> Bool -> PhysicalDeviceDescriptorHeapFeaturesEXT
PhysicalDeviceDescriptorHeapFeaturesEXT
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data PhysicalDeviceDescriptorHeapPropertiesEXT = PhysicalDeviceDescriptorHeapPropertiesEXT
{
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
samplerHeapAlignment :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
resourceHeapAlignment :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
maxSamplerHeapSize :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
maxResourceHeapSize :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
minSamplerHeapReservedRange :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
minSamplerHeapReservedRangeWithEmbedded :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
minResourceHeapReservedRange :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
samplerDescriptorSize :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
imageDescriptorSize :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
bufferDescriptorSize :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
samplerDescriptorAlignment :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
imageDescriptorAlignment :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
bufferDescriptorAlignment :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
maxPushDataSize :: DeviceSize
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
imageCaptureReplayOpaqueDataSize :: Word64
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> Word32
maxDescriptorHeapEmbeddedSamplers :: Word32
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> Word32
samplerYcbcrConversionCount :: Word32
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool
sparseDescriptorHeaps :: Bool
,
PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool
protectedDescriptorHeaps :: Bool
}
deriving (Typeable, PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool
(PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool)
-> (PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool)
-> Eq PhysicalDeviceDescriptorHeapPropertiesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool
== :: PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool
$c/= :: PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool
/= :: PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceDescriptorHeapPropertiesEXT)
#endif
deriving instance Show PhysicalDeviceDescriptorHeapPropertiesEXT
instance ToCStruct PhysicalDeviceDescriptorHeapPropertiesEXT where
withCStruct :: forall b.
PhysicalDeviceDescriptorHeapPropertiesEXT
-> (Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceDescriptorHeapPropertiesEXT
x Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
152 ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b) -> IO b)
-> (Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p -> Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b -> IO b
forall b.
Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p PhysicalDeviceDescriptorHeapPropertiesEXT
x (Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b
f Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p PhysicalDeviceDescriptorHeapPropertiesEXT{Bool
Word32
DeviceSize
samplerHeapAlignment :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
resourceHeapAlignment :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
maxSamplerHeapSize :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
maxResourceHeapSize :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
minSamplerHeapReservedRange :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
minSamplerHeapReservedRangeWithEmbedded :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
minResourceHeapReservedRange :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
samplerDescriptorSize :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
imageDescriptorSize :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
bufferDescriptorSize :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
samplerDescriptorAlignment :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
imageDescriptorAlignment :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
bufferDescriptorAlignment :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
maxPushDataSize :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
imageCaptureReplayOpaqueDataSize :: PhysicalDeviceDescriptorHeapPropertiesEXT -> DeviceSize
maxDescriptorHeapEmbeddedSamplers :: PhysicalDeviceDescriptorHeapPropertiesEXT -> Word32
samplerYcbcrConversionCount :: PhysicalDeviceDescriptorHeapPropertiesEXT -> Word32
sparseDescriptorHeaps :: PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool
protectedDescriptorHeaps :: PhysicalDeviceDescriptorHeapPropertiesEXT -> Bool
samplerHeapAlignment :: DeviceSize
resourceHeapAlignment :: DeviceSize
maxSamplerHeapSize :: DeviceSize
maxResourceHeapSize :: DeviceSize
minSamplerHeapReservedRange :: DeviceSize
minSamplerHeapReservedRangeWithEmbedded :: DeviceSize
minResourceHeapReservedRange :: DeviceSize
samplerDescriptorSize :: DeviceSize
imageDescriptorSize :: DeviceSize
bufferDescriptorSize :: DeviceSize
samplerDescriptorAlignment :: DeviceSize
imageDescriptorAlignment :: DeviceSize
bufferDescriptorAlignment :: DeviceSize
maxPushDataSize :: DeviceSize
imageCaptureReplayOpaqueDataSize :: DeviceSize
maxDescriptorHeapEmbeddedSamplers :: Word32
samplerYcbcrConversionCount :: Word32
sparseDescriptorHeaps :: Bool
protectedDescriptorHeaps :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceSize
samplerHeapAlignment)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (DeviceSize
resourceHeapAlignment)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (DeviceSize
maxSamplerHeapSize)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr DeviceSize)) (DeviceSize
maxResourceHeapSize)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr DeviceSize)) (DeviceSize
minSamplerHeapReservedRange)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr DeviceSize)) (DeviceSize
minSamplerHeapReservedRangeWithEmbedded)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr DeviceSize)) (DeviceSize
minResourceHeapReservedRange)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr DeviceSize)) (DeviceSize
samplerDescriptorSize)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr DeviceSize)) (DeviceSize
imageDescriptorSize)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr DeviceSize)) (DeviceSize
bufferDescriptorSize)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
96 :: Ptr DeviceSize)) (DeviceSize
samplerDescriptorAlignment)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
104 :: Ptr DeviceSize)) (DeviceSize
imageDescriptorAlignment)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
112 :: Ptr DeviceSize)) (DeviceSize
bufferDescriptorAlignment)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
120 :: Ptr DeviceSize)) (DeviceSize
maxPushDataSize)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
128 :: Ptr CSize)) (DeviceSize -> CSize
CSize (DeviceSize
imageCaptureReplayOpaqueDataSize))
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
136 :: Ptr Word32)) (Word32
maxDescriptorHeapEmbeddedSamplers)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
140 :: Ptr Word32)) (Word32
samplerYcbcrConversionCount)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
144 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
sparseDescriptorHeaps))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
148 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
protectedDescriptorHeaps))
IO b
f
cStructSize :: Int
cStructSize = Int
152
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
96 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
104 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
112 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
120 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
128 :: Ptr CSize)) (DeviceSize -> CSize
CSize (DeviceSize
forall a. Zero a => a
zero))
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
136 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
140 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
144 :: 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 PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
148 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceDescriptorHeapPropertiesEXT where
peekCStruct :: Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> IO PhysicalDeviceDescriptorHeapPropertiesEXT
peekCStruct Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p = do
samplerHeapAlignment <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
p Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize))
resourceHeapAlignment <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
maxSamplerHeapSize <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))
maxResourceHeapSize <- peek @DeviceSize ((p `plusPtr` 40 :: Ptr DeviceSize))
minSamplerHeapReservedRange <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize))
minSamplerHeapReservedRangeWithEmbedded <- peek @DeviceSize ((p `plusPtr` 56 :: Ptr DeviceSize))
minResourceHeapReservedRange <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize))
samplerDescriptorSize <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))
imageDescriptorSize <- peek @DeviceSize ((p `plusPtr` 80 :: Ptr DeviceSize))
bufferDescriptorSize <- peek @DeviceSize ((p `plusPtr` 88 :: Ptr DeviceSize))
samplerDescriptorAlignment <- peek @DeviceSize ((p `plusPtr` 96 :: Ptr DeviceSize))
imageDescriptorAlignment <- peek @DeviceSize ((p `plusPtr` 104 :: Ptr DeviceSize))
bufferDescriptorAlignment <- peek @DeviceSize ((p `plusPtr` 112 :: Ptr DeviceSize))
maxPushDataSize <- peek @DeviceSize ((p `plusPtr` 120 :: Ptr DeviceSize))
imageCaptureReplayOpaqueDataSize <- peek @CSize ((p `plusPtr` 128 :: Ptr CSize))
maxDescriptorHeapEmbeddedSamplers <- peek @Word32 ((p `plusPtr` 136 :: Ptr Word32))
samplerYcbcrConversionCount <- peek @Word32 ((p `plusPtr` 140 :: Ptr Word32))
sparseDescriptorHeaps <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))
protectedDescriptorHeaps <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))
pure $ PhysicalDeviceDescriptorHeapPropertiesEXT
samplerHeapAlignment
resourceHeapAlignment
maxSamplerHeapSize
maxResourceHeapSize
minSamplerHeapReservedRange
minSamplerHeapReservedRangeWithEmbedded
minResourceHeapReservedRange
samplerDescriptorSize
imageDescriptorSize
bufferDescriptorSize
samplerDescriptorAlignment
imageDescriptorAlignment
bufferDescriptorAlignment
maxPushDataSize
(coerce @CSize @Word64 imageCaptureReplayOpaqueDataSize)
maxDescriptorHeapEmbeddedSamplers
samplerYcbcrConversionCount
(bool32ToBool sparseDescriptorHeaps)
(bool32ToBool protectedDescriptorHeaps)
instance Storable PhysicalDeviceDescriptorHeapPropertiesEXT where
sizeOf :: PhysicalDeviceDescriptorHeapPropertiesEXT -> Int
sizeOf ~PhysicalDeviceDescriptorHeapPropertiesEXT
_ = Int
152
alignment :: PhysicalDeviceDescriptorHeapPropertiesEXT -> Int
alignment ~PhysicalDeviceDescriptorHeapPropertiesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> IO PhysicalDeviceDescriptorHeapPropertiesEXT
peek = Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> IO PhysicalDeviceDescriptorHeapPropertiesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> IO ()
poke Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
ptr PhysicalDeviceDescriptorHeapPropertiesEXT
poked = Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
-> PhysicalDeviceDescriptorHeapPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorHeapPropertiesEXT
ptr PhysicalDeviceDescriptorHeapPropertiesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceDescriptorHeapPropertiesEXT where
zero :: PhysicalDeviceDescriptorHeapPropertiesEXT
zero = DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> DeviceSize
-> Word32
-> Word32
-> Bool
-> Bool
-> PhysicalDeviceDescriptorHeapPropertiesEXT
PhysicalDeviceDescriptorHeapPropertiesEXT
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data CommandBufferInheritanceDescriptorHeapInfoEXT = CommandBufferInheritanceDescriptorHeapInfoEXT
{
CommandBufferInheritanceDescriptorHeapInfoEXT
-> Maybe ("bindInfo" ::: BindHeapInfoEXT)
samplerHeapBindInfo :: Maybe BindHeapInfoEXT
,
CommandBufferInheritanceDescriptorHeapInfoEXT
-> Maybe ("bindInfo" ::: BindHeapInfoEXT)
resourceHeapBindInfo :: Maybe BindHeapInfoEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CommandBufferInheritanceDescriptorHeapInfoEXT)
#endif
deriving instance Show CommandBufferInheritanceDescriptorHeapInfoEXT
instance ToCStruct CommandBufferInheritanceDescriptorHeapInfoEXT where
withCStruct :: forall b.
CommandBufferInheritanceDescriptorHeapInfoEXT
-> (Ptr CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b)
-> IO b
withCStruct CommandBufferInheritanceDescriptorHeapInfoEXT
x Ptr CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b
f = Int
-> (Ptr CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b)
-> IO b)
-> (Ptr CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p -> Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
-> CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b -> IO b
forall b.
Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
-> CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p CommandBufferInheritanceDescriptorHeapInfoEXT
x (Ptr CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b
f Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p)
pokeCStruct :: forall b.
Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
-> CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b -> IO b
pokeCStruct Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p CommandBufferInheritanceDescriptorHeapInfoEXT{Maybe ("bindInfo" ::: BindHeapInfoEXT)
samplerHeapBindInfo :: CommandBufferInheritanceDescriptorHeapInfoEXT
-> Maybe ("bindInfo" ::: BindHeapInfoEXT)
resourceHeapBindInfo :: CommandBufferInheritanceDescriptorHeapInfoEXT
-> Maybe ("bindInfo" ::: BindHeapInfoEXT)
samplerHeapBindInfo :: Maybe ("bindInfo" ::: BindHeapInfoEXT)
resourceHeapBindInfo :: Maybe ("bindInfo" ::: BindHeapInfoEXT)
..} 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 CommandBufferInheritanceDescriptorHeapInfoEXT
p Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
pSamplerHeapBindInfo'' <- case (Maybe ("bindInfo" ::: BindHeapInfoEXT)
samplerHeapBindInfo) of
Maybe ("bindInfo" ::: BindHeapInfoEXT)
Nothing -> Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> ContT b IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr ("bindInfo" ::: BindHeapInfoEXT)
forall a. Ptr a
nullPtr
Just "bindInfo" ::: BindHeapInfoEXT
j -> ((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b)
-> ContT b IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b)
-> ContT b IO (Ptr ("bindInfo" ::: BindHeapInfoEXT)))
-> ((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b)
-> ContT b IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall a b. (a -> b) -> a -> b
$ ("bindInfo" ::: BindHeapInfoEXT)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
("bindInfo" ::: BindHeapInfoEXT)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b
withCStruct ("bindInfo" ::: BindHeapInfoEXT
j)
lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr BindHeapInfoEXT))) pSamplerHeapBindInfo''
pResourceHeapBindInfo'' <- case (resourceHeapBindInfo) of
Maybe ("bindInfo" ::: BindHeapInfoEXT)
Nothing -> Ptr ("bindInfo" ::: BindHeapInfoEXT)
-> ContT b IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr ("bindInfo" ::: BindHeapInfoEXT)
forall a. Ptr a
nullPtr
Just "bindInfo" ::: BindHeapInfoEXT
j -> ((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b)
-> ContT b IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b)
-> ContT b IO (Ptr ("bindInfo" ::: BindHeapInfoEXT)))
-> ((Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b)
-> ContT b IO (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall a b. (a -> b) -> a -> b
$ ("bindInfo" ::: BindHeapInfoEXT)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
("bindInfo" ::: BindHeapInfoEXT)
-> (Ptr ("bindInfo" ::: BindHeapInfoEXT) -> IO b) -> IO b
withCStruct ("bindInfo" ::: BindHeapInfoEXT
j)
lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr BindHeapInfoEXT))) pResourceHeapBindInfo''
lift $ f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr CommandBufferInheritanceDescriptorHeapInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
IO b
f
instance FromCStruct CommandBufferInheritanceDescriptorHeapInfoEXT where
peekCStruct :: Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
-> IO CommandBufferInheritanceDescriptorHeapInfoEXT
peekCStruct Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p = do
pSamplerHeapBindInfo <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr BindHeapInfoEXT) ((Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
p Ptr CommandBufferInheritanceDescriptorHeapInfoEXT
-> Int -> Ptr (Ptr ("bindInfo" ::: BindHeapInfoEXT))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr BindHeapInfoEXT)))
pSamplerHeapBindInfo' <- maybePeek (\Ptr ("bindInfo" ::: BindHeapInfoEXT)
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @BindHeapInfoEXT (Ptr ("bindInfo" ::: BindHeapInfoEXT)
j)) pSamplerHeapBindInfo
pResourceHeapBindInfo <- peek @(Ptr BindHeapInfoEXT) ((p `plusPtr` 24 :: Ptr (Ptr BindHeapInfoEXT)))
pResourceHeapBindInfo' <- maybePeek (\Ptr ("bindInfo" ::: BindHeapInfoEXT)
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @BindHeapInfoEXT (Ptr ("bindInfo" ::: BindHeapInfoEXT)
j)) pResourceHeapBindInfo
pure $ CommandBufferInheritanceDescriptorHeapInfoEXT
pSamplerHeapBindInfo' pResourceHeapBindInfo'
instance Zero CommandBufferInheritanceDescriptorHeapInfoEXT where
zero :: CommandBufferInheritanceDescriptorHeapInfoEXT
zero = Maybe ("bindInfo" ::: BindHeapInfoEXT)
-> Maybe ("bindInfo" ::: BindHeapInfoEXT)
-> CommandBufferInheritanceDescriptorHeapInfoEXT
CommandBufferInheritanceDescriptorHeapInfoEXT
Maybe ("bindInfo" ::: BindHeapInfoEXT)
forall a. Maybe a
Nothing
Maybe ("bindInfo" ::: BindHeapInfoEXT)
forall a. Maybe a
Nothing
data PhysicalDeviceDescriptorHeapTensorPropertiesARM = PhysicalDeviceDescriptorHeapTensorPropertiesARM
{
PhysicalDeviceDescriptorHeapTensorPropertiesARM -> DeviceSize
tensorDescriptorSize :: DeviceSize
,
PhysicalDeviceDescriptorHeapTensorPropertiesARM -> DeviceSize
tensorDescriptorAlignment :: DeviceSize
,
PhysicalDeviceDescriptorHeapTensorPropertiesARM -> DeviceSize
tensorCaptureReplayOpaqueDataSize :: Word64
}
deriving (Typeable, PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> Bool
(PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> Bool)
-> (PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> Bool)
-> Eq PhysicalDeviceDescriptorHeapTensorPropertiesARM
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> Bool
== :: PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> Bool
$c/= :: PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> Bool
/= :: PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceDescriptorHeapTensorPropertiesARM)
#endif
deriving instance Show PhysicalDeviceDescriptorHeapTensorPropertiesARM
instance ToCStruct PhysicalDeviceDescriptorHeapTensorPropertiesARM where
withCStruct :: forall b.
PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> (Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b)
-> IO b
withCStruct PhysicalDeviceDescriptorHeapTensorPropertiesARM
x Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b
f = Int
-> (Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p -> Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b -> IO b
forall b.
Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p PhysicalDeviceDescriptorHeapTensorPropertiesARM
x (Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b
f Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p PhysicalDeviceDescriptorHeapTensorPropertiesARM{DeviceSize
tensorDescriptorSize :: PhysicalDeviceDescriptorHeapTensorPropertiesARM -> DeviceSize
tensorDescriptorAlignment :: PhysicalDeviceDescriptorHeapTensorPropertiesARM -> DeviceSize
tensorCaptureReplayOpaqueDataSize :: PhysicalDeviceDescriptorHeapTensorPropertiesARM -> DeviceSize
tensorDescriptorSize :: DeviceSize
tensorDescriptorAlignment :: DeviceSize
tensorCaptureReplayOpaqueDataSize :: DeviceSize
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceSize
tensorDescriptorSize)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (DeviceSize
tensorDescriptorAlignment)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CSize)) (DeviceSize -> CSize
CSize (DeviceSize
tensorCaptureReplayOpaqueDataSize))
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CSize)) (DeviceSize -> CSize
CSize (DeviceSize
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceDescriptorHeapTensorPropertiesARM where
peekCStruct :: Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> IO PhysicalDeviceDescriptorHeapTensorPropertiesARM
peekCStruct Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p = do
tensorDescriptorSize <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
p Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize))
tensorDescriptorAlignment <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
tensorCaptureReplayOpaqueDataSize <- peek @CSize ((p `plusPtr` 32 :: Ptr CSize))
pure $ PhysicalDeviceDescriptorHeapTensorPropertiesARM
tensorDescriptorSize
tensorDescriptorAlignment
(coerce @CSize @Word64 tensorCaptureReplayOpaqueDataSize)
instance Storable PhysicalDeviceDescriptorHeapTensorPropertiesARM where
sizeOf :: PhysicalDeviceDescriptorHeapTensorPropertiesARM -> Int
sizeOf ~PhysicalDeviceDescriptorHeapTensorPropertiesARM
_ = Int
40
alignment :: PhysicalDeviceDescriptorHeapTensorPropertiesARM -> Int
alignment ~PhysicalDeviceDescriptorHeapTensorPropertiesARM
_ = Int
8
peek :: Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> IO PhysicalDeviceDescriptorHeapTensorPropertiesARM
peek = Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> IO PhysicalDeviceDescriptorHeapTensorPropertiesARM
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO ()
poke Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
poked = Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> IO ()
-> IO ()
forall b.
Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
ptr PhysicalDeviceDescriptorHeapTensorPropertiesARM
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceDescriptorHeapTensorPropertiesARM where
zero :: PhysicalDeviceDescriptorHeapTensorPropertiesARM
zero = DeviceSize
-> DeviceSize
-> DeviceSize
-> PhysicalDeviceDescriptorHeapTensorPropertiesARM
PhysicalDeviceDescriptorHeapTensorPropertiesARM
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
data ResourceDescriptorDataEXT
= AnImage (Maybe ImageDescriptorInfoEXT)
| ATexelBuffer (Maybe TexelBufferDescriptorInfoEXT)
| AnAddressRange (Maybe DeviceAddressRangeEXT)
| ATensorARM (Maybe (SomeStruct TensorViewCreateInfoARM))
deriving (Int -> ResourceDescriptorDataEXT -> ShowS
[ResourceDescriptorDataEXT] -> ShowS
ResourceDescriptorDataEXT -> String
(Int -> ResourceDescriptorDataEXT -> ShowS)
-> (ResourceDescriptorDataEXT -> String)
-> ([ResourceDescriptorDataEXT] -> ShowS)
-> Show ResourceDescriptorDataEXT
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ResourceDescriptorDataEXT -> ShowS
showsPrec :: Int -> ResourceDescriptorDataEXT -> ShowS
$cshow :: ResourceDescriptorDataEXT -> String
show :: ResourceDescriptorDataEXT -> String
$cshowList :: [ResourceDescriptorDataEXT] -> ShowS
showList :: [ResourceDescriptorDataEXT] -> ShowS
Show)
instance ToCStruct ResourceDescriptorDataEXT where
withCStruct :: forall b.
ResourceDescriptorDataEXT
-> (Ptr ResourceDescriptorDataEXT -> IO b) -> IO b
withCStruct ResourceDescriptorDataEXT
x Ptr ResourceDescriptorDataEXT -> IO b
f = Int -> (Ptr ResourceDescriptorDataEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
8 ((Ptr ResourceDescriptorDataEXT -> IO b) -> IO b)
-> (Ptr ResourceDescriptorDataEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ResourceDescriptorDataEXT
p -> Ptr ResourceDescriptorDataEXT
-> ResourceDescriptorDataEXT -> IO b -> IO b
forall b.
Ptr ResourceDescriptorDataEXT
-> ResourceDescriptorDataEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ResourceDescriptorDataEXT
p ResourceDescriptorDataEXT
x (Ptr ResourceDescriptorDataEXT -> IO b
f Ptr ResourceDescriptorDataEXT
p)
pokeCStruct :: Ptr ResourceDescriptorDataEXT -> ResourceDescriptorDataEXT -> IO a -> IO a
pokeCStruct :: forall b.
Ptr ResourceDescriptorDataEXT
-> ResourceDescriptorDataEXT -> IO b -> IO b
pokeCStruct Ptr ResourceDescriptorDataEXT
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)
-> (ResourceDescriptorDataEXT -> (() -> IO a) -> IO a)
-> ResourceDescriptorDataEXT
-> 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)
-> (ResourceDescriptorDataEXT -> ContT a IO ())
-> ResourceDescriptorDataEXT
-> (() -> IO a)
-> IO a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
AnImage Maybe ImageDescriptorInfoEXT
v -> do
pImage <- case (Maybe ImageDescriptorInfoEXT
v) of
Maybe ImageDescriptorInfoEXT
Nothing -> Ptr ImageDescriptorInfoEXT
-> ContT a IO (Ptr ImageDescriptorInfoEXT)
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr ImageDescriptorInfoEXT
forall a. Ptr a
nullPtr
Just ImageDescriptorInfoEXT
j -> ((Ptr ImageDescriptorInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr ImageDescriptorInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ImageDescriptorInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr ImageDescriptorInfoEXT))
-> ((Ptr ImageDescriptorInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr ImageDescriptorInfoEXT)
forall a b. (a -> b) -> a -> b
$ ImageDescriptorInfoEXT
-> (Ptr ImageDescriptorInfoEXT -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
ImageDescriptorInfoEXT
-> (Ptr ImageDescriptorInfoEXT -> IO b) -> IO b
withCStruct (ImageDescriptorInfoEXT
j)
lift $ poke (castPtr @_ @(Ptr ImageDescriptorInfoEXT) p) pImage
ATexelBuffer Maybe TexelBufferDescriptorInfoEXT
v -> do
pTexelBuffer <- case (Maybe TexelBufferDescriptorInfoEXT
v) of
Maybe TexelBufferDescriptorInfoEXT
Nothing -> Ptr TexelBufferDescriptorInfoEXT
-> ContT a IO (Ptr TexelBufferDescriptorInfoEXT)
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr TexelBufferDescriptorInfoEXT
forall a. Ptr a
nullPtr
Just TexelBufferDescriptorInfoEXT
j -> ((Ptr TexelBufferDescriptorInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr TexelBufferDescriptorInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr TexelBufferDescriptorInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr TexelBufferDescriptorInfoEXT))
-> ((Ptr TexelBufferDescriptorInfoEXT -> IO a) -> IO a)
-> ContT a IO (Ptr TexelBufferDescriptorInfoEXT)
forall a b. (a -> b) -> a -> b
$ TexelBufferDescriptorInfoEXT
-> (Ptr TexelBufferDescriptorInfoEXT -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
TexelBufferDescriptorInfoEXT
-> (Ptr TexelBufferDescriptorInfoEXT -> IO b) -> IO b
withCStruct (TexelBufferDescriptorInfoEXT
j)
lift $ poke (castPtr @_ @(Ptr TexelBufferDescriptorInfoEXT) p) pTexelBuffer
AnAddressRange Maybe DeviceAddressRangeEXT
v -> do
pAddressRange <- case (Maybe DeviceAddressRangeEXT
v) of
Maybe DeviceAddressRangeEXT
Nothing -> Ptr DeviceAddressRangeEXT -> ContT a IO (Ptr DeviceAddressRangeEXT)
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr DeviceAddressRangeEXT
forall a. Ptr a
nullPtr
Just DeviceAddressRangeEXT
j -> ((Ptr DeviceAddressRangeEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DeviceAddressRangeEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DeviceAddressRangeEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DeviceAddressRangeEXT))
-> ((Ptr DeviceAddressRangeEXT -> IO a) -> IO a)
-> ContT a IO (Ptr DeviceAddressRangeEXT)
forall a b. (a -> b) -> a -> b
$ DeviceAddressRangeEXT
-> (Ptr DeviceAddressRangeEXT -> IO a) -> IO a
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DeviceAddressRangeEXT
-> (Ptr DeviceAddressRangeEXT -> IO b) -> IO b
withCStruct (DeviceAddressRangeEXT
j)
lift $ poke (castPtr @_ @(Ptr DeviceAddressRangeEXT) p) pAddressRange
ATensorARM Maybe (SomeStruct TensorViewCreateInfoARM)
v -> do
pTensorARM <- case (Maybe (SomeStruct TensorViewCreateInfoARM)
v) of
Maybe (SomeStruct TensorViewCreateInfoARM)
Nothing -> Ptr (TensorViewCreateInfoARM '[])
-> ContT a IO (Ptr (TensorViewCreateInfoARM '[]))
forall a. a -> ContT a IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr (TensorViewCreateInfoARM '[])
forall a. Ptr a
nullPtr
Just SomeStruct TensorViewCreateInfoARM
j -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
forall r (m :: * -> *) a. ((a -> m r) -> m r) -> ContT r m a
ContT @_ @_ @(Ptr (TensorViewCreateInfoARM '[])) (((Ptr (TensorViewCreateInfoARM '[]) -> IO a) -> IO a)
-> ContT a IO (Ptr (TensorViewCreateInfoARM '[])))
-> ((Ptr (TensorViewCreateInfoARM '[]) -> IO a) -> IO a)
-> ContT a IO (Ptr (TensorViewCreateInfoARM '[]))
forall a b. (a -> b) -> a -> b
$ \Ptr (TensorViewCreateInfoARM '[]) -> IO a
cont -> forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
SomeStruct a
-> (forall (es :: [*]).
(Extendss a es, PokeChain es) =>
Ptr (a es) -> IO b)
-> IO b
withSomeCStruct @TensorViewCreateInfoARM (SomeStruct TensorViewCreateInfoARM
j) (Ptr (TensorViewCreateInfoARM '[]) -> IO a
cont (Ptr (TensorViewCreateInfoARM '[]) -> IO a)
-> (Ptr (TensorViewCreateInfoARM es)
-> Ptr (TensorViewCreateInfoARM '[]))
-> Ptr (TensorViewCreateInfoARM es)
-> IO a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (TensorViewCreateInfoARM es)
-> Ptr (TensorViewCreateInfoARM '[])
forall a b. Ptr a -> Ptr b
castPtr)
lift $ poke (castPtr @_ @(Ptr (TensorViewCreateInfoARM _)) p) pTensorARM
pokeZeroCStruct :: Ptr ResourceDescriptorDataEXT -> IO b -> IO b
pokeZeroCStruct :: forall b. Ptr ResourceDescriptorDataEXT -> IO b -> IO b
pokeZeroCStruct Ptr ResourceDescriptorDataEXT
_ IO b
f = IO b
f
cStructSize :: Int
cStructSize = Int
8
cStructAlignment :: Int
cStructAlignment = Int
8
instance Zero ResourceDescriptorDataEXT where
zero :: ResourceDescriptorDataEXT
zero = Maybe ImageDescriptorInfoEXT -> ResourceDescriptorDataEXT
AnImage Maybe ImageDescriptorInfoEXT
forall a. Maybe a
Nothing
data DescriptorMappingSourceDataEXT
= ConstantOffset DescriptorMappingSourceConstantOffsetEXT
| PushIndex DescriptorMappingSourcePushIndexEXT
| IndirectIndex DescriptorMappingSourceIndirectIndexEXT
| IndirectIndexArray DescriptorMappingSourceIndirectIndexArrayEXT
| HeapData DescriptorMappingSourceHeapDataEXT
| PushDataOffset Word32
| PushAddressOffset Word32
| IndirectAddress DescriptorMappingSourceIndirectAddressEXT
| ShaderRecordIndex DescriptorMappingSourceShaderRecordIndexEXT
| ShaderRecordDataOffset Word32
| ShaderRecordAddressOffset Word32
deriving (Int -> DescriptorMappingSourceDataEXT -> ShowS
[DescriptorMappingSourceDataEXT] -> ShowS
DescriptorMappingSourceDataEXT -> String
(Int -> DescriptorMappingSourceDataEXT -> ShowS)
-> (DescriptorMappingSourceDataEXT -> String)
-> ([DescriptorMappingSourceDataEXT] -> ShowS)
-> Show DescriptorMappingSourceDataEXT
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DescriptorMappingSourceDataEXT -> ShowS
showsPrec :: Int -> DescriptorMappingSourceDataEXT -> ShowS
$cshow :: DescriptorMappingSourceDataEXT -> String
show :: DescriptorMappingSourceDataEXT -> String
$cshowList :: [DescriptorMappingSourceDataEXT] -> ShowS
showList :: [DescriptorMappingSourceDataEXT] -> ShowS
Show)
instance ToCStruct DescriptorMappingSourceDataEXT where
withCStruct :: forall b.
DescriptorMappingSourceDataEXT
-> (Ptr DescriptorMappingSourceDataEXT -> IO b) -> IO b
withCStruct DescriptorMappingSourceDataEXT
x Ptr DescriptorMappingSourceDataEXT -> IO b
f = Int -> (Ptr DescriptorMappingSourceDataEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 ((Ptr DescriptorMappingSourceDataEXT -> IO b) -> IO b)
-> (Ptr DescriptorMappingSourceDataEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorMappingSourceDataEXT
p -> Ptr DescriptorMappingSourceDataEXT
-> DescriptorMappingSourceDataEXT -> IO b -> IO b
forall b.
Ptr DescriptorMappingSourceDataEXT
-> DescriptorMappingSourceDataEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceDataEXT
p DescriptorMappingSourceDataEXT
x (Ptr DescriptorMappingSourceDataEXT -> IO b
f Ptr DescriptorMappingSourceDataEXT
p)
pokeCStruct :: Ptr DescriptorMappingSourceDataEXT -> DescriptorMappingSourceDataEXT -> IO a -> IO a
pokeCStruct :: forall b.
Ptr DescriptorMappingSourceDataEXT
-> DescriptorMappingSourceDataEXT -> IO b -> IO b
pokeCStruct Ptr DescriptorMappingSourceDataEXT
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)
-> (DescriptorMappingSourceDataEXT -> (() -> IO a) -> IO a)
-> DescriptorMappingSourceDataEXT
-> 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)
-> (DescriptorMappingSourceDataEXT -> ContT a IO ())
-> DescriptorMappingSourceDataEXT
-> (() -> IO a)
-> IO a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
ConstantOffset DescriptorMappingSourceConstantOffsetEXT
v -> ((() -> IO a) -> IO a) -> ContT a IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO a) -> IO a) -> ContT a IO ())
-> ((() -> IO a) -> IO a) -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DescriptorMappingSourceConstantOffsetEXT
-> DescriptorMappingSourceConstantOffsetEXT -> IO a -> IO a
forall b.
Ptr DescriptorMappingSourceConstantOffsetEXT
-> DescriptorMappingSourceConstantOffsetEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (forall a b. Ptr a -> Ptr b
castPtr @_ @DescriptorMappingSourceConstantOffsetEXT Ptr DescriptorMappingSourceDataEXT
p) (DescriptorMappingSourceConstantOffsetEXT
v) (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 -> b
$ ())
PushIndex DescriptorMappingSourcePushIndexEXT
v -> ((() -> IO a) -> IO a) -> ContT a IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO a) -> IO a) -> ContT a IO ())
-> ((() -> IO a) -> IO a) -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DescriptorMappingSourcePushIndexEXT
-> DescriptorMappingSourcePushIndexEXT -> IO a -> IO a
forall b.
Ptr DescriptorMappingSourcePushIndexEXT
-> DescriptorMappingSourcePushIndexEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (forall a b. Ptr a -> Ptr b
castPtr @_ @DescriptorMappingSourcePushIndexEXT Ptr DescriptorMappingSourceDataEXT
p) (DescriptorMappingSourcePushIndexEXT
v) (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 -> b
$ ())
IndirectIndex DescriptorMappingSourceIndirectIndexEXT
v -> ((() -> IO a) -> IO a) -> ContT a IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO a) -> IO a) -> ContT a IO ())
-> ((() -> IO a) -> IO a) -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DescriptorMappingSourceIndirectIndexEXT
-> DescriptorMappingSourceIndirectIndexEXT -> IO a -> IO a
forall b.
Ptr DescriptorMappingSourceIndirectIndexEXT
-> DescriptorMappingSourceIndirectIndexEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (forall a b. Ptr a -> Ptr b
castPtr @_ @DescriptorMappingSourceIndirectIndexEXT Ptr DescriptorMappingSourceDataEXT
p) (DescriptorMappingSourceIndirectIndexEXT
v) (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 -> b
$ ())
IndirectIndexArray DescriptorMappingSourceIndirectIndexArrayEXT
v -> ((() -> IO a) -> IO a) -> ContT a IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO a) -> IO a) -> ContT a IO ())
-> ((() -> IO a) -> IO a) -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> DescriptorMappingSourceIndirectIndexArrayEXT -> IO a -> IO a
forall b.
Ptr DescriptorMappingSourceIndirectIndexArrayEXT
-> DescriptorMappingSourceIndirectIndexArrayEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (forall a b. Ptr a -> Ptr b
castPtr @_ @DescriptorMappingSourceIndirectIndexArrayEXT Ptr DescriptorMappingSourceDataEXT
p) (DescriptorMappingSourceIndirectIndexArrayEXT
v) (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 -> b
$ ())
HeapData DescriptorMappingSourceHeapDataEXT
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 DescriptorMappingSourceHeapDataEXT
-> DescriptorMappingSourceHeapDataEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (forall a b. Ptr a -> Ptr b
castPtr @_ @DescriptorMappingSourceHeapDataEXT Ptr DescriptorMappingSourceDataEXT
p) (DescriptorMappingSourceHeapDataEXT
v)
PushDataOffset Word32
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (forall a b. Ptr a -> Ptr b
castPtr @_ @Word32 Ptr DescriptorMappingSourceDataEXT
p) (Word32
v)
PushAddressOffset Word32
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (forall a b. Ptr a -> Ptr b
castPtr @_ @Word32 Ptr DescriptorMappingSourceDataEXT
p) (Word32
v)
IndirectAddress DescriptorMappingSourceIndirectAddressEXT
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 DescriptorMappingSourceIndirectAddressEXT
-> DescriptorMappingSourceIndirectAddressEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (forall a b. Ptr a -> Ptr b
castPtr @_ @DescriptorMappingSourceIndirectAddressEXT Ptr DescriptorMappingSourceDataEXT
p) (DescriptorMappingSourceIndirectAddressEXT
v)
ShaderRecordIndex DescriptorMappingSourceShaderRecordIndexEXT
v -> ((() -> IO a) -> IO a) -> ContT a IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO a) -> IO a) -> ContT a IO ())
-> ((() -> IO a) -> IO a) -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> DescriptorMappingSourceShaderRecordIndexEXT -> IO a -> IO a
forall b.
Ptr DescriptorMappingSourceShaderRecordIndexEXT
-> DescriptorMappingSourceShaderRecordIndexEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (forall a b. Ptr a -> Ptr b
castPtr @_ @DescriptorMappingSourceShaderRecordIndexEXT Ptr DescriptorMappingSourceDataEXT
p) (DescriptorMappingSourceShaderRecordIndexEXT
v) (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 -> b
$ ())
ShaderRecordDataOffset Word32
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (forall a b. Ptr a -> Ptr b
castPtr @_ @Word32 Ptr DescriptorMappingSourceDataEXT
p) (Word32
v)
ShaderRecordAddressOffset Word32
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 Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (forall a b. Ptr a -> Ptr b
castPtr @_ @Word32 Ptr DescriptorMappingSourceDataEXT
p) (Word32
v)
pokeZeroCStruct :: Ptr DescriptorMappingSourceDataEXT -> IO b -> IO b
pokeZeroCStruct :: forall b. Ptr DescriptorMappingSourceDataEXT -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorMappingSourceDataEXT
_ IO b
f = IO b
f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
instance Zero DescriptorMappingSourceDataEXT where
zero :: DescriptorMappingSourceDataEXT
zero = DescriptorMappingSourceIndirectIndexEXT
-> DescriptorMappingSourceDataEXT
IndirectIndex DescriptorMappingSourceIndirectIndexEXT
forall a. Zero a => a
zero
newtype DescriptorMappingSourceEXT = DescriptorMappingSourceEXT Int32
deriving newtype (DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
(DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool)
-> (DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> Bool)
-> Eq DescriptorMappingSourceEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
== :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
$c/= :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
/= :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
Eq, Eq DescriptorMappingSourceEXT
Eq DescriptorMappingSourceEXT =>
(DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> Ordering)
-> (DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> Bool)
-> (DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> Bool)
-> (DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> Bool)
-> (DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> Bool)
-> (DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT)
-> (DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT)
-> Ord DescriptorMappingSourceEXT
DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> Ordering
DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> Ordering
compare :: DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> Ordering
$c< :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
< :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
$c<= :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
<= :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
$c> :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
> :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
$c>= :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
>= :: DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT -> Bool
$cmax :: DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT
max :: DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT
$cmin :: DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT
min :: DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> DescriptorMappingSourceEXT
Ord, Ptr DescriptorMappingSourceEXT -> IO DescriptorMappingSourceEXT
Ptr DescriptorMappingSourceEXT
-> Int -> IO DescriptorMappingSourceEXT
Ptr DescriptorMappingSourceEXT
-> Int -> DescriptorMappingSourceEXT -> IO ()
Ptr DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> IO ()
DescriptorMappingSourceEXT -> Int
(DescriptorMappingSourceEXT -> Int)
-> (DescriptorMappingSourceEXT -> Int)
-> (Ptr DescriptorMappingSourceEXT
-> Int -> IO DescriptorMappingSourceEXT)
-> (Ptr DescriptorMappingSourceEXT
-> Int -> DescriptorMappingSourceEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO DescriptorMappingSourceEXT)
-> (forall b. Ptr b -> Int -> DescriptorMappingSourceEXT -> IO ())
-> (Ptr DescriptorMappingSourceEXT
-> IO DescriptorMappingSourceEXT)
-> (Ptr DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> IO ())
-> Storable DescriptorMappingSourceEXT
forall b. Ptr b -> Int -> IO DescriptorMappingSourceEXT
forall b. Ptr b -> Int -> DescriptorMappingSourceEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: DescriptorMappingSourceEXT -> Int
sizeOf :: DescriptorMappingSourceEXT -> Int
$calignment :: DescriptorMappingSourceEXT -> Int
alignment :: DescriptorMappingSourceEXT -> Int
$cpeekElemOff :: Ptr DescriptorMappingSourceEXT
-> Int -> IO DescriptorMappingSourceEXT
peekElemOff :: Ptr DescriptorMappingSourceEXT
-> Int -> IO DescriptorMappingSourceEXT
$cpokeElemOff :: Ptr DescriptorMappingSourceEXT
-> Int -> DescriptorMappingSourceEXT -> IO ()
pokeElemOff :: Ptr DescriptorMappingSourceEXT
-> Int -> DescriptorMappingSourceEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO DescriptorMappingSourceEXT
peekByteOff :: forall b. Ptr b -> Int -> IO DescriptorMappingSourceEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> DescriptorMappingSourceEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> DescriptorMappingSourceEXT -> IO ()
$cpeek :: Ptr DescriptorMappingSourceEXT -> IO DescriptorMappingSourceEXT
peek :: Ptr DescriptorMappingSourceEXT -> IO DescriptorMappingSourceEXT
$cpoke :: Ptr DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> IO ()
poke :: Ptr DescriptorMappingSourceEXT
-> DescriptorMappingSourceEXT -> IO ()
Storable, DescriptorMappingSourceEXT
DescriptorMappingSourceEXT -> Zero DescriptorMappingSourceEXT
forall a. a -> Zero a
$czero :: DescriptorMappingSourceEXT
zero :: DescriptorMappingSourceEXT
Zero)
pattern $mDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT = DescriptorMappingSourceEXT 0
pattern $mDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT = DescriptorMappingSourceEXT 1
pattern $mDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT = DescriptorMappingSourceEXT 2
pattern $mDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT = DescriptorMappingSourceEXT 3
pattern $mDESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT = DescriptorMappingSourceEXT 4
pattern $mDESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT = DescriptorMappingSourceEXT 5
pattern $mDESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT = DescriptorMappingSourceEXT 6
pattern $mDESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT = DescriptorMappingSourceEXT 7
pattern $mDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT = DescriptorMappingSourceEXT 10
pattern $mDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT = DescriptorMappingSourceEXT 9
pattern $mDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT :: forall {r}.
DescriptorMappingSourceEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT :: DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT = DescriptorMappingSourceEXT 8
{-# COMPLETE
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT
, DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT
, DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT
, DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT
, DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT
, DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT
, DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT
, DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT
, DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT
, DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT
, DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT ::
DescriptorMappingSourceEXT
#-}
conNameDescriptorMappingSourceEXT :: String
conNameDescriptorMappingSourceEXT :: String
conNameDescriptorMappingSourceEXT = String
"DescriptorMappingSourceEXT"
enumPrefixDescriptorMappingSourceEXT :: String
enumPrefixDescriptorMappingSourceEXT :: String
enumPrefixDescriptorMappingSourceEXT = String
"DESCRIPTOR_MAPPING_SOURCE_"
showTableDescriptorMappingSourceEXT :: [(DescriptorMappingSourceEXT, String)]
showTableDescriptorMappingSourceEXT :: [(DescriptorMappingSourceEXT, String)]
showTableDescriptorMappingSourceEXT =
[
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT
, String
"HEAP_WITH_CONSTANT_OFFSET_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT
, String
"HEAP_WITH_PUSH_INDEX_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT
, String
"HEAP_WITH_INDIRECT_INDEX_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT
, String
"HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT
, String
"RESOURCE_HEAP_DATA_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT
, String
"PUSH_DATA_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT
, String
"PUSH_ADDRESS_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT
, String
"INDIRECT_ADDRESS_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT
, String
"SHADER_RECORD_ADDRESS_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT
, String
"SHADER_RECORD_DATA_EXT"
)
,
( DescriptorMappingSourceEXT
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT
, String
"HEAP_WITH_SHADER_RECORD_INDEX_EXT"
)
]
instance Show DescriptorMappingSourceEXT where
showsPrec :: Int -> DescriptorMappingSourceEXT -> ShowS
showsPrec =
String
-> [(DescriptorMappingSourceEXT, String)]
-> String
-> (DescriptorMappingSourceEXT -> Int32)
-> (Int32 -> ShowS)
-> Int
-> DescriptorMappingSourceEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixDescriptorMappingSourceEXT
[(DescriptorMappingSourceEXT, String)]
showTableDescriptorMappingSourceEXT
String
conNameDescriptorMappingSourceEXT
(\(DescriptorMappingSourceEXT Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read DescriptorMappingSourceEXT where
readPrec :: ReadPrec DescriptorMappingSourceEXT
readPrec =
String
-> [(DescriptorMappingSourceEXT, String)]
-> String
-> (Int32 -> DescriptorMappingSourceEXT)
-> ReadPrec DescriptorMappingSourceEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixDescriptorMappingSourceEXT
[(DescriptorMappingSourceEXT, String)]
showTableDescriptorMappingSourceEXT
String
conNameDescriptorMappingSourceEXT
Int32 -> DescriptorMappingSourceEXT
DescriptorMappingSourceEXT
type SpirvResourceTypeFlagsEXT = SpirvResourceTypeFlagBitsEXT
newtype SpirvResourceTypeFlagBitsEXT = SpirvResourceTypeFlagBitsEXT Flags
deriving newtype (SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
(SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool)
-> (SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool)
-> Eq SpirvResourceTypeFlagsEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
== :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
$c/= :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
/= :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
Eq, Eq SpirvResourceTypeFlagsEXT
Eq SpirvResourceTypeFlagsEXT =>
(SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> Ordering)
-> (SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool)
-> (SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool)
-> (SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool)
-> (SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool)
-> (SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT)
-> Ord SpirvResourceTypeFlagsEXT
SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Ordering
SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Ordering
compare :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Ordering
$c< :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
< :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
$c<= :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
<= :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
$c> :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
> :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
$c>= :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
>= :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> Bool
$cmax :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
max :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
$cmin :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
min :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
Ord, Ptr SpirvResourceTypeFlagsEXT -> IO SpirvResourceTypeFlagsEXT
Ptr SpirvResourceTypeFlagsEXT
-> Int -> IO SpirvResourceTypeFlagsEXT
Ptr SpirvResourceTypeFlagsEXT
-> Int -> SpirvResourceTypeFlagsEXT -> IO ()
Ptr SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> IO ()
SpirvResourceTypeFlagsEXT -> Int
(SpirvResourceTypeFlagsEXT -> Int)
-> (SpirvResourceTypeFlagsEXT -> Int)
-> (Ptr SpirvResourceTypeFlagsEXT
-> Int -> IO SpirvResourceTypeFlagsEXT)
-> (Ptr SpirvResourceTypeFlagsEXT
-> Int -> SpirvResourceTypeFlagsEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO SpirvResourceTypeFlagsEXT)
-> (forall b. Ptr b -> Int -> SpirvResourceTypeFlagsEXT -> IO ())
-> (Ptr SpirvResourceTypeFlagsEXT -> IO SpirvResourceTypeFlagsEXT)
-> (Ptr SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> IO ())
-> Storable SpirvResourceTypeFlagsEXT
forall b. Ptr b -> Int -> IO SpirvResourceTypeFlagsEXT
forall b. Ptr b -> Int -> SpirvResourceTypeFlagsEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: SpirvResourceTypeFlagsEXT -> Int
sizeOf :: SpirvResourceTypeFlagsEXT -> Int
$calignment :: SpirvResourceTypeFlagsEXT -> Int
alignment :: SpirvResourceTypeFlagsEXT -> Int
$cpeekElemOff :: Ptr SpirvResourceTypeFlagsEXT
-> Int -> IO SpirvResourceTypeFlagsEXT
peekElemOff :: Ptr SpirvResourceTypeFlagsEXT
-> Int -> IO SpirvResourceTypeFlagsEXT
$cpokeElemOff :: Ptr SpirvResourceTypeFlagsEXT
-> Int -> SpirvResourceTypeFlagsEXT -> IO ()
pokeElemOff :: Ptr SpirvResourceTypeFlagsEXT
-> Int -> SpirvResourceTypeFlagsEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SpirvResourceTypeFlagsEXT
peekByteOff :: forall b. Ptr b -> Int -> IO SpirvResourceTypeFlagsEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> SpirvResourceTypeFlagsEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SpirvResourceTypeFlagsEXT -> IO ()
$cpeek :: Ptr SpirvResourceTypeFlagsEXT -> IO SpirvResourceTypeFlagsEXT
peek :: Ptr SpirvResourceTypeFlagsEXT -> IO SpirvResourceTypeFlagsEXT
$cpoke :: Ptr SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> IO ()
poke :: Ptr SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT -> IO ()
Storable, SpirvResourceTypeFlagsEXT
SpirvResourceTypeFlagsEXT -> Zero SpirvResourceTypeFlagsEXT
forall a. a -> Zero a
$czero :: SpirvResourceTypeFlagsEXT
zero :: SpirvResourceTypeFlagsEXT
Zero, Eq SpirvResourceTypeFlagsEXT
SpirvResourceTypeFlagsEXT
Eq SpirvResourceTypeFlagsEXT =>
(SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> SpirvResourceTypeFlagsEXT
-> (Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> Bool)
-> (SpirvResourceTypeFlagsEXT -> Maybe Int)
-> (SpirvResourceTypeFlagsEXT -> Int)
-> (SpirvResourceTypeFlagsEXT -> Bool)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT)
-> (SpirvResourceTypeFlagsEXT -> Int)
-> Bits SpirvResourceTypeFlagsEXT
Int -> SpirvResourceTypeFlagsEXT
SpirvResourceTypeFlagsEXT -> Bool
SpirvResourceTypeFlagsEXT -> Int
SpirvResourceTypeFlagsEXT -> Maybe Int
SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
SpirvResourceTypeFlagsEXT -> Int -> Bool
SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
.&. :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
$c.|. :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
.|. :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
$cxor :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
xor :: SpirvResourceTypeFlagsEXT
-> SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
$ccomplement :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
complement :: SpirvResourceTypeFlagsEXT -> SpirvResourceTypeFlagsEXT
$cshift :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
shift :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$crotate :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
rotate :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$czeroBits :: SpirvResourceTypeFlagsEXT
zeroBits :: SpirvResourceTypeFlagsEXT
$cbit :: Int -> SpirvResourceTypeFlagsEXT
bit :: Int -> SpirvResourceTypeFlagsEXT
$csetBit :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
setBit :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$cclearBit :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
clearBit :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$ccomplementBit :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
complementBit :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$ctestBit :: SpirvResourceTypeFlagsEXT -> Int -> Bool
testBit :: SpirvResourceTypeFlagsEXT -> Int -> Bool
$cbitSizeMaybe :: SpirvResourceTypeFlagsEXT -> Maybe Int
bitSizeMaybe :: SpirvResourceTypeFlagsEXT -> Maybe Int
$cbitSize :: SpirvResourceTypeFlagsEXT -> Int
bitSize :: SpirvResourceTypeFlagsEXT -> Int
$cisSigned :: SpirvResourceTypeFlagsEXT -> Bool
isSigned :: SpirvResourceTypeFlagsEXT -> Bool
$cshiftL :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
shiftL :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$cunsafeShiftL :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
unsafeShiftL :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$cshiftR :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
shiftR :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$cunsafeShiftR :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
unsafeShiftR :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$crotateL :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
rotateL :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$crotateR :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
rotateR :: SpirvResourceTypeFlagsEXT -> Int -> SpirvResourceTypeFlagsEXT
$cpopCount :: SpirvResourceTypeFlagsEXT -> Int
popCount :: SpirvResourceTypeFlagsEXT -> Int
Bits, Bits SpirvResourceTypeFlagsEXT
Bits SpirvResourceTypeFlagsEXT =>
(SpirvResourceTypeFlagsEXT -> Int)
-> (SpirvResourceTypeFlagsEXT -> Int)
-> (SpirvResourceTypeFlagsEXT -> Int)
-> FiniteBits SpirvResourceTypeFlagsEXT
SpirvResourceTypeFlagsEXT -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: SpirvResourceTypeFlagsEXT -> Int
finiteBitSize :: SpirvResourceTypeFlagsEXT -> Int
$ccountLeadingZeros :: SpirvResourceTypeFlagsEXT -> Int
countLeadingZeros :: SpirvResourceTypeFlagsEXT -> Int
$ccountTrailingZeros :: SpirvResourceTypeFlagsEXT -> Int
countTrailingZeros :: SpirvResourceTypeFlagsEXT -> Int
FiniteBits)
pattern $mSPIRV_RESOURCE_TYPE_ALL_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_ALL_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_ALL_EXT = SpirvResourceTypeFlagBitsEXT 0x7fffffff
pattern $mSPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT = SpirvResourceTypeFlagBitsEXT 0x00000001
pattern $mSPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT = SpirvResourceTypeFlagBitsEXT 0x00000002
pattern $mSPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT = SpirvResourceTypeFlagBitsEXT 0x00000004
pattern $mSPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT = SpirvResourceTypeFlagBitsEXT 0x00000008
pattern $mSPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT = SpirvResourceTypeFlagBitsEXT 0x00000010
pattern $mSPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT = SpirvResourceTypeFlagBitsEXT 0x00000020
pattern $mSPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT = SpirvResourceTypeFlagBitsEXT 0x00000040
pattern $mSPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT = SpirvResourceTypeFlagBitsEXT 0x00000080
pattern $mSPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM = SpirvResourceTypeFlagBitsEXT 0x00000200
pattern $mSPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT :: forall {r}.
SpirvResourceTypeFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
$bSPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT :: SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT = SpirvResourceTypeFlagBitsEXT 0x00000100
conNameSpirvResourceTypeFlagBitsEXT :: String
conNameSpirvResourceTypeFlagBitsEXT :: String
conNameSpirvResourceTypeFlagBitsEXT = String
"SpirvResourceTypeFlagBitsEXT"
enumPrefixSpirvResourceTypeFlagBitsEXT :: String
enumPrefixSpirvResourceTypeFlagBitsEXT :: String
enumPrefixSpirvResourceTypeFlagBitsEXT = String
"SPIRV_RESOURCE_TYPE_"
showTableSpirvResourceTypeFlagBitsEXT :: [(SpirvResourceTypeFlagBitsEXT, String)]
showTableSpirvResourceTypeFlagBitsEXT :: [(SpirvResourceTypeFlagsEXT, String)]
showTableSpirvResourceTypeFlagBitsEXT =
[
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_ALL_EXT
, String
"ALL_EXT"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT
, String
"SAMPLER_BIT_EXT"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT
, String
"SAMPLED_IMAGE_BIT_EXT"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT
, String
"READ_ONLY_IMAGE_BIT_EXT"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT
, String
"READ_WRITE_IMAGE_BIT_EXT"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT
, String
"COMBINED_SAMPLED_IMAGE_BIT_EXT"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT
, String
"UNIFORM_BUFFER_BIT_EXT"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT
, String
"READ_ONLY_STORAGE_BUFFER_BIT_EXT"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT
, String
"READ_WRITE_STORAGE_BUFFER_BIT_EXT"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM
, String
"TENSOR_BIT_ARM"
)
,
( SpirvResourceTypeFlagsEXT
SPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT
, String
"ACCELERATION_STRUCTURE_BIT_EXT"
)
]
instance Show SpirvResourceTypeFlagBitsEXT where
showsPrec :: Int -> SpirvResourceTypeFlagsEXT -> ShowS
showsPrec =
String
-> [(SpirvResourceTypeFlagsEXT, String)]
-> String
-> (SpirvResourceTypeFlagsEXT -> Word32)
-> (Word32 -> ShowS)
-> Int
-> SpirvResourceTypeFlagsEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixSpirvResourceTypeFlagBitsEXT
[(SpirvResourceTypeFlagsEXT, String)]
showTableSpirvResourceTypeFlagBitsEXT
String
conNameSpirvResourceTypeFlagBitsEXT
(\(SpirvResourceTypeFlagBitsEXT Word32
x) -> Word32
x)
(\Word32
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word32 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word32
x)
instance Read SpirvResourceTypeFlagBitsEXT where
readPrec :: ReadPrec SpirvResourceTypeFlagsEXT
readPrec =
String
-> [(SpirvResourceTypeFlagsEXT, String)]
-> String
-> (Word32 -> SpirvResourceTypeFlagsEXT)
-> ReadPrec SpirvResourceTypeFlagsEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixSpirvResourceTypeFlagBitsEXT
[(SpirvResourceTypeFlagsEXT, String)]
showTableSpirvResourceTypeFlagBitsEXT
String
conNameSpirvResourceTypeFlagBitsEXT
Word32 -> SpirvResourceTypeFlagsEXT
SpirvResourceTypeFlagBitsEXT
type EXT_DESCRIPTOR_HEAP_SPEC_VERSION = 1
pattern EXT_DESCRIPTOR_HEAP_SPEC_VERSION :: forall a . Integral a => a
pattern $mEXT_DESCRIPTOR_HEAP_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEXT_DESCRIPTOR_HEAP_SPEC_VERSION :: forall a. Integral a => a
EXT_DESCRIPTOR_HEAP_SPEC_VERSION = 1
type EXT_DESCRIPTOR_HEAP_EXTENSION_NAME = "VK_EXT_descriptor_heap"
pattern EXT_DESCRIPTOR_HEAP_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mEXT_DESCRIPTOR_HEAP_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEXT_DESCRIPTOR_HEAP_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
EXT_DESCRIPTOR_HEAP_EXTENSION_NAME = "VK_EXT_descriptor_heap"