{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_opacity_micromap ( createMicromapEXT
, withMicromapEXT
, cmdBuildMicromapsEXT
, buildMicromapsEXT
, destroyMicromapEXT
, cmdCopyMicromapEXT
, copyMicromapEXT
, cmdCopyMicromapToMemoryEXT
, copyMicromapToMemoryEXT
, cmdCopyMemoryToMicromapEXT
, copyMemoryToMicromapEXT
, cmdWriteMicromapsPropertiesEXT
, writeMicromapsPropertiesEXT
, getDeviceMicromapCompatibilityEXT
, getMicromapBuildSizesEXT
, MicromapBuildInfoEXT(..)
, MicromapCreateInfoEXT(..)
, MicromapVersionInfoEXT(..)
, CopyMicromapInfoEXT(..)
, CopyMicromapToMemoryInfoEXT(..)
, CopyMemoryToMicromapInfoEXT(..)
, MicromapBuildSizesInfoEXT(..)
, MicromapUsageEXT(..)
, MicromapTriangleEXT(..)
, PhysicalDeviceOpacityMicromapFeaturesEXT(..)
, PhysicalDeviceOpacityMicromapPropertiesEXT(..)
, AccelerationStructureTrianglesOpacityMicromapEXT(..)
, MicromapTypeEXT( MICROMAP_TYPE_OPACITY_MICROMAP_EXT
, ..
)
, BuildMicromapFlagsEXT
, BuildMicromapFlagBitsEXT( BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT
, BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT
, BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT
, ..
)
, MicromapCreateFlagsEXT
, MicromapCreateFlagBitsEXT( MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
, ..
)
, CopyMicromapModeEXT( COPY_MICROMAP_MODE_CLONE_EXT
, COPY_MICROMAP_MODE_SERIALIZE_EXT
, COPY_MICROMAP_MODE_DESERIALIZE_EXT
, COPY_MICROMAP_MODE_COMPACT_EXT
, ..
)
, BuildMicromapModeEXT( BUILD_MICROMAP_MODE_BUILD_EXT
, ..
)
, OpacityMicromapFormatEXT( OPACITY_MICROMAP_FORMAT_2_STATE_EXT
, OPACITY_MICROMAP_FORMAT_4_STATE_EXT
, ..
)
, OpacityMicromapSpecialIndexEXT( OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT
, OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT
, OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT
, OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT
, ..
)
, EXT_OPACITY_MICROMAP_SPEC_VERSION
, pattern EXT_OPACITY_MICROMAP_SPEC_VERSION
, EXT_OPACITY_MICROMAP_EXTENSION_NAME
, pattern EXT_OPACITY_MICROMAP_EXTENSION_NAME
, DeferredOperationKHR(..)
, MicromapEXT(..)
, DeviceOrHostAddressKHR(..)
, DeviceOrHostAddressConstKHR(..)
, GeometryInstanceFlagBitsKHR(..)
, GeometryInstanceFlagsKHR
, BuildAccelerationStructureFlagBitsKHR(..)
, BuildAccelerationStructureFlagsKHR
, AccelerationStructureBuildTypeKHR(..)
, AccelerationStructureCompatibilityKHR(..)
) where
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Exception.Base (bracket)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Marshal.Alloc (callocBytes)
import Foreign.Marshal.Alloc (free)
import 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 qualified Data.ByteString (length)
import Data.ByteString (packCStringLen)
import Data.ByteString.Unsafe (unsafeUseAsCString)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import qualified Data.Vector (null)
import Foreign.C.Types (CSize(..))
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.C.Types (CChar)
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 (Word16)
import Data.Word (Word32)
import Data.Word (Word64)
import Data.Word (Word8)
import Data.ByteString (ByteString)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.NamedType ((:::))
import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildTypeKHR)
import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildTypeKHR(..))
import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCompatibilityKHR)
import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCompatibilityKHR(..))
import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Handles (Buffer)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
import Vulkan.Core10.Handles (CommandBuffer_T)
import Vulkan.Extensions.Handles (DeferredOperationKHR)
import Vulkan.Extensions.Handles (DeferredOperationKHR(..))
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(pVkBuildMicromapsEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdBuildMicromapsEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyMemoryToMicromapEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyMicromapEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyMicromapToMemoryEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteMicromapsPropertiesEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCopyMemoryToMicromapEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCopyMicromapEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCopyMicromapToMemoryEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCreateMicromapEXT))
import Vulkan.Dynamic (DeviceCmds(pVkDestroyMicromapEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceMicromapCompatibilityEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetMicromapBuildSizesEXT))
import Vulkan.Dynamic (DeviceCmds(pVkWriteMicromapsPropertiesEXT))
import Vulkan.Extensions.VK_KHR_acceleration_structure (DeviceOrHostAddressConstKHR)
import Vulkan.Extensions.VK_KHR_acceleration_structure (DeviceOrHostAddressKHR)
import Vulkan.Core10.FundamentalTypes (DeviceSize)
import Vulkan.Core10.Handles (Device_T)
import Vulkan.Core10.FundamentalTypes (Flags)
import Vulkan.Core10.Enums.IndexType (IndexType)
import Vulkan.Extensions.Handles (MicromapEXT)
import Vulkan.Extensions.Handles (MicromapEXT(..))
import Vulkan.Core10.Handles (QueryPool)
import Vulkan.Core10.Handles (QueryPool(..))
import Vulkan.Core10.Enums.QueryType (QueryType)
import Vulkan.Core10.Enums.QueryType (QueryType(..))
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Core10.APIConstants (pattern UUID_SIZE)
import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildTypeKHR(..))
import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCompatibilityKHR(..))
import Vulkan.Extensions.VK_KHR_acceleration_structure (BuildAccelerationStructureFlagBitsKHR(..))
import Vulkan.Extensions.VK_KHR_acceleration_structure (BuildAccelerationStructureFlagsKHR)
import Vulkan.Extensions.Handles (DeferredOperationKHR(..))
import Vulkan.Extensions.VK_KHR_acceleration_structure (DeviceOrHostAddressConstKHR(..))
import Vulkan.Extensions.VK_KHR_acceleration_structure (DeviceOrHostAddressKHR(..))
import Vulkan.Extensions.VK_KHR_acceleration_structure (GeometryInstanceFlagBitsKHR(..))
import Vulkan.Extensions.VK_KHR_acceleration_structure (GeometryInstanceFlagsKHR)
import Vulkan.Extensions.Handles (MicromapEXT(..))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCreateMicromapEXT
:: FunPtr (Ptr Device_T -> Ptr MicromapCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr MicromapEXT -> IO Result) -> Ptr Device_T -> Ptr MicromapCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr MicromapEXT -> IO Result
createMicromapEXT :: forall io
. (MonadIO io)
=>
Device
->
MicromapCreateInfoEXT
->
("allocator" ::: Maybe AllocationCallbacks)
-> io (MicromapEXT)
createMicromapEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> MicromapCreateInfoEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io MicromapEXT
createMicromapEXT Device
device MicromapCreateInfoEXT
createInfo "allocator" ::: Maybe AllocationCallbacks
allocator = IO MicromapEXT -> io MicromapEXT
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MicromapEXT -> io MicromapEXT)
-> (ContT MicromapEXT IO MicromapEXT -> IO MicromapEXT)
-> ContT MicromapEXT IO MicromapEXT
-> io MicromapEXT
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT MicromapEXT IO MicromapEXT -> IO MicromapEXT
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT MicromapEXT IO MicromapEXT -> io MicromapEXT)
-> ContT MicromapEXT IO MicromapEXT -> io MicromapEXT
forall a b. (a -> b) -> a -> b
$ do
let vkCreateMicromapEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
vkCreateMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
pVkCreateMicromapEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT MicromapEXT IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT MicromapEXT IO ())
-> IO () -> ContT MicromapEXT IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
vkCreateMicromapEXTPtr FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCreateMicromapEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCreateMicromapEXT' :: Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result
vkCreateMicromapEXT' = FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
-> Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result
mkVkCreateMicromapEXT FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
vkCreateMicromapEXTPtr
Ptr MicromapCreateInfoEXT
pCreateInfo <- ((Ptr MicromapCreateInfoEXT -> IO MicromapEXT) -> IO MicromapEXT)
-> ContT MicromapEXT IO (Ptr MicromapCreateInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapCreateInfoEXT -> IO MicromapEXT) -> IO MicromapEXT)
-> ContT MicromapEXT IO (Ptr MicromapCreateInfoEXT))
-> ((Ptr MicromapCreateInfoEXT -> IO MicromapEXT)
-> IO MicromapEXT)
-> ContT MicromapEXT IO (Ptr MicromapCreateInfoEXT)
forall a b. (a -> b) -> a -> b
$ MicromapCreateInfoEXT
-> (Ptr MicromapCreateInfoEXT -> IO MicromapEXT) -> IO MicromapEXT
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (MicromapCreateInfoEXT
createInfo)
"pAllocator" ::: Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ContT MicromapEXT IO ("pAllocator" ::: Ptr AllocationCallbacks)
forall (f :: * -> *) a. Applicative f => a -> f a
pure "pAllocator" ::: Ptr AllocationCallbacks
forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> ((("pAllocator" ::: Ptr AllocationCallbacks) -> IO MicromapEXT)
-> IO MicromapEXT)
-> ContT MicromapEXT IO ("pAllocator" ::: Ptr AllocationCallbacks)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pAllocator" ::: Ptr AllocationCallbacks) -> IO MicromapEXT)
-> IO MicromapEXT)
-> ContT MicromapEXT IO ("pAllocator" ::: Ptr AllocationCallbacks))
-> ((("pAllocator" ::: Ptr AllocationCallbacks) -> IO MicromapEXT)
-> IO MicromapEXT)
-> ContT MicromapEXT IO ("pAllocator" ::: Ptr AllocationCallbacks)
forall a b. (a -> b) -> a -> b
$ AllocationCallbacks
-> (("pAllocator" ::: Ptr AllocationCallbacks) -> IO MicromapEXT)
-> IO MicromapEXT
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
"pMicromap" ::: Ptr MicromapEXT
pPMicromap <- ((("pMicromap" ::: Ptr MicromapEXT) -> IO MicromapEXT)
-> IO MicromapEXT)
-> ContT MicromapEXT IO ("pMicromap" ::: Ptr MicromapEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pMicromap" ::: Ptr MicromapEXT) -> IO MicromapEXT)
-> IO MicromapEXT)
-> ContT MicromapEXT IO ("pMicromap" ::: Ptr MicromapEXT))
-> ((("pMicromap" ::: Ptr MicromapEXT) -> IO MicromapEXT)
-> IO MicromapEXT)
-> ContT MicromapEXT IO ("pMicromap" ::: Ptr MicromapEXT)
forall a b. (a -> b) -> a -> b
$ IO ("pMicromap" ::: Ptr MicromapEXT)
-> (("pMicromap" ::: Ptr MicromapEXT) -> IO ())
-> (("pMicromap" ::: Ptr MicromapEXT) -> IO MicromapEXT)
-> IO MicromapEXT
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @MicromapEXT Int
8) ("pMicromap" ::: Ptr MicromapEXT) -> IO ()
forall a. Ptr a -> IO ()
free
Result
r <- IO Result -> ContT MicromapEXT IO Result
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT MicromapEXT IO Result)
-> IO Result -> ContT MicromapEXT IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCreateMicromapEXT" (Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result
vkCreateMicromapEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
Ptr MicromapCreateInfoEXT
pCreateInfo
"pAllocator" ::: Ptr AllocationCallbacks
pAllocator
("pMicromap" ::: Ptr MicromapEXT
pPMicromap))
IO () -> ContT MicromapEXT IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT MicromapEXT IO ())
-> IO () -> ContT MicromapEXT IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
MicromapEXT
pMicromap <- IO MicromapEXT -> ContT MicromapEXT IO MicromapEXT
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO MicromapEXT -> ContT MicromapEXT IO MicromapEXT)
-> IO MicromapEXT -> ContT MicromapEXT IO MicromapEXT
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @MicromapEXT "pMicromap" ::: Ptr MicromapEXT
pPMicromap
MicromapEXT -> ContT MicromapEXT IO MicromapEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (MicromapEXT -> ContT MicromapEXT IO MicromapEXT)
-> MicromapEXT -> ContT MicromapEXT IO MicromapEXT
forall a b. (a -> b) -> a -> b
$ (MicromapEXT
pMicromap)
withMicromapEXT :: forall io r . MonadIO io => Device -> MicromapCreateInfoEXT -> Maybe AllocationCallbacks -> (io MicromapEXT -> (MicromapEXT -> io ()) -> r) -> r
withMicromapEXT :: forall (io :: * -> *) r.
MonadIO io =>
Device
-> MicromapCreateInfoEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> (io MicromapEXT -> (MicromapEXT -> io ()) -> r)
-> r
withMicromapEXT Device
device MicromapCreateInfoEXT
pCreateInfo "allocator" ::: Maybe AllocationCallbacks
pAllocator io MicromapEXT -> (MicromapEXT -> io ()) -> r
b =
io MicromapEXT -> (MicromapEXT -> io ()) -> r
b (Device
-> MicromapCreateInfoEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io MicromapEXT
forall (io :: * -> *).
MonadIO io =>
Device
-> MicromapCreateInfoEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io MicromapEXT
createMicromapEXT Device
device MicromapCreateInfoEXT
pCreateInfo "allocator" ::: Maybe AllocationCallbacks
pAllocator)
(\(MicromapEXT
o0) -> Device
-> MicromapEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ()
forall (io :: * -> *).
MonadIO io =>
Device
-> MicromapEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ()
destroyMicromapEXT Device
device MicromapEXT
o0 "allocator" ::: Maybe AllocationCallbacks
pAllocator)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdBuildMicromapsEXT
:: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr MicromapBuildInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr MicromapBuildInfoEXT -> IO ()
cmdBuildMicromapsEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("infos" ::: Vector MicromapBuildInfoEXT)
-> io ()
cmdBuildMicromapsEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> ("infos" ::: Vector MicromapBuildInfoEXT) -> io ()
cmdBuildMicromapsEXT CommandBuffer
commandBuffer "infos" ::: Vector MicromapBuildInfoEXT
infos = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdBuildMicromapsEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
vkCmdBuildMicromapsEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
pVkCmdBuildMicromapsEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
vkCmdBuildMicromapsEXTPtr FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdBuildMicromapsEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdBuildMicromapsEXT' :: Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ()
vkCmdBuildMicromapsEXT' = FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
-> Ptr CommandBuffer_T
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO ()
mkVkCmdBuildMicromapsEXT FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
vkCmdBuildMicromapsEXTPtr
"pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos <- ((("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ()) -> IO ())
-> ContT () IO ("pInfos" ::: Ptr MicromapBuildInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ()) -> IO ())
-> ContT () IO ("pInfos" ::: Ptr MicromapBuildInfoEXT))
-> ((("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ()) -> IO ())
-> ContT () IO ("pInfos" ::: Ptr MicromapBuildInfoEXT)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapBuildInfoEXT ((("infos" ::: Vector MicromapBuildInfoEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length ("infos" ::: Vector MicromapBuildInfoEXT
infos)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
96)
(Int -> MicromapBuildInfoEXT -> ContT () IO ())
-> ("infos" ::: Vector MicromapBuildInfoEXT) -> ContT () IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapBuildInfoEXT
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
$ ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> MicromapBuildInfoEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ("pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> "pInfos" ::: Ptr MicromapBuildInfoEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
96 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapBuildInfoEXT) (MicromapBuildInfoEXT
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
$ ())) ("infos" ::: Vector MicromapBuildInfoEXT
infos)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdBuildMicromapsEXT" (Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ()
vkCmdBuildMicromapsEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
((Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral (("infos" ::: Vector MicromapBuildInfoEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length (("infos" ::: Vector MicromapBuildInfoEXT) -> Int)
-> ("infos" ::: Vector MicromapBuildInfoEXT) -> Int
forall a b. (a -> b) -> a -> b
$ ("infos" ::: Vector MicromapBuildInfoEXT
infos)) :: Word32))
("pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos))
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkBuildMicromapsEXT
:: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Word32 -> Ptr MicromapBuildInfoEXT -> IO Result) -> Ptr Device_T -> DeferredOperationKHR -> Word32 -> Ptr MicromapBuildInfoEXT -> IO Result
buildMicromapsEXT :: forall io
. (MonadIO io)
=>
Device
->
DeferredOperationKHR
->
("infos" ::: Vector MicromapBuildInfoEXT)
-> io (Result)
buildMicromapsEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> DeferredOperationKHR
-> ("infos" ::: Vector MicromapBuildInfoEXT)
-> io Result
buildMicromapsEXT Device
device DeferredOperationKHR
deferredOperation "infos" ::: Vector MicromapBuildInfoEXT
infos = IO Result -> io Result
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Result -> io Result)
-> (ContT Result IO Result -> IO Result)
-> ContT Result IO Result
-> io Result
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT Result IO Result -> IO Result
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT Result IO Result -> io Result)
-> ContT Result IO Result -> io Result
forall a b. (a -> b) -> a -> b
$ do
let vkBuildMicromapsEXTPtr :: FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
vkBuildMicromapsEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
pVkBuildMicromapsEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT Result IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT Result IO ()) -> IO () -> ContT Result IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
vkBuildMicromapsEXTPtr FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkBuildMicromapsEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkBuildMicromapsEXT' :: Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result
vkBuildMicromapsEXT' = FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
-> Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result
mkVkBuildMicromapsEXT FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
vkBuildMicromapsEXTPtr
"pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos <- ((("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO Result)
-> IO Result)
-> ContT Result IO ("pInfos" ::: Ptr MicromapBuildInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO Result)
-> IO Result)
-> ContT Result IO ("pInfos" ::: Ptr MicromapBuildInfoEXT))
-> ((("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO Result)
-> IO Result)
-> ContT Result IO ("pInfos" ::: Ptr MicromapBuildInfoEXT)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapBuildInfoEXT ((("infos" ::: Vector MicromapBuildInfoEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length ("infos" ::: Vector MicromapBuildInfoEXT
infos)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
96)
(Int -> MicromapBuildInfoEXT -> ContT Result IO ())
-> ("infos" ::: Vector MicromapBuildInfoEXT) -> ContT Result IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapBuildInfoEXT
e -> ((() -> IO Result) -> IO Result) -> ContT Result IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO Result) -> IO Result) -> ContT Result IO ())
-> ((() -> IO Result) -> IO Result) -> ContT Result IO ()
forall a b. (a -> b) -> a -> b
$ ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> MicromapBuildInfoEXT -> IO Result -> IO Result
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ("pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> "pInfos" ::: Ptr MicromapBuildInfoEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
96 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapBuildInfoEXT) (MicromapBuildInfoEXT
e) (IO Result -> IO Result)
-> ((() -> IO Result) -> IO Result)
-> (() -> IO Result)
-> IO Result
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO Result) -> () -> IO Result
forall a b. (a -> b) -> a -> b
$ ())) ("infos" ::: Vector MicromapBuildInfoEXT
infos)
Result
r <- IO Result -> ContT Result IO Result
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT Result IO Result)
-> IO Result -> ContT Result IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkBuildMicromapsEXT" (Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result
vkBuildMicromapsEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(DeferredOperationKHR
deferredOperation)
((Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral (("infos" ::: Vector MicromapBuildInfoEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length (("infos" ::: Vector MicromapBuildInfoEXT) -> Int)
-> ("infos" ::: Vector MicromapBuildInfoEXT) -> Int
forall a b. (a -> b) -> a -> b
$ ("infos" ::: Vector MicromapBuildInfoEXT
infos)) :: Word32))
("pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos))
IO () -> ContT Result IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT Result IO ()) -> IO () -> ContT Result IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
Result -> ContT Result IO Result
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Result -> ContT Result IO Result)
-> Result -> ContT Result IO Result
forall a b. (a -> b) -> a -> b
$ (Result
r)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkDestroyMicromapEXT
:: FunPtr (Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ()
destroyMicromapEXT :: forall io
. (MonadIO io)
=>
Device
->
MicromapEXT
->
("allocator" ::: Maybe AllocationCallbacks)
-> io ()
destroyMicromapEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> MicromapEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ()
destroyMicromapEXT Device
device MicromapEXT
micromap "allocator" ::: Maybe AllocationCallbacks
allocator = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkDestroyMicromapEXTPtr :: FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
vkDestroyMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
pVkDestroyMicromapEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
vkDestroyMicromapEXTPtr FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
-> FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkDestroyMicromapEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkDestroyMicromapEXT' :: Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ()
vkDestroyMicromapEXT' = FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
-> Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ()
mkVkDestroyMicromapEXT FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
vkDestroyMicromapEXTPtr
"pAllocator" ::: Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ContT () IO ("pAllocator" ::: Ptr AllocationCallbacks)
forall (f :: * -> *) a. Applicative f => a -> f a
pure "pAllocator" ::: Ptr AllocationCallbacks
forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> ((("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) -> IO ())
-> ContT () IO ("pAllocator" ::: Ptr AllocationCallbacks)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) -> IO ())
-> ContT () IO ("pAllocator" ::: Ptr AllocationCallbacks))
-> ((("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) -> IO ())
-> ContT () IO ("pAllocator" ::: Ptr AllocationCallbacks)
forall a b. (a -> b) -> a -> b
$ AllocationCallbacks
-> (("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkDestroyMicromapEXT" (Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ()
vkDestroyMicromapEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(MicromapEXT
micromap)
"pAllocator" ::: Ptr AllocationCallbacks
pAllocator)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdCopyMicromapEXT
:: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ()
cmdCopyMicromapEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
CopyMicromapInfoEXT
-> io ()
cmdCopyMicromapEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> CopyMicromapInfoEXT -> io ()
cmdCopyMicromapEXT CommandBuffer
commandBuffer CopyMicromapInfoEXT
info = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMicromapEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
vkCmdCopyMicromapEXTPtr = DeviceCmds
-> FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
pVkCmdCopyMicromapEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
vkCmdCopyMicromapEXTPtr FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
-> FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdCopyMicromapEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdCopyMicromapEXT' :: Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ()
vkCmdCopyMicromapEXT' = FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
-> Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ()
mkVkCmdCopyMicromapEXT FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
vkCmdCopyMicromapEXTPtr
Ptr CopyMicromapInfoEXT
pInfo <- ((Ptr CopyMicromapInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMicromapInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CopyMicromapInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMicromapInfoEXT))
-> ((Ptr CopyMicromapInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMicromapInfoEXT)
forall a b. (a -> b) -> a -> b
$ CopyMicromapInfoEXT -> (Ptr CopyMicromapInfoEXT -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMicromapInfoEXT
info)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdCopyMicromapEXT" (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ()
vkCmdCopyMicromapEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
Ptr CopyMicromapInfoEXT
pInfo)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCopyMicromapEXT
:: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result) -> Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result
copyMicromapEXT :: forall io
. (MonadIO io)
=>
Device
->
DeferredOperationKHR
->
CopyMicromapInfoEXT
-> io (Result)
copyMicromapEXT :: forall (io :: * -> *).
MonadIO io =>
Device -> DeferredOperationKHR -> CopyMicromapInfoEXT -> io Result
copyMicromapEXT Device
device DeferredOperationKHR
deferredOperation CopyMicromapInfoEXT
info = IO Result -> io Result
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Result -> io Result)
-> (ContT Result IO Result -> IO Result)
-> ContT Result IO Result
-> io Result
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT Result IO Result -> IO Result
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT Result IO Result -> io Result)
-> ContT Result IO Result -> io Result
forall a b. (a -> b) -> a -> b
$ do
let vkCopyMicromapEXTPtr :: FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
vkCopyMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
pVkCopyMicromapEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT Result IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT Result IO ()) -> IO () -> ContT Result IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
vkCopyMicromapEXTPtr FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCopyMicromapEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCopyMicromapEXT' :: Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result
vkCopyMicromapEXT' = FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
-> Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMicromapInfoEXT
-> IO Result
mkVkCopyMicromapEXT FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
vkCopyMicromapEXTPtr
Ptr CopyMicromapInfoEXT
pInfo <- ((Ptr CopyMicromapInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr CopyMicromapInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CopyMicromapInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr CopyMicromapInfoEXT))
-> ((Ptr CopyMicromapInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr CopyMicromapInfoEXT)
forall a b. (a -> b) -> a -> b
$ CopyMicromapInfoEXT
-> (Ptr CopyMicromapInfoEXT -> IO Result) -> IO Result
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMicromapInfoEXT
info)
Result
r <- IO Result -> ContT Result IO Result
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT Result IO Result)
-> IO Result -> ContT Result IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCopyMicromapEXT" (Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result
vkCopyMicromapEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(DeferredOperationKHR
deferredOperation)
Ptr CopyMicromapInfoEXT
pInfo)
IO () -> ContT Result IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT Result IO ()) -> IO () -> ContT Result IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
Result -> ContT Result IO Result
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Result -> ContT Result IO Result)
-> Result -> ContT Result IO Result
forall a b. (a -> b) -> a -> b
$ (Result
r)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdCopyMicromapToMemoryEXT
:: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ()
cmdCopyMicromapToMemoryEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
CopyMicromapToMemoryInfoEXT
-> io ()
cmdCopyMicromapToMemoryEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> CopyMicromapToMemoryInfoEXT -> io ()
cmdCopyMicromapToMemoryEXT CommandBuffer
commandBuffer CopyMicromapToMemoryInfoEXT
info = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMicromapToMemoryEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
vkCmdCopyMicromapToMemoryEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
pVkCmdCopyMicromapToMemoryEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
vkCmdCopyMicromapToMemoryEXTPtr FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdCopyMicromapToMemoryEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdCopyMicromapToMemoryEXT' :: Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ()
vkCmdCopyMicromapToMemoryEXT' = FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
-> Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO ()
mkVkCmdCopyMicromapToMemoryEXT FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
vkCmdCopyMicromapToMemoryEXTPtr
"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
pInfo <- ((("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ()) -> IO ())
-> ContT () IO ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
-> IO ())
-> ContT () IO ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT))
-> ((("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
-> IO ())
-> ContT () IO ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
forall a b. (a -> b) -> a -> b
$ CopyMicromapToMemoryInfoEXT
-> (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
-> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMicromapToMemoryInfoEXT
info)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdCopyMicromapToMemoryEXT" (Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ()
vkCmdCopyMicromapToMemoryEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
pInfo)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCopyMicromapToMemoryEXT
:: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapToMemoryInfoEXT -> IO Result) -> Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapToMemoryInfoEXT -> IO Result
copyMicromapToMemoryEXT :: forall io
. (MonadIO io)
=>
Device
->
DeferredOperationKHR
->
CopyMicromapToMemoryInfoEXT
-> io (Result)
copyMicromapToMemoryEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> DeferredOperationKHR -> CopyMicromapToMemoryInfoEXT -> io Result
copyMicromapToMemoryEXT Device
device DeferredOperationKHR
deferredOperation CopyMicromapToMemoryInfoEXT
info = IO Result -> io Result
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Result -> io Result)
-> (ContT Result IO Result -> IO Result)
-> ContT Result IO Result
-> io Result
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT Result IO Result -> IO Result
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT Result IO Result -> io Result)
-> ContT Result IO Result -> io Result
forall a b. (a -> b) -> a -> b
$ do
let vkCopyMicromapToMemoryEXTPtr :: FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
vkCopyMicromapToMemoryEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
pVkCopyMicromapToMemoryEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT Result IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT Result IO ()) -> IO () -> ContT Result IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
vkCopyMicromapToMemoryEXTPtr FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCopyMicromapToMemoryEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCopyMicromapToMemoryEXT' :: Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result
vkCopyMicromapToMemoryEXT' = FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
-> Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result
mkVkCopyMicromapToMemoryEXT FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
vkCopyMicromapToMemoryEXTPtr
"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
pInfo <- ((("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO Result)
-> IO Result)
-> ContT Result IO ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO Result)
-> IO Result)
-> ContT Result IO ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT))
-> ((("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO Result)
-> IO Result)
-> ContT Result IO ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
forall a b. (a -> b) -> a -> b
$ CopyMicromapToMemoryInfoEXT
-> (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO Result)
-> IO Result
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMicromapToMemoryInfoEXT
info)
Result
r <- IO Result -> ContT Result IO Result
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT Result IO Result)
-> IO Result -> ContT Result IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCopyMicromapToMemoryEXT" (Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result
vkCopyMicromapToMemoryEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(DeferredOperationKHR
deferredOperation)
"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
pInfo)
IO () -> ContT Result IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT Result IO ()) -> IO () -> ContT Result IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
Result -> ContT Result IO Result
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Result -> ContT Result IO Result)
-> Result -> ContT Result IO Result
forall a b. (a -> b) -> a -> b
$ (Result
r)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdCopyMemoryToMicromapEXT
:: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ()
cmdCopyMemoryToMicromapEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
CopyMemoryToMicromapInfoEXT
-> io ()
cmdCopyMemoryToMicromapEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> CopyMemoryToMicromapInfoEXT -> io ()
cmdCopyMemoryToMicromapEXT CommandBuffer
commandBuffer CopyMemoryToMicromapInfoEXT
info = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMemoryToMicromapEXTPtr :: FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
vkCmdCopyMemoryToMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
pVkCmdCopyMemoryToMicromapEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
vkCmdCopyMemoryToMicromapEXTPtr FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
-> FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdCopyMemoryToMicromapEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdCopyMemoryToMicromapEXT' :: Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ()
vkCmdCopyMemoryToMicromapEXT' = FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
-> Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ()
mkVkCmdCopyMemoryToMicromapEXT FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
vkCmdCopyMemoryToMicromapEXTPtr
Ptr CopyMemoryToMicromapInfoEXT
pInfo <- ((Ptr CopyMemoryToMicromapInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMemoryToMicromapInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CopyMemoryToMicromapInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMemoryToMicromapInfoEXT))
-> ((Ptr CopyMemoryToMicromapInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMemoryToMicromapInfoEXT)
forall a b. (a -> b) -> a -> b
$ CopyMemoryToMicromapInfoEXT
-> (Ptr CopyMemoryToMicromapInfoEXT -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMemoryToMicromapInfoEXT
info)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdCopyMemoryToMicromapEXT" (Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ()
vkCmdCopyMemoryToMicromapEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
Ptr CopyMemoryToMicromapInfoEXT
pInfo)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCopyMemoryToMicromapEXT
:: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMemoryToMicromapInfoEXT -> IO Result) -> Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMemoryToMicromapInfoEXT -> IO Result
copyMemoryToMicromapEXT :: forall io
. (MonadIO io)
=>
Device
->
DeferredOperationKHR
->
CopyMemoryToMicromapInfoEXT
-> io (Result)
copyMemoryToMicromapEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> DeferredOperationKHR -> CopyMemoryToMicromapInfoEXT -> io Result
copyMemoryToMicromapEXT Device
device DeferredOperationKHR
deferredOperation CopyMemoryToMicromapInfoEXT
info = IO Result -> io Result
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Result -> io Result)
-> (ContT Result IO Result -> IO Result)
-> ContT Result IO Result
-> io Result
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT Result IO Result -> IO Result
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT Result IO Result -> io Result)
-> ContT Result IO Result -> io Result
forall a b. (a -> b) -> a -> b
$ do
let vkCopyMemoryToMicromapEXTPtr :: FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
vkCopyMemoryToMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
pVkCopyMemoryToMicromapEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT Result IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT Result IO ()) -> IO () -> ContT Result IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
vkCopyMemoryToMicromapEXTPtr FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCopyMemoryToMicromapEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCopyMemoryToMicromapEXT' :: Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result
vkCopyMemoryToMicromapEXT' = FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
-> Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result
mkVkCopyMemoryToMicromapEXT FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
vkCopyMemoryToMicromapEXTPtr
Ptr CopyMemoryToMicromapInfoEXT
pInfo <- ((Ptr CopyMemoryToMicromapInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr CopyMemoryToMicromapInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CopyMemoryToMicromapInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr CopyMemoryToMicromapInfoEXT))
-> ((Ptr CopyMemoryToMicromapInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr CopyMemoryToMicromapInfoEXT)
forall a b. (a -> b) -> a -> b
$ CopyMemoryToMicromapInfoEXT
-> (Ptr CopyMemoryToMicromapInfoEXT -> IO Result) -> IO Result
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMemoryToMicromapInfoEXT
info)
Result
r <- IO Result -> ContT Result IO Result
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT Result IO Result)
-> IO Result -> ContT Result IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCopyMemoryToMicromapEXT" (Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result
vkCopyMemoryToMicromapEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(DeferredOperationKHR
deferredOperation)
Ptr CopyMemoryToMicromapInfoEXT
pInfo)
IO () -> ContT Result IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT Result IO ()) -> IO () -> ContT Result IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
Result -> ContT Result IO Result
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Result -> ContT Result IO Result)
-> Result -> ContT Result IO Result
forall a b. (a -> b) -> a -> b
$ (Result
r)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdWriteMicromapsPropertiesEXT
:: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr MicromapEXT -> QueryType -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr MicromapEXT -> QueryType -> QueryPool -> Word32 -> IO ()
cmdWriteMicromapsPropertiesEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("micromaps" ::: Vector MicromapEXT)
->
QueryType
->
QueryPool
->
("firstQuery" ::: Word32)
-> io ()
cmdWriteMicromapsPropertiesEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> ("micromaps" ::: Vector MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> io ()
cmdWriteMicromapsPropertiesEXT CommandBuffer
commandBuffer
"micromaps" ::: Vector MicromapEXT
micromaps
QueryType
queryType
QueryPool
queryPool
Flags
firstQuery = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdWriteMicromapsPropertiesEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
vkCmdWriteMicromapsPropertiesEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
pVkCmdWriteMicromapsPropertiesEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
vkCmdWriteMicromapsPropertiesEXTPtr FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdWriteMicromapsPropertiesEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdWriteMicromapsPropertiesEXT' :: Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ()
vkCmdWriteMicromapsPropertiesEXT' = FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
-> Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ()
mkVkCmdWriteMicromapsPropertiesEXT FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
vkCmdWriteMicromapsPropertiesEXTPtr
"pMicromap" ::: Ptr MicromapEXT
pPMicromaps <- ((("pMicromap" ::: Ptr MicromapEXT) -> IO ()) -> IO ())
-> ContT () IO ("pMicromap" ::: Ptr MicromapEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pMicromap" ::: Ptr MicromapEXT) -> IO ()) -> IO ())
-> ContT () IO ("pMicromap" ::: Ptr MicromapEXT))
-> ((("pMicromap" ::: Ptr MicromapEXT) -> IO ()) -> IO ())
-> ContT () IO ("pMicromap" ::: Ptr MicromapEXT)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapEXT ((("micromaps" ::: Vector MicromapEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length ("micromaps" ::: Vector MicromapEXT
micromaps)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
8)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ (Int -> MicromapEXT -> IO ())
-> ("micromaps" ::: Vector MicromapEXT) -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapEXT
e -> ("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ("pMicromap" ::: Ptr MicromapEXT
pPMicromaps ("pMicromap" ::: Ptr MicromapEXT)
-> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
8 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapEXT) (MicromapEXT
e)) ("micromaps" ::: Vector MicromapEXT
micromaps)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdWriteMicromapsPropertiesEXT" (Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ()
vkCmdWriteMicromapsPropertiesEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
((Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral (("micromaps" ::: Vector MicromapEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length (("micromaps" ::: Vector MicromapEXT) -> Int)
-> ("micromaps" ::: Vector MicromapEXT) -> Int
forall a b. (a -> b) -> a -> b
$ ("micromaps" ::: Vector MicromapEXT
micromaps)) :: Word32))
("pMicromap" ::: Ptr MicromapEXT
pPMicromaps)
(QueryType
queryType)
(QueryPool
queryPool)
(Flags
firstQuery))
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkWriteMicromapsPropertiesEXT
:: FunPtr (Ptr Device_T -> Word32 -> Ptr MicromapEXT -> QueryType -> CSize -> Ptr () -> CSize -> IO Result) -> Ptr Device_T -> Word32 -> Ptr MicromapEXT -> QueryType -> CSize -> Ptr () -> CSize -> IO Result
writeMicromapsPropertiesEXT :: forall io
. (MonadIO io)
=>
Device
->
("micromaps" ::: Vector MicromapEXT)
->
QueryType
->
("dataSize" ::: Word64)
->
("data" ::: Ptr ())
->
("stride" ::: Word64)
-> io ()
writeMicromapsPropertiesEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> ("micromaps" ::: Vector MicromapEXT)
-> QueryType
-> ("dataSize" ::: Word64)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: Word64)
-> io ()
writeMicromapsPropertiesEXT Device
device
"micromaps" ::: Vector MicromapEXT
micromaps
QueryType
queryType
"dataSize" ::: Word64
dataSize
"data" ::: Ptr ()
data'
"dataSize" ::: Word64
stride = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkWriteMicromapsPropertiesEXTPtr :: FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
vkWriteMicromapsPropertiesEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
pVkWriteMicromapsPropertiesEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
vkWriteMicromapsPropertiesEXTPtr FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkWriteMicromapsPropertiesEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkWriteMicromapsPropertiesEXT' :: Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result
vkWriteMicromapsPropertiesEXT' = FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
-> Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result
mkVkWriteMicromapsPropertiesEXT FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
vkWriteMicromapsPropertiesEXTPtr
"pMicromap" ::: Ptr MicromapEXT
pPMicromaps <- ((("pMicromap" ::: Ptr MicromapEXT) -> IO ()) -> IO ())
-> ContT () IO ("pMicromap" ::: Ptr MicromapEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pMicromap" ::: Ptr MicromapEXT) -> IO ()) -> IO ())
-> ContT () IO ("pMicromap" ::: Ptr MicromapEXT))
-> ((("pMicromap" ::: Ptr MicromapEXT) -> IO ()) -> IO ())
-> ContT () IO ("pMicromap" ::: Ptr MicromapEXT)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapEXT ((("micromaps" ::: Vector MicromapEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length ("micromaps" ::: Vector MicromapEXT
micromaps)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
8)
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ (Int -> MicromapEXT -> IO ())
-> ("micromaps" ::: Vector MicromapEXT) -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapEXT
e -> ("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ("pMicromap" ::: Ptr MicromapEXT
pPMicromaps ("pMicromap" ::: Ptr MicromapEXT)
-> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
8 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapEXT) (MicromapEXT
e)) ("micromaps" ::: Vector MicromapEXT
micromaps)
Result
r <- IO Result -> ContT () IO Result
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT () IO Result)
-> IO Result -> ContT () IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkWriteMicromapsPropertiesEXT" (Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result
vkWriteMicromapsPropertiesEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
((Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral (("micromaps" ::: Vector MicromapEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length (("micromaps" ::: Vector MicromapEXT) -> Int)
-> ("micromaps" ::: Vector MicromapEXT) -> Int
forall a b. (a -> b) -> a -> b
$ ("micromaps" ::: Vector MicromapEXT
micromaps)) :: Word32))
("pMicromap" ::: Ptr MicromapEXT
pPMicromaps)
(QueryType
queryType)
(("dataSize" ::: Word64) -> "dataSize" ::: CSize
CSize ("dataSize" ::: Word64
dataSize))
("data" ::: Ptr ()
data')
(("dataSize" ::: Word64) -> "dataSize" ::: CSize
CSize ("dataSize" ::: Word64
stride)))
IO () -> ContT () IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetDeviceMicromapCompatibilityEXT
:: FunPtr (Ptr Device_T -> Ptr MicromapVersionInfoEXT -> Ptr AccelerationStructureCompatibilityKHR -> IO ()) -> Ptr Device_T -> Ptr MicromapVersionInfoEXT -> Ptr AccelerationStructureCompatibilityKHR -> IO ()
getDeviceMicromapCompatibilityEXT :: forall io
. (MonadIO io)
=>
Device
->
MicromapVersionInfoEXT
-> io (AccelerationStructureCompatibilityKHR)
getDeviceMicromapCompatibilityEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> MicromapVersionInfoEXT
-> io AccelerationStructureCompatibilityKHR
getDeviceMicromapCompatibilityEXT Device
device MicromapVersionInfoEXT
versionInfo = IO AccelerationStructureCompatibilityKHR
-> io AccelerationStructureCompatibilityKHR
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO AccelerationStructureCompatibilityKHR
-> io AccelerationStructureCompatibilityKHR)
-> (ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
-> io AccelerationStructureCompatibilityKHR
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
-> IO AccelerationStructureCompatibilityKHR
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
-> io AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
-> io AccelerationStructureCompatibilityKHR
forall a b. (a -> b) -> a -> b
$ do
let vkGetDeviceMicromapCompatibilityEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
vkGetDeviceMicromapCompatibilityEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
pVkGetDeviceMicromapCompatibilityEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT AccelerationStructureCompatibilityKHR IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT AccelerationStructureCompatibilityKHR IO ())
-> IO () -> ContT AccelerationStructureCompatibilityKHR IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
vkGetDeviceMicromapCompatibilityEXTPtr FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
-> FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetDeviceMicromapCompatibilityEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetDeviceMicromapCompatibilityEXT' :: Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ()
vkGetDeviceMicromapCompatibilityEXT' = FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
-> Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ()
mkVkGetDeviceMicromapCompatibilityEXT FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
vkGetDeviceMicromapCompatibilityEXTPtr
Ptr MicromapVersionInfoEXT
pVersionInfo <- ((Ptr MicromapVersionInfoEXT
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
(Ptr MicromapVersionInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapVersionInfoEXT
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
(Ptr MicromapVersionInfoEXT))
-> ((Ptr MicromapVersionInfoEXT
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
(Ptr MicromapVersionInfoEXT)
forall a b. (a -> b) -> a -> b
$ MicromapVersionInfoEXT
-> (Ptr MicromapVersionInfoEXT
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (MicromapVersionInfoEXT
versionInfo)
"pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR
pPCompatibility <- ((("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR))
-> ((("pCompatibility"
::: Ptr AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
forall a b. (a -> b) -> a -> b
$ IO ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> (("pCompatibility"
::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
-> (("pCompatibility"
::: Ptr AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @AccelerationStructureCompatibilityKHR Int
4) ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ()
forall a. Ptr a -> IO ()
free
IO () -> ContT AccelerationStructureCompatibilityKHR IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT AccelerationStructureCompatibilityKHR IO ())
-> IO () -> ContT AccelerationStructureCompatibilityKHR IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetDeviceMicromapCompatibilityEXT" (Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ()
vkGetDeviceMicromapCompatibilityEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
Ptr MicromapVersionInfoEXT
pVersionInfo
("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR
pPCompatibility))
AccelerationStructureCompatibilityKHR
pCompatibility <- IO AccelerationStructureCompatibilityKHR
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO AccelerationStructureCompatibilityKHR
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @AccelerationStructureCompatibilityKHR "pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR
pPCompatibility
AccelerationStructureCompatibilityKHR
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (AccelerationStructureCompatibilityKHR
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR)
-> AccelerationStructureCompatibilityKHR
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
forall a b. (a -> b) -> a -> b
$ (AccelerationStructureCompatibilityKHR
pCompatibility)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetMicromapBuildSizesEXT
:: FunPtr (Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> Ptr MicromapBuildSizesInfoEXT -> IO ()) -> Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> Ptr MicromapBuildSizesInfoEXT -> IO ()
getMicromapBuildSizesEXT :: forall io
. (MonadIO io)
=>
Device
->
AccelerationStructureBuildTypeKHR
->
MicromapBuildInfoEXT
-> io (("sizeInfo" ::: MicromapBuildSizesInfoEXT))
getMicromapBuildSizesEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> AccelerationStructureBuildTypeKHR
-> MicromapBuildInfoEXT
-> io MicromapBuildSizesInfoEXT
getMicromapBuildSizesEXT Device
device AccelerationStructureBuildTypeKHR
buildType MicromapBuildInfoEXT
buildInfo = IO MicromapBuildSizesInfoEXT -> io MicromapBuildSizesInfoEXT
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MicromapBuildSizesInfoEXT -> io MicromapBuildSizesInfoEXT)
-> (ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT
-> IO MicromapBuildSizesInfoEXT)
-> ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT
-> io MicromapBuildSizesInfoEXT
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT
-> IO MicromapBuildSizesInfoEXT
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT
-> io MicromapBuildSizesInfoEXT)
-> ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT
-> io MicromapBuildSizesInfoEXT
forall a b. (a -> b) -> a -> b
$ do
let vkGetMicromapBuildSizesEXTPtr :: FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
vkGetMicromapBuildSizesEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
pVkGetMicromapBuildSizesEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT MicromapBuildSizesInfoEXT IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT MicromapBuildSizesInfoEXT IO ())
-> IO () -> ContT MicromapBuildSizesInfoEXT IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
vkGetMicromapBuildSizesEXTPtr FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
-> FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetMicromapBuildSizesEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetMicromapBuildSizesEXT' :: Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ()
vkGetMicromapBuildSizesEXT' = FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
-> Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ()
mkVkGetMicromapBuildSizesEXT FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
vkGetMicromapBuildSizesEXTPtr
"pInfos" ::: Ptr MicromapBuildInfoEXT
pBuildInfo <- ((("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT)
-> ContT
MicromapBuildSizesInfoEXT
IO
("pInfos" ::: Ptr MicromapBuildInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT)
-> ContT
MicromapBuildSizesInfoEXT
IO
("pInfos" ::: Ptr MicromapBuildInfoEXT))
-> ((("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT)
-> ContT
MicromapBuildSizesInfoEXT
IO
("pInfos" ::: Ptr MicromapBuildInfoEXT)
forall a b. (a -> b) -> a -> b
$ MicromapBuildInfoEXT
-> (("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (MicromapBuildInfoEXT
buildInfo)
"pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
pPSizeInfo <- ((("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT)
-> ContT
MicromapBuildSizesInfoEXT
IO
("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @MicromapBuildSizesInfoEXT)
IO () -> ContT MicromapBuildSizesInfoEXT IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT MicromapBuildSizesInfoEXT IO ())
-> IO () -> ContT MicromapBuildSizesInfoEXT IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetMicromapBuildSizesEXT" (Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ()
vkGetMicromapBuildSizesEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(AccelerationStructureBuildTypeKHR
buildType)
"pInfos" ::: Ptr MicromapBuildInfoEXT
pBuildInfo
("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
pPSizeInfo))
MicromapBuildSizesInfoEXT
pSizeInfo <- IO MicromapBuildSizesInfoEXT
-> ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO MicromapBuildSizesInfoEXT
-> ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT
-> ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT
forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @MicromapBuildSizesInfoEXT "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
pPSizeInfo
MicromapBuildSizesInfoEXT
-> ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (MicromapBuildSizesInfoEXT
-> ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT)
-> MicromapBuildSizesInfoEXT
-> ContT MicromapBuildSizesInfoEXT IO MicromapBuildSizesInfoEXT
forall a b. (a -> b) -> a -> b
$ (MicromapBuildSizesInfoEXT
pSizeInfo)
data MicromapBuildInfoEXT = MicromapBuildInfoEXT
{
MicromapBuildInfoEXT -> MicromapTypeEXT
type' :: MicromapTypeEXT
,
MicromapBuildInfoEXT -> BuildMicromapFlagBitsEXT
flags :: BuildMicromapFlagsEXT
,
MicromapBuildInfoEXT -> BuildMicromapModeEXT
mode :: BuildMicromapModeEXT
,
MicromapBuildInfoEXT -> MicromapEXT
dstMicromap :: MicromapEXT
,
MicromapBuildInfoEXT -> Flags
usageCountsCount :: Word32
,
MicromapBuildInfoEXT -> Vector MicromapUsageEXT
usageCounts :: Vector MicromapUsageEXT
,
MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
data' :: DeviceOrHostAddressConstKHR
,
MicromapBuildInfoEXT -> DeviceOrHostAddressKHR
scratchData :: DeviceOrHostAddressKHR
,
MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
triangleArray :: DeviceOrHostAddressConstKHR
,
MicromapBuildInfoEXT -> "dataSize" ::: Word64
triangleArrayStride :: DeviceSize
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapBuildInfoEXT)
#endif
deriving instance Show MicromapBuildInfoEXT
instance ToCStruct MicromapBuildInfoEXT where
withCStruct :: forall b.
MicromapBuildInfoEXT
-> (("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b) -> IO b
withCStruct MicromapBuildInfoEXT
x ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b
f = Int -> (("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
96 ((("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b) -> IO b)
-> (("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \"pInfos" ::: Ptr MicromapBuildInfoEXT
p -> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> MicromapBuildInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pInfos" ::: Ptr MicromapBuildInfoEXT
p MicromapBuildInfoEXT
x (("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b
f "pInfos" ::: Ptr MicromapBuildInfoEXT
p)
pokeCStruct :: forall b.
("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> MicromapBuildInfoEXT -> IO b -> IO b
pokeCStruct "pInfos" ::: Ptr MicromapBuildInfoEXT
p MicromapBuildInfoEXT{Flags
"dataSize" ::: Word64
Vector MicromapUsageEXT
MicromapEXT
DeviceOrHostAddressConstKHR
DeviceOrHostAddressKHR
BuildMicromapModeEXT
BuildMicromapFlagBitsEXT
MicromapTypeEXT
triangleArrayStride :: "dataSize" ::: Word64
triangleArray :: DeviceOrHostAddressConstKHR
scratchData :: DeviceOrHostAddressKHR
data' :: DeviceOrHostAddressConstKHR
usageCounts :: Vector MicromapUsageEXT
usageCountsCount :: Flags
dstMicromap :: MicromapEXT
mode :: BuildMicromapModeEXT
flags :: BuildMicromapFlagBitsEXT
type' :: MicromapTypeEXT
$sel:triangleArrayStride:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> "dataSize" ::: Word64
$sel:triangleArray:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
$sel:scratchData:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> DeviceOrHostAddressKHR
$sel:data':MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
$sel:usageCounts:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> Vector MicromapUsageEXT
$sel:usageCountsCount:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> Flags
$sel:dstMicromap:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> MicromapEXT
$sel:mode:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> BuildMicromapModeEXT
$sel:flags:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> BuildMicromapFlagBitsEXT
$sel:type':MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> MicromapTypeEXT
..} 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 (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 (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT)
IO () -> ContT b IO ()
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 ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
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 MicromapTypeEXT -> MicromapTypeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr MicromapTypeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapTypeEXT)) (MicromapTypeEXT
type')
IO () -> ContT b IO ()
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 BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr BuildMicromapFlagBitsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr BuildMicromapFlagsEXT)) (BuildMicromapFlagBitsEXT
flags)
IO () -> ContT b IO ()
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 BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr BuildMicromapModeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr BuildMicromapModeEXT)) (BuildMicromapModeEXT
mode)
IO () -> ContT b IO ()
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
$ ("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr MicromapEXT)) (MicromapEXT
dstMicromap)
let pUsageCountsLength :: Int
pUsageCountsLength = Vector MicromapUsageEXT -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector MicromapUsageEXT -> Int) -> Vector MicromapUsageEXT -> Int
forall a b. (a -> b) -> a -> b
$ (Vector MicromapUsageEXT
usageCounts)
Flags
usageCountsCount'' <- IO Flags -> ContT b IO Flags
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Flags -> ContT b IO Flags) -> IO Flags -> ContT b IO Flags
forall a b. (a -> b) -> a -> b
$ if (Flags
usageCountsCount) Flags -> Flags -> Bool
forall a. Eq a => a -> a -> Bool
== Flags
0
then Flags -> IO Flags
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> IO Flags) -> Flags -> IO Flags
forall a b. (a -> b) -> a -> b
$ Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
pUsageCountsLength
else do
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
pUsageCountsLength Flags -> Flags -> Bool
forall a. Eq a => a -> a -> Bool
== (Flags
usageCountsCount) Bool -> Bool -> Bool
|| Int
pUsageCountsLength Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
0) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"pUsageCounts must be empty or have 'usageCountsCount' elements" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
Flags -> IO Flags
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags
usageCountsCount)
IO () -> ContT b IO ()
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 Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Flags
usageCountsCount'')
Ptr MicromapUsageEXT
pUsageCounts'' <- if Vector MicromapUsageEXT -> Bool
forall a. Vector a -> Bool
Data.Vector.null (Vector MicromapUsageEXT
usageCounts)
then Ptr MicromapUsageEXT -> ContT b IO (Ptr MicromapUsageEXT)
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr MicromapUsageEXT
forall a. Ptr a
nullPtr
else do
Ptr MicromapUsageEXT
pPUsageCounts <- ((Ptr MicromapUsageEXT -> IO b) -> IO b)
-> ContT b IO (Ptr MicromapUsageEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapUsageEXT -> IO b) -> IO b)
-> ContT b IO (Ptr MicromapUsageEXT))
-> ((Ptr MicromapUsageEXT -> IO b) -> IO b)
-> ContT b IO (Ptr MicromapUsageEXT)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapUsageEXT (((Vector MicromapUsageEXT -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector MicromapUsageEXT
usageCounts))) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
12)
IO () -> ContT b IO ()
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
$ (Int -> MicromapUsageEXT -> IO ())
-> Vector MicromapUsageEXT -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapUsageEXT
e -> Ptr MicromapUsageEXT -> MicromapUsageEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr MicromapUsageEXT
pPUsageCounts Ptr MicromapUsageEXT -> Int -> Ptr MicromapUsageEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
12 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapUsageEXT) (MicromapUsageEXT
e)) ((Vector MicromapUsageEXT
usageCounts))
Ptr MicromapUsageEXT -> ContT b IO (Ptr MicromapUsageEXT)
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Ptr MicromapUsageEXT -> ContT b IO (Ptr MicromapUsageEXT))
-> Ptr MicromapUsageEXT -> ContT b IO (Ptr MicromapUsageEXT)
forall a b. (a -> b) -> a -> b
$ Ptr MicromapUsageEXT
pPUsageCounts
IO () -> ContT b IO ()
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 MicromapUsageEXT) -> Ptr MicromapUsageEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr (Ptr MicromapUsageEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr MicromapUsageEXT))) Ptr MicromapUsageEXT
pUsageCounts''
IO () -> ContT b IO ()
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 MicromapUsageEXT))
-> Ptr (Ptr MicromapUsageEXT) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr (Ptr (Ptr MicromapUsageEXT))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (Ptr (Ptr MicromapUsageEXT)
forall a. Ptr a
nullPtr)
((() -> 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 DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr DeviceOrHostAddressConstKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
data') (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
$ ())
((() -> 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 DeviceOrHostAddressKHR
-> DeviceOrHostAddressKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr DeviceOrHostAddressKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr DeviceOrHostAddressKHR)) (DeviceOrHostAddressKHR
scratchData) (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
$ ())
((() -> 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 DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr DeviceOrHostAddressConstKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
triangleArray) (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
$ ())
IO () -> ContT b IO ()
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 ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr DeviceSize)) ("dataSize" ::: Word64
triangleArrayStride)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
96
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b -> IO b
pokeZeroCStruct "pInfos" ::: Ptr MicromapBuildInfoEXT
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 (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 (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT)
IO () -> ContT b IO ()
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 ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
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 MicromapTypeEXT -> MicromapTypeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr MicromapTypeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapTypeEXT)) (MicromapTypeEXT
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr BuildMicromapModeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr BuildMicromapModeEXT)) (BuildMicromapModeEXT
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 MicromapUsageEXT))
-> Ptr (Ptr MicromapUsageEXT) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr (Ptr (Ptr MicromapUsageEXT))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (Ptr (Ptr MicromapUsageEXT)
forall a. Ptr a
nullPtr)
((() -> 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 DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr DeviceOrHostAddressConstKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
forall a. Zero a => a
zero) (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
$ ())
((() -> 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 DeviceOrHostAddressKHR
-> DeviceOrHostAddressKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr DeviceOrHostAddressKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr DeviceOrHostAddressKHR)) (DeviceOrHostAddressKHR
forall a. Zero a => a
zero) (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
$ ())
((() -> 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 DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr DeviceOrHostAddressConstKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
forall a. Zero a => a
zero) (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
$ ())
IO () -> ContT b IO ()
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 ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr DeviceSize)) ("dataSize" ::: Word64
forall a. Zero a => a
zero)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance Zero MicromapBuildInfoEXT where
zero :: MicromapBuildInfoEXT
zero = MicromapTypeEXT
-> BuildMicromapFlagBitsEXT
-> BuildMicromapModeEXT
-> MicromapEXT
-> Flags
-> Vector MicromapUsageEXT
-> DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressKHR
-> DeviceOrHostAddressConstKHR
-> ("dataSize" ::: Word64)
-> MicromapBuildInfoEXT
MicromapBuildInfoEXT
MicromapTypeEXT
forall a. Zero a => a
zero
BuildMicromapFlagBitsEXT
forall a. Zero a => a
zero
BuildMicromapModeEXT
forall a. Zero a => a
zero
MicromapEXT
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Vector MicromapUsageEXT
forall a. Monoid a => a
mempty
DeviceOrHostAddressConstKHR
forall a. Zero a => a
zero
DeviceOrHostAddressKHR
forall a. Zero a => a
zero
DeviceOrHostAddressConstKHR
forall a. Zero a => a
zero
"dataSize" ::: Word64
forall a. Zero a => a
zero
data MicromapCreateInfoEXT = MicromapCreateInfoEXT
{
MicromapCreateInfoEXT -> MicromapCreateFlagBitsEXT
createFlags :: MicromapCreateFlagsEXT
,
MicromapCreateInfoEXT -> Buffer
buffer :: Buffer
,
MicromapCreateInfoEXT -> "dataSize" ::: Word64
offset :: DeviceSize
,
MicromapCreateInfoEXT -> "dataSize" ::: Word64
size :: DeviceSize
,
MicromapCreateInfoEXT -> MicromapTypeEXT
type' :: MicromapTypeEXT
,
MicromapCreateInfoEXT -> "dataSize" ::: Word64
deviceAddress :: DeviceAddress
}
deriving (Typeable, MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
(MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool)
-> (MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool)
-> Eq MicromapCreateInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
$c/= :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
== :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
$c== :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapCreateInfoEXT)
#endif
deriving instance Show MicromapCreateInfoEXT
instance ToCStruct MicromapCreateInfoEXT where
withCStruct :: forall b.
MicromapCreateInfoEXT
-> (Ptr MicromapCreateInfoEXT -> IO b) -> IO b
withCStruct MicromapCreateInfoEXT
x Ptr MicromapCreateInfoEXT -> IO b
f = Int -> (Ptr MicromapCreateInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
64 ((Ptr MicromapCreateInfoEXT -> IO b) -> IO b)
-> (Ptr MicromapCreateInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr MicromapCreateInfoEXT
p -> Ptr MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapCreateInfoEXT
p MicromapCreateInfoEXT
x (Ptr MicromapCreateInfoEXT -> IO b
f Ptr MicromapCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr MicromapCreateInfoEXT
p MicromapCreateInfoEXT{"dataSize" ::: Word64
Buffer
MicromapCreateFlagBitsEXT
MicromapTypeEXT
deviceAddress :: "dataSize" ::: Word64
type' :: MicromapTypeEXT
size :: "dataSize" ::: Word64
offset :: "dataSize" ::: Word64
buffer :: Buffer
createFlags :: MicromapCreateFlagBitsEXT
$sel:deviceAddress:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> "dataSize" ::: Word64
$sel:type':MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> MicromapTypeEXT
$sel:size:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> "dataSize" ::: Word64
$sel:offset:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> "dataSize" ::: Word64
$sel:buffer:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> Buffer
$sel:createFlags:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> MicromapCreateFlagBitsEXT
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr MicromapCreateFlagBitsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapCreateFlagsEXT)) (MicromapCreateFlagBitsEXT
createFlags)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Buffer)) (Buffer
buffer)
Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) ("dataSize" ::: Word64
offset)
Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr DeviceSize)) ("dataSize" ::: Word64
size)
Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr MicromapTypeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr MicromapTypeEXT)) (MicromapTypeEXT
type')
Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr DeviceAddress)) ("dataSize" ::: Word64
deviceAddress)
IO b
f
cStructSize :: Int
cStructSize = Int
64
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr MicromapCreateInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr MicromapCreateInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Buffer)) (Buffer
forall a. Zero a => a
zero)
Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) ("dataSize" ::: Word64
forall a. Zero a => a
zero)
Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr DeviceSize)) ("dataSize" ::: Word64
forall a. Zero a => a
zero)
Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr MicromapTypeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr MicromapTypeEXT)) (MicromapTypeEXT
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct MicromapCreateInfoEXT where
peekCStruct :: Ptr MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT
peekCStruct Ptr MicromapCreateInfoEXT
p = do
MicromapCreateFlagBitsEXT
createFlags <- forall a. Storable a => Ptr a -> IO a
peek @MicromapCreateFlagsEXT ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr MicromapCreateFlagBitsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapCreateFlagsEXT))
Buffer
buffer <- forall a. Storable a => Ptr a -> IO a
peek @Buffer ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Buffer))
"dataSize" ::: Word64
offset <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize))
"dataSize" ::: Word64
size <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr DeviceSize))
MicromapTypeEXT
type' <- forall a. Storable a => Ptr a -> IO a
peek @MicromapTypeEXT ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr MicromapTypeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr MicromapTypeEXT))
"dataSize" ::: Word64
deviceAddress <- forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr DeviceAddress))
MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT)
-> MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT
forall a b. (a -> b) -> a -> b
$ MicromapCreateFlagBitsEXT
-> Buffer
-> ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64)
-> MicromapTypeEXT
-> ("dataSize" ::: Word64)
-> MicromapCreateInfoEXT
MicromapCreateInfoEXT
MicromapCreateFlagBitsEXT
createFlags Buffer
buffer "dataSize" ::: Word64
offset "dataSize" ::: Word64
size MicromapTypeEXT
type' "dataSize" ::: Word64
deviceAddress
instance Storable MicromapCreateInfoEXT where
sizeOf :: MicromapCreateInfoEXT -> Int
sizeOf ~MicromapCreateInfoEXT
_ = Int
64
alignment :: MicromapCreateInfoEXT -> Int
alignment ~MicromapCreateInfoEXT
_ = Int
8
peek :: Ptr MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT
peek = Ptr MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> IO ()
poke Ptr MicromapCreateInfoEXT
ptr MicromapCreateInfoEXT
poked = Ptr MicromapCreateInfoEXT
-> MicromapCreateInfoEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapCreateInfoEXT
ptr MicromapCreateInfoEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapCreateInfoEXT where
zero :: MicromapCreateInfoEXT
zero = MicromapCreateFlagBitsEXT
-> Buffer
-> ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64)
-> MicromapTypeEXT
-> ("dataSize" ::: Word64)
-> MicromapCreateInfoEXT
MicromapCreateInfoEXT
MicromapCreateFlagBitsEXT
forall a. Zero a => a
zero
Buffer
forall a. Zero a => a
zero
"dataSize" ::: Word64
forall a. Zero a => a
zero
"dataSize" ::: Word64
forall a. Zero a => a
zero
MicromapTypeEXT
forall a. Zero a => a
zero
"dataSize" ::: Word64
forall a. Zero a => a
zero
data MicromapVersionInfoEXT = MicromapVersionInfoEXT
{
MicromapVersionInfoEXT -> ByteString
versionData :: ByteString }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapVersionInfoEXT)
#endif
deriving instance Show MicromapVersionInfoEXT
instance ToCStruct MicromapVersionInfoEXT where
withCStruct :: forall b.
MicromapVersionInfoEXT
-> (Ptr MicromapVersionInfoEXT -> IO b) -> IO b
withCStruct MicromapVersionInfoEXT
x Ptr MicromapVersionInfoEXT -> IO b
f = Int -> (Ptr MicromapVersionInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr MicromapVersionInfoEXT -> IO b) -> IO b)
-> (Ptr MicromapVersionInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr MicromapVersionInfoEXT
p -> Ptr MicromapVersionInfoEXT
-> MicromapVersionInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapVersionInfoEXT
p MicromapVersionInfoEXT
x (Ptr MicromapVersionInfoEXT -> IO b
f Ptr MicromapVersionInfoEXT
p)
pokeCStruct :: forall b.
Ptr MicromapVersionInfoEXT
-> MicromapVersionInfoEXT -> IO b -> IO b
pokeCStruct Ptr MicromapVersionInfoEXT
p MicromapVersionInfoEXT{ByteString
versionData :: ByteString
$sel:versionData:MicromapVersionInfoEXT :: MicromapVersionInfoEXT -> ByteString
..} 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 (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 MicromapVersionInfoEXT
p Ptr MicromapVersionInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT)
IO () -> ContT b IO ()
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 ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapVersionInfoEXT
p Ptr MicromapVersionInfoEXT -> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
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
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (ByteString -> Int
Data.ByteString.length (ByteString
versionData) Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
2 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
forall a. Integral a => a
UUID_SIZE) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"VkMicromapVersionInfoEXT::versionData must be 2*VK_UUID_SIZE bytes" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
Ptr Word8
versionData' <- (Ptr CChar -> Ptr Word8)
-> ContT b IO (Ptr CChar) -> ContT b IO (Ptr Word8)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a b. Ptr a -> Ptr b
castPtr @CChar @Word8) (ContT b IO (Ptr CChar) -> ContT b IO (Ptr Word8))
-> (((Ptr CChar -> IO b) -> IO b) -> ContT b IO (Ptr CChar))
-> ((Ptr CChar -> IO b) -> IO b)
-> ContT b IO (Ptr Word8)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr CChar -> IO b) -> IO b) -> ContT b IO (Ptr CChar)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CChar -> IO b) -> IO b) -> ContT b IO (Ptr Word8))
-> ((Ptr CChar -> IO b) -> IO b) -> ContT b IO (Ptr Word8)
forall a b. (a -> b) -> a -> b
$ ByteString -> (Ptr CChar -> IO b) -> IO b
forall a. ByteString -> (Ptr CChar -> IO a) -> IO a
unsafeUseAsCString (ByteString
versionData)
IO () -> ContT b IO ()
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 Word8) -> Ptr Word8 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapVersionInfoEXT
p Ptr MicromapVersionInfoEXT -> Int -> Ptr (Ptr Word8)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr Word8))) Ptr Word8
versionData'
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr MicromapVersionInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr MicromapVersionInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapVersionInfoEXT
p Ptr MicromapVersionInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapVersionInfoEXT
p Ptr MicromapVersionInfoEXT -> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
IO b
f
instance FromCStruct MicromapVersionInfoEXT where
peekCStruct :: Ptr MicromapVersionInfoEXT -> IO MicromapVersionInfoEXT
peekCStruct Ptr MicromapVersionInfoEXT
p = do
Ptr Word8
versionData <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr Word8) ((Ptr MicromapVersionInfoEXT
p Ptr MicromapVersionInfoEXT -> Int -> Ptr (Ptr Word8)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr Word8)))
ByteString
versionData' <- CStringLen -> IO ByteString
packCStringLen ( forall a b. Ptr a -> Ptr b
castPtr @Word8 @CChar Ptr Word8
versionData
, Int
2 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
forall a. Integral a => a
UUID_SIZE )
MicromapVersionInfoEXT -> IO MicromapVersionInfoEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (MicromapVersionInfoEXT -> IO MicromapVersionInfoEXT)
-> MicromapVersionInfoEXT -> IO MicromapVersionInfoEXT
forall a b. (a -> b) -> a -> b
$ ByteString -> MicromapVersionInfoEXT
MicromapVersionInfoEXT
ByteString
versionData'
instance Zero MicromapVersionInfoEXT where
zero :: MicromapVersionInfoEXT
zero = ByteString -> MicromapVersionInfoEXT
MicromapVersionInfoEXT
ByteString
forall a. Monoid a => a
mempty
data CopyMicromapInfoEXT = CopyMicromapInfoEXT
{
CopyMicromapInfoEXT -> MicromapEXT
src :: MicromapEXT
,
CopyMicromapInfoEXT -> MicromapEXT
dst :: MicromapEXT
,
CopyMicromapInfoEXT -> CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
}
deriving (Typeable, CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
(CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool)
-> (CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool)
-> Eq CopyMicromapInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
$c/= :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
== :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
$c== :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyMicromapInfoEXT)
#endif
deriving instance Show CopyMicromapInfoEXT
instance ToCStruct CopyMicromapInfoEXT where
withCStruct :: forall b.
CopyMicromapInfoEXT -> (Ptr CopyMicromapInfoEXT -> IO b) -> IO b
withCStruct CopyMicromapInfoEXT
x Ptr CopyMicromapInfoEXT -> IO b
f = Int -> (Ptr CopyMicromapInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr CopyMicromapInfoEXT -> IO b) -> IO b)
-> (Ptr CopyMicromapInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr CopyMicromapInfoEXT
p -> Ptr CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMicromapInfoEXT
p CopyMicromapInfoEXT
x (Ptr CopyMicromapInfoEXT -> IO b
f Ptr CopyMicromapInfoEXT
p)
pokeCStruct :: forall b.
Ptr CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> IO b -> IO b
pokeCStruct Ptr CopyMicromapInfoEXT
p CopyMicromapInfoEXT{MicromapEXT
CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
dst :: MicromapEXT
src :: MicromapEXT
$sel:mode:CopyMicromapInfoEXT :: CopyMicromapInfoEXT -> CopyMicromapModeEXT
$sel:dst:CopyMicromapInfoEXT :: CopyMicromapInfoEXT -> MicromapEXT
$sel:src:CopyMicromapInfoEXT :: CopyMicromapInfoEXT -> MicromapEXT
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (MicromapEXT
src)
("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT)) (MicromapEXT
dst)
Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> Ptr CopyMicromapModeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (CopyMicromapModeEXT
mode)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr CopyMicromapInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr CopyMicromapInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (MicromapEXT
forall a. Zero a => a
zero)
("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT)) (MicromapEXT
forall a. Zero a => a
zero)
Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> Ptr CopyMicromapModeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (CopyMicromapModeEXT
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CopyMicromapInfoEXT where
peekCStruct :: Ptr CopyMicromapInfoEXT -> IO CopyMicromapInfoEXT
peekCStruct Ptr CopyMicromapInfoEXT
p = do
MicromapEXT
src <- forall a. Storable a => Ptr a -> IO a
peek @MicromapEXT ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT))
MicromapEXT
dst <- forall a. Storable a => Ptr a -> IO a
peek @MicromapEXT ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT))
CopyMicromapModeEXT
mode <- forall a. Storable a => Ptr a -> IO a
peek @CopyMicromapModeEXT ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> Ptr CopyMicromapModeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT))
CopyMicromapInfoEXT -> IO CopyMicromapInfoEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CopyMicromapInfoEXT -> IO CopyMicromapInfoEXT)
-> CopyMicromapInfoEXT -> IO CopyMicromapInfoEXT
forall a b. (a -> b) -> a -> b
$ MicromapEXT
-> MicromapEXT -> CopyMicromapModeEXT -> CopyMicromapInfoEXT
CopyMicromapInfoEXT
MicromapEXT
src MicromapEXT
dst CopyMicromapModeEXT
mode
instance Storable CopyMicromapInfoEXT where
sizeOf :: CopyMicromapInfoEXT -> Int
sizeOf ~CopyMicromapInfoEXT
_ = Int
40
alignment :: CopyMicromapInfoEXT -> Int
alignment ~CopyMicromapInfoEXT
_ = Int
8
peek :: Ptr CopyMicromapInfoEXT -> IO CopyMicromapInfoEXT
peek = Ptr CopyMicromapInfoEXT -> IO CopyMicromapInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> IO ()
poke Ptr CopyMicromapInfoEXT
ptr CopyMicromapInfoEXT
poked = Ptr CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMicromapInfoEXT
ptr CopyMicromapInfoEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero CopyMicromapInfoEXT where
zero :: CopyMicromapInfoEXT
zero = MicromapEXT
-> MicromapEXT -> CopyMicromapModeEXT -> CopyMicromapInfoEXT
CopyMicromapInfoEXT
MicromapEXT
forall a. Zero a => a
zero
MicromapEXT
forall a. Zero a => a
zero
CopyMicromapModeEXT
forall a. Zero a => a
zero
data CopyMicromapToMemoryInfoEXT = CopyMicromapToMemoryInfoEXT
{
CopyMicromapToMemoryInfoEXT -> MicromapEXT
src :: MicromapEXT
,
CopyMicromapToMemoryInfoEXT -> DeviceOrHostAddressKHR
dst :: DeviceOrHostAddressKHR
,
CopyMicromapToMemoryInfoEXT -> CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyMicromapToMemoryInfoEXT)
#endif
deriving instance Show CopyMicromapToMemoryInfoEXT
instance ToCStruct CopyMicromapToMemoryInfoEXT where
withCStruct :: forall b.
CopyMicromapToMemoryInfoEXT
-> (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b) -> IO b
withCStruct CopyMicromapToMemoryInfoEXT
x ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b
f = Int
-> (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b) -> IO b)
-> (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p -> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> CopyMicromapToMemoryInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p CopyMicromapToMemoryInfoEXT
x (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b
f "pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p)
pokeCStruct :: forall b.
("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> CopyMicromapToMemoryInfoEXT -> IO b -> IO b
pokeCStruct "pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p CopyMicromapToMemoryInfoEXT{MicromapEXT
DeviceOrHostAddressKHR
CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
dst :: DeviceOrHostAddressKHR
src :: MicromapEXT
$sel:mode:CopyMicromapToMemoryInfoEXT :: CopyMicromapToMemoryInfoEXT -> CopyMicromapModeEXT
$sel:dst:CopyMicromapToMemoryInfoEXT :: CopyMicromapToMemoryInfoEXT -> DeviceOrHostAddressKHR
$sel:src:CopyMicromapToMemoryInfoEXT :: CopyMicromapToMemoryInfoEXT -> MicromapEXT
..} 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 (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 (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT)
IO () -> ContT b IO ()
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 ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
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
$ ("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (MicromapEXT
src)
((() -> 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 DeviceOrHostAddressKHR
-> DeviceOrHostAddressKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> Ptr DeviceOrHostAddressKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceOrHostAddressKHR)) (DeviceOrHostAddressKHR
dst) (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
$ ())
IO () -> ContT b IO ()
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 CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> Ptr CopyMicromapModeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (CopyMicromapModeEXT
mode)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b -> IO b
pokeZeroCStruct "pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
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 (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 (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT)
IO () -> ContT b IO ()
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 ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
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
$ ("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (MicromapEXT
forall a. Zero a => a
zero)
((() -> 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 DeviceOrHostAddressKHR
-> DeviceOrHostAddressKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> Ptr DeviceOrHostAddressKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceOrHostAddressKHR)) (DeviceOrHostAddressKHR
forall a. Zero a => a
zero) (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
$ ())
IO () -> ContT b IO ()
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 CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> Int -> Ptr CopyMicromapModeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (CopyMicromapModeEXT
forall a. Zero a => a
zero)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance Zero CopyMicromapToMemoryInfoEXT where
zero :: CopyMicromapToMemoryInfoEXT
zero = MicromapEXT
-> DeviceOrHostAddressKHR
-> CopyMicromapModeEXT
-> CopyMicromapToMemoryInfoEXT
CopyMicromapToMemoryInfoEXT
MicromapEXT
forall a. Zero a => a
zero
DeviceOrHostAddressKHR
forall a. Zero a => a
zero
CopyMicromapModeEXT
forall a. Zero a => a
zero
data CopyMemoryToMicromapInfoEXT = CopyMemoryToMicromapInfoEXT
{
CopyMemoryToMicromapInfoEXT -> DeviceOrHostAddressConstKHR
src :: DeviceOrHostAddressConstKHR
,
CopyMemoryToMicromapInfoEXT -> MicromapEXT
dst :: MicromapEXT
,
CopyMemoryToMicromapInfoEXT -> CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyMemoryToMicromapInfoEXT)
#endif
deriving instance Show CopyMemoryToMicromapInfoEXT
instance ToCStruct CopyMemoryToMicromapInfoEXT where
withCStruct :: forall b.
CopyMemoryToMicromapInfoEXT
-> (Ptr CopyMemoryToMicromapInfoEXT -> IO b) -> IO b
withCStruct CopyMemoryToMicromapInfoEXT
x Ptr CopyMemoryToMicromapInfoEXT -> IO b
f = Int -> (Ptr CopyMemoryToMicromapInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr CopyMemoryToMicromapInfoEXT -> IO b) -> IO b)
-> (Ptr CopyMemoryToMicromapInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr CopyMemoryToMicromapInfoEXT
p -> Ptr CopyMemoryToMicromapInfoEXT
-> CopyMemoryToMicromapInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMemoryToMicromapInfoEXT
p CopyMemoryToMicromapInfoEXT
x (Ptr CopyMemoryToMicromapInfoEXT -> IO b
f Ptr CopyMemoryToMicromapInfoEXT
p)
pokeCStruct :: forall b.
Ptr CopyMemoryToMicromapInfoEXT
-> CopyMemoryToMicromapInfoEXT -> IO b -> IO b
pokeCStruct Ptr CopyMemoryToMicromapInfoEXT
p CopyMemoryToMicromapInfoEXT{MicromapEXT
DeviceOrHostAddressConstKHR
CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
dst :: MicromapEXT
src :: DeviceOrHostAddressConstKHR
$sel:mode:CopyMemoryToMicromapInfoEXT :: CopyMemoryToMicromapInfoEXT -> CopyMicromapModeEXT
$sel:dst:CopyMemoryToMicromapInfoEXT :: CopyMemoryToMicromapInfoEXT -> MicromapEXT
$sel:src:CopyMemoryToMicromapInfoEXT :: CopyMemoryToMicromapInfoEXT -> DeviceOrHostAddressConstKHR
..} 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 (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 CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT)
IO () -> ContT b IO ()
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 ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT -> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
((() -> 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 DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT
-> Int -> Ptr DeviceOrHostAddressConstKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
src) (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
$ ())
IO () -> ContT b IO ()
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
$ ("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT
-> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT)) (MicromapEXT
dst)
IO () -> ContT b IO ()
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 CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT -> Int -> Ptr CopyMicromapModeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (CopyMicromapModeEXT
mode)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr CopyMemoryToMicromapInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr CopyMemoryToMicromapInfoEXT
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 (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 CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT)
IO () -> ContT b IO ()
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 ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT -> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
((() -> 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 DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT
-> Int -> Ptr DeviceOrHostAddressConstKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
forall a. Zero a => a
zero) (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
$ ())
IO () -> ContT b IO ()
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
$ ("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT
-> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT)) (MicromapEXT
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT -> Int -> Ptr CopyMicromapModeEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (CopyMicromapModeEXT
forall a. Zero a => a
zero)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance Zero CopyMemoryToMicromapInfoEXT where
zero :: CopyMemoryToMicromapInfoEXT
zero = DeviceOrHostAddressConstKHR
-> MicromapEXT
-> CopyMicromapModeEXT
-> CopyMemoryToMicromapInfoEXT
CopyMemoryToMicromapInfoEXT
DeviceOrHostAddressConstKHR
forall a. Zero a => a
zero
MicromapEXT
forall a. Zero a => a
zero
CopyMicromapModeEXT
forall a. Zero a => a
zero
data MicromapBuildSizesInfoEXT = MicromapBuildSizesInfoEXT
{
MicromapBuildSizesInfoEXT -> "dataSize" ::: Word64
micromapSize :: DeviceSize
,
MicromapBuildSizesInfoEXT -> "dataSize" ::: Word64
buildScratchSize :: DeviceSize
,
MicromapBuildSizesInfoEXT -> Bool
discardable :: Bool
}
deriving (Typeable, MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
(MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool)
-> (MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool)
-> Eq MicromapBuildSizesInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
$c/= :: MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
== :: MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
$c== :: MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapBuildSizesInfoEXT)
#endif
deriving instance Show MicromapBuildSizesInfoEXT
instance ToCStruct MicromapBuildSizesInfoEXT where
withCStruct :: forall b.
MicromapBuildSizesInfoEXT
-> (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b)
-> IO b
withCStruct MicromapBuildSizesInfoEXT
x ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b
f = Int
-> (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b) -> IO b)
-> (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \"pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p -> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> MicromapBuildSizesInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p MicromapBuildSizesInfoEXT
x (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b
f "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p)
pokeCStruct :: forall b.
("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> MicromapBuildSizesInfoEXT -> IO b -> IO b
pokeCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p MicromapBuildSizesInfoEXT{Bool
"dataSize" ::: Word64
discardable :: Bool
buildScratchSize :: "dataSize" ::: Word64
micromapSize :: "dataSize" ::: Word64
$sel:discardable:MicromapBuildSizesInfoEXT :: MicromapBuildSizesInfoEXT -> Bool
$sel:buildScratchSize:MicromapBuildSizesInfoEXT :: MicromapBuildSizesInfoEXT -> "dataSize" ::: Word64
$sel:micromapSize:MicromapBuildSizesInfoEXT :: MicromapBuildSizesInfoEXT -> "dataSize" ::: Word64
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) ("dataSize" ::: Word64
micromapSize)
Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) ("dataSize" ::: Word64
buildScratchSize)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
discardable))
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b -> IO b
pokeZeroCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) ("dataSize" ::: Word64
forall a. Zero a => a
zero)
Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) ("dataSize" ::: Word64
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> 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))
IO b
f
instance FromCStruct MicromapBuildSizesInfoEXT where
peekCStruct :: ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT
peekCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p = do
"dataSize" ::: Word64
micromapSize <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize))
"dataSize" ::: Word64
buildScratchSize <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize))
Bool32
discardable <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32))
MicromapBuildSizesInfoEXT -> IO MicromapBuildSizesInfoEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (MicromapBuildSizesInfoEXT -> IO MicromapBuildSizesInfoEXT)
-> MicromapBuildSizesInfoEXT -> IO MicromapBuildSizesInfoEXT
forall a b. (a -> b) -> a -> b
$ ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64) -> Bool -> MicromapBuildSizesInfoEXT
MicromapBuildSizesInfoEXT
"dataSize" ::: Word64
micromapSize "dataSize" ::: Word64
buildScratchSize (Bool32 -> Bool
bool32ToBool Bool32
discardable)
instance Storable MicromapBuildSizesInfoEXT where
sizeOf :: MicromapBuildSizesInfoEXT -> Int
sizeOf ~MicromapBuildSizesInfoEXT
_ = Int
40
alignment :: MicromapBuildSizesInfoEXT -> Int
alignment ~MicromapBuildSizesInfoEXT
_ = Int
8
peek :: ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT
peek = ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> MicromapBuildSizesInfoEXT -> IO ()
poke "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
ptr MicromapBuildSizesInfoEXT
poked = ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> MicromapBuildSizesInfoEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
ptr MicromapBuildSizesInfoEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapBuildSizesInfoEXT where
zero :: MicromapBuildSizesInfoEXT
zero = ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64) -> Bool -> MicromapBuildSizesInfoEXT
MicromapBuildSizesInfoEXT
"dataSize" ::: Word64
forall a. Zero a => a
zero
"dataSize" ::: Word64
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data MicromapUsageEXT = MicromapUsageEXT
{
MicromapUsageEXT -> Flags
count :: Word32
,
MicromapUsageEXT -> Flags
subdivisionLevel :: Word32
,
MicromapUsageEXT -> Flags
format :: Word32
}
deriving (Typeable, MicromapUsageEXT -> MicromapUsageEXT -> Bool
(MicromapUsageEXT -> MicromapUsageEXT -> Bool)
-> (MicromapUsageEXT -> MicromapUsageEXT -> Bool)
-> Eq MicromapUsageEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
$c/= :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
== :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
$c== :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapUsageEXT)
#endif
deriving instance Show MicromapUsageEXT
instance ToCStruct MicromapUsageEXT where
withCStruct :: forall b.
MicromapUsageEXT -> (Ptr MicromapUsageEXT -> IO b) -> IO b
withCStruct MicromapUsageEXT
x Ptr MicromapUsageEXT -> IO b
f = Int -> (Ptr MicromapUsageEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
12 ((Ptr MicromapUsageEXT -> IO b) -> IO b)
-> (Ptr MicromapUsageEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr MicromapUsageEXT
p -> Ptr MicromapUsageEXT -> MicromapUsageEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapUsageEXT
p MicromapUsageEXT
x (Ptr MicromapUsageEXT -> IO b
f Ptr MicromapUsageEXT
p)
pokeCStruct :: forall b. Ptr MicromapUsageEXT -> MicromapUsageEXT -> IO b -> IO b
pokeCStruct Ptr MicromapUsageEXT
p MicromapUsageEXT{Flags
format :: Flags
subdivisionLevel :: Flags
count :: Flags
$sel:format:MicromapUsageEXT :: MicromapUsageEXT -> Flags
$sel:subdivisionLevel:MicromapUsageEXT :: MicromapUsageEXT -> Flags
$sel:count:MicromapUsageEXT :: MicromapUsageEXT -> Flags
..} IO b
f = do
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p Ptr MicromapUsageEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Flags
count)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p Ptr MicromapUsageEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Flags
subdivisionLevel)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p Ptr MicromapUsageEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Flags
format)
IO b
f
cStructSize :: Int
cStructSize = Int
12
cStructAlignment :: Int
cStructAlignment = Int
4
pokeZeroCStruct :: forall b. Ptr MicromapUsageEXT -> IO b -> IO b
pokeZeroCStruct Ptr MicromapUsageEXT
p IO b
f = do
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p Ptr MicromapUsageEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p Ptr MicromapUsageEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p Ptr MicromapUsageEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct MicromapUsageEXT where
peekCStruct :: Ptr MicromapUsageEXT -> IO MicromapUsageEXT
peekCStruct Ptr MicromapUsageEXT
p = do
Flags
count <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr MicromapUsageEXT
p Ptr MicromapUsageEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
Flags
subdivisionLevel <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr MicromapUsageEXT
p Ptr MicromapUsageEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32))
Flags
format <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr MicromapUsageEXT
p Ptr MicromapUsageEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32))
MicromapUsageEXT -> IO MicromapUsageEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (MicromapUsageEXT -> IO MicromapUsageEXT)
-> MicromapUsageEXT -> IO MicromapUsageEXT
forall a b. (a -> b) -> a -> b
$ Flags -> Flags -> Flags -> MicromapUsageEXT
MicromapUsageEXT
Flags
count Flags
subdivisionLevel Flags
format
instance Storable MicromapUsageEXT where
sizeOf :: MicromapUsageEXT -> Int
sizeOf ~MicromapUsageEXT
_ = Int
12
alignment :: MicromapUsageEXT -> Int
alignment ~MicromapUsageEXT
_ = Int
4
peek :: Ptr MicromapUsageEXT -> IO MicromapUsageEXT
peek = Ptr MicromapUsageEXT -> IO MicromapUsageEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr MicromapUsageEXT -> MicromapUsageEXT -> IO ()
poke Ptr MicromapUsageEXT
ptr MicromapUsageEXT
poked = Ptr MicromapUsageEXT -> MicromapUsageEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapUsageEXT
ptr MicromapUsageEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapUsageEXT where
zero :: MicromapUsageEXT
zero = Flags -> Flags -> Flags -> MicromapUsageEXT
MicromapUsageEXT
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
data MicromapTriangleEXT = MicromapTriangleEXT
{
MicromapTriangleEXT -> Flags
dataOffset :: Word32
,
MicromapTriangleEXT -> Word16
subdivisionLevel :: Word16
,
MicromapTriangleEXT -> Word16
format :: Word16
}
deriving (Typeable, MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
(MicromapTriangleEXT -> MicromapTriangleEXT -> Bool)
-> (MicromapTriangleEXT -> MicromapTriangleEXT -> Bool)
-> Eq MicromapTriangleEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
$c/= :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
== :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
$c== :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapTriangleEXT)
#endif
deriving instance Show MicromapTriangleEXT
instance ToCStruct MicromapTriangleEXT where
withCStruct :: forall b.
MicromapTriangleEXT -> (Ptr MicromapTriangleEXT -> IO b) -> IO b
withCStruct MicromapTriangleEXT
x Ptr MicromapTriangleEXT -> IO b
f = Int -> (Ptr MicromapTriangleEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
8 ((Ptr MicromapTriangleEXT -> IO b) -> IO b)
-> (Ptr MicromapTriangleEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr MicromapTriangleEXT
p -> Ptr MicromapTriangleEXT -> MicromapTriangleEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapTriangleEXT
p MicromapTriangleEXT
x (Ptr MicromapTriangleEXT -> IO b
f Ptr MicromapTriangleEXT
p)
pokeCStruct :: forall b.
Ptr MicromapTriangleEXT -> MicromapTriangleEXT -> IO b -> IO b
pokeCStruct Ptr MicromapTriangleEXT
p MicromapTriangleEXT{Word16
Flags
format :: Word16
subdivisionLevel :: Word16
dataOffset :: Flags
$sel:format:MicromapTriangleEXT :: MicromapTriangleEXT -> Word16
$sel:subdivisionLevel:MicromapTriangleEXT :: MicromapTriangleEXT -> Word16
$sel:dataOffset:MicromapTriangleEXT :: MicromapTriangleEXT -> Flags
..} IO b
f = do
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p Ptr MicromapTriangleEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Flags
dataOffset)
Ptr Word16 -> Word16 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p Ptr MicromapTriangleEXT -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word16)) (Word16
subdivisionLevel)
Ptr Word16 -> Word16 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p Ptr MicromapTriangleEXT -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
6 :: Ptr Word16)) (Word16
format)
IO b
f
cStructSize :: Int
cStructSize = Int
8
cStructAlignment :: Int
cStructAlignment = Int
4
pokeZeroCStruct :: forall b. Ptr MicromapTriangleEXT -> IO b -> IO b
pokeZeroCStruct Ptr MicromapTriangleEXT
p IO b
f = do
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p Ptr MicromapTriangleEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr Word16 -> Word16 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p Ptr MicromapTriangleEXT -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word16)) (Word16
forall a. Zero a => a
zero)
Ptr Word16 -> Word16 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p Ptr MicromapTriangleEXT -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
6 :: Ptr Word16)) (Word16
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct MicromapTriangleEXT where
peekCStruct :: Ptr MicromapTriangleEXT -> IO MicromapTriangleEXT
peekCStruct Ptr MicromapTriangleEXT
p = do
Flags
dataOffset <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr MicromapTriangleEXT
p Ptr MicromapTriangleEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
Word16
subdivisionLevel <- forall a. Storable a => Ptr a -> IO a
peek @Word16 ((Ptr MicromapTriangleEXT
p Ptr MicromapTriangleEXT -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word16))
Word16
format <- forall a. Storable a => Ptr a -> IO a
peek @Word16 ((Ptr MicromapTriangleEXT
p Ptr MicromapTriangleEXT -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
6 :: Ptr Word16))
MicromapTriangleEXT -> IO MicromapTriangleEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (MicromapTriangleEXT -> IO MicromapTriangleEXT)
-> MicromapTriangleEXT -> IO MicromapTriangleEXT
forall a b. (a -> b) -> a -> b
$ Flags -> Word16 -> Word16 -> MicromapTriangleEXT
MicromapTriangleEXT
Flags
dataOffset Word16
subdivisionLevel Word16
format
instance Storable MicromapTriangleEXT where
sizeOf :: MicromapTriangleEXT -> Int
sizeOf ~MicromapTriangleEXT
_ = Int
8
alignment :: MicromapTriangleEXT -> Int
alignment ~MicromapTriangleEXT
_ = Int
4
peek :: Ptr MicromapTriangleEXT -> IO MicromapTriangleEXT
peek = Ptr MicromapTriangleEXT -> IO MicromapTriangleEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr MicromapTriangleEXT -> MicromapTriangleEXT -> IO ()
poke Ptr MicromapTriangleEXT
ptr MicromapTriangleEXT
poked = Ptr MicromapTriangleEXT -> MicromapTriangleEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapTriangleEXT
ptr MicromapTriangleEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapTriangleEXT where
zero :: MicromapTriangleEXT
zero = Flags -> Word16 -> Word16 -> MicromapTriangleEXT
MicromapTriangleEXT
Flags
forall a. Zero a => a
zero
Word16
forall a. Zero a => a
zero
Word16
forall a. Zero a => a
zero
data PhysicalDeviceOpacityMicromapFeaturesEXT = PhysicalDeviceOpacityMicromapFeaturesEXT
{
PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
micromap :: Bool
,
PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
micromapCaptureReplay :: Bool
,
PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
micromapHostCommands :: Bool
}
deriving (Typeable, PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
(PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool)
-> (PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool)
-> Eq PhysicalDeviceOpacityMicromapFeaturesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$c/= :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
== :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$c== :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceOpacityMicromapFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceOpacityMicromapFeaturesEXT
instance ToCStruct PhysicalDeviceOpacityMicromapFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceOpacityMicromapFeaturesEXT
-> (Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceOpacityMicromapFeaturesEXT
x Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b) -> IO b)
-> (Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p -> Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p PhysicalDeviceOpacityMicromapFeaturesEXT
x (Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b
f Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p PhysicalDeviceOpacityMicromapFeaturesEXT{Bool
micromapHostCommands :: Bool
micromapCaptureReplay :: Bool
micromap :: Bool
$sel:micromapHostCommands:PhysicalDeviceOpacityMicromapFeaturesEXT :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$sel:micromapCaptureReplay:PhysicalDeviceOpacityMicromapFeaturesEXT :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$sel:micromap:PhysicalDeviceOpacityMicromapFeaturesEXT :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
micromap))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
micromapCaptureReplay))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
micromapHostCommands))
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> 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 PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceOpacityMicromapFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> IO PhysicalDeviceOpacityMicromapFeaturesEXT
peekCStruct Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p = do
Bool32
micromap <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
Bool32
micromapCaptureReplay <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32))
Bool32
micromapHostCommands <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32))
PhysicalDeviceOpacityMicromapFeaturesEXT
-> IO PhysicalDeviceOpacityMicromapFeaturesEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceOpacityMicromapFeaturesEXT
-> IO PhysicalDeviceOpacityMicromapFeaturesEXT)
-> PhysicalDeviceOpacityMicromapFeaturesEXT
-> IO PhysicalDeviceOpacityMicromapFeaturesEXT
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> Bool -> PhysicalDeviceOpacityMicromapFeaturesEXT
PhysicalDeviceOpacityMicromapFeaturesEXT
(Bool32 -> Bool
bool32ToBool Bool32
micromap)
(Bool32 -> Bool
bool32ToBool Bool32
micromapCaptureReplay)
(Bool32 -> Bool
bool32ToBool Bool32
micromapHostCommands)
instance Storable PhysicalDeviceOpacityMicromapFeaturesEXT where
sizeOf :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Int
sizeOf ~PhysicalDeviceOpacityMicromapFeaturesEXT
_ = Int
32
alignment :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Int
alignment ~PhysicalDeviceOpacityMicromapFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> IO PhysicalDeviceOpacityMicromapFeaturesEXT
peek = Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> IO PhysicalDeviceOpacityMicromapFeaturesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
ptr PhysicalDeviceOpacityMicromapFeaturesEXT
poked = Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
ptr PhysicalDeviceOpacityMicromapFeaturesEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceOpacityMicromapFeaturesEXT where
zero :: PhysicalDeviceOpacityMicromapFeaturesEXT
zero = Bool -> Bool -> Bool -> PhysicalDeviceOpacityMicromapFeaturesEXT
PhysicalDeviceOpacityMicromapFeaturesEXT
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data PhysicalDeviceOpacityMicromapPropertiesEXT = PhysicalDeviceOpacityMicromapPropertiesEXT
{
PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
maxOpacity2StateSubdivisionLevel :: Word32
,
PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
maxOpacity4StateSubdivisionLevel :: Word32
}
deriving (Typeable, PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
(PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool)
-> (PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool)
-> Eq PhysicalDeviceOpacityMicromapPropertiesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
$c/= :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
== :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
$c== :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceOpacityMicromapPropertiesEXT)
#endif
deriving instance Show PhysicalDeviceOpacityMicromapPropertiesEXT
instance ToCStruct PhysicalDeviceOpacityMicromapPropertiesEXT where
withCStruct :: forall b.
PhysicalDeviceOpacityMicromapPropertiesEXT
-> (Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceOpacityMicromapPropertiesEXT
x Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b) -> IO b)
-> (Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p -> Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p PhysicalDeviceOpacityMicromapPropertiesEXT
x (Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b
f Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p PhysicalDeviceOpacityMicromapPropertiesEXT{Flags
maxOpacity4StateSubdivisionLevel :: Flags
maxOpacity2StateSubdivisionLevel :: Flags
$sel:maxOpacity4StateSubdivisionLevel:PhysicalDeviceOpacityMicromapPropertiesEXT :: PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
$sel:maxOpacity2StateSubdivisionLevel:PhysicalDeviceOpacityMicromapPropertiesEXT :: PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Flags
maxOpacity2StateSubdivisionLevel)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Flags
maxOpacity4StateSubdivisionLevel)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT)
Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceOpacityMicromapPropertiesEXT where
peekCStruct :: Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> IO PhysicalDeviceOpacityMicromapPropertiesEXT
peekCStruct Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p = do
Flags
maxOpacity2StateSubdivisionLevel <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Flags
maxOpacity4StateSubdivisionLevel <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
PhysicalDeviceOpacityMicromapPropertiesEXT
-> IO PhysicalDeviceOpacityMicromapPropertiesEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceOpacityMicromapPropertiesEXT
-> IO PhysicalDeviceOpacityMicromapPropertiesEXT)
-> PhysicalDeviceOpacityMicromapPropertiesEXT
-> IO PhysicalDeviceOpacityMicromapPropertiesEXT
forall a b. (a -> b) -> a -> b
$ Flags -> Flags -> PhysicalDeviceOpacityMicromapPropertiesEXT
PhysicalDeviceOpacityMicromapPropertiesEXT
Flags
maxOpacity2StateSubdivisionLevel Flags
maxOpacity4StateSubdivisionLevel
instance Storable PhysicalDeviceOpacityMicromapPropertiesEXT where
sizeOf :: PhysicalDeviceOpacityMicromapPropertiesEXT -> Int
sizeOf ~PhysicalDeviceOpacityMicromapPropertiesEXT
_ = Int
24
alignment :: PhysicalDeviceOpacityMicromapPropertiesEXT -> Int
alignment ~PhysicalDeviceOpacityMicromapPropertiesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> IO PhysicalDeviceOpacityMicromapPropertiesEXT
peek = Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> IO PhysicalDeviceOpacityMicromapPropertiesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> IO ()
poke Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
ptr PhysicalDeviceOpacityMicromapPropertiesEXT
poked = Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
ptr PhysicalDeviceOpacityMicromapPropertiesEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceOpacityMicromapPropertiesEXT where
zero :: PhysicalDeviceOpacityMicromapPropertiesEXT
zero = Flags -> Flags -> PhysicalDeviceOpacityMicromapPropertiesEXT
PhysicalDeviceOpacityMicromapPropertiesEXT
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
data AccelerationStructureTrianglesOpacityMicromapEXT = AccelerationStructureTrianglesOpacityMicromapEXT
{
AccelerationStructureTrianglesOpacityMicromapEXT -> IndexType
indexType :: IndexType
,
AccelerationStructureTrianglesOpacityMicromapEXT
-> DeviceOrHostAddressConstKHR
indexBuffer :: DeviceOrHostAddressConstKHR
,
AccelerationStructureTrianglesOpacityMicromapEXT
-> "dataSize" ::: Word64
indexStride :: DeviceSize
,
AccelerationStructureTrianglesOpacityMicromapEXT -> Flags
baseTriangle :: Word32
,
AccelerationStructureTrianglesOpacityMicromapEXT -> Flags
usageCountsCount :: Word32
,
AccelerationStructureTrianglesOpacityMicromapEXT
-> Vector MicromapUsageEXT
usageCounts :: Vector MicromapUsageEXT
,
AccelerationStructureTrianglesOpacityMicromapEXT -> MicromapEXT
micromap :: MicromapEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (AccelerationStructureTrianglesOpacityMicromapEXT)
#endif
deriving instance Show AccelerationStructureTrianglesOpacityMicromapEXT
instance ToCStruct AccelerationStructureTrianglesOpacityMicromapEXT where
withCStruct :: forall b.
AccelerationStructureTrianglesOpacityMicromapEXT
-> (Ptr AccelerationStructureTrianglesOpacityMicromapEXT -> IO b)
-> IO b
withCStruct AccelerationStructureTrianglesOpacityMicromapEXT
x Ptr AccelerationStructureTrianglesOpacityMicromapEXT -> IO b
f = Int
-> (Ptr AccelerationStructureTrianglesOpacityMicromapEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
72 ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT -> IO b)
-> IO b)
-> (Ptr AccelerationStructureTrianglesOpacityMicromapEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p -> Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> AccelerationStructureTrianglesOpacityMicromapEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p AccelerationStructureTrianglesOpacityMicromapEXT
x (Ptr AccelerationStructureTrianglesOpacityMicromapEXT -> IO b
f Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p)
pokeCStruct :: forall b.
Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> AccelerationStructureTrianglesOpacityMicromapEXT -> IO b -> IO b
pokeCStruct Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p AccelerationStructureTrianglesOpacityMicromapEXT{Flags
"dataSize" ::: Word64
Vector MicromapUsageEXT
IndexType
MicromapEXT
DeviceOrHostAddressConstKHR
micromap :: MicromapEXT
usageCounts :: Vector MicromapUsageEXT
usageCountsCount :: Flags
baseTriangle :: Flags
indexStride :: "dataSize" ::: Word64
indexBuffer :: DeviceOrHostAddressConstKHR
indexType :: IndexType
$sel:micromap:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> MicromapEXT
$sel:usageCounts:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT
-> Vector MicromapUsageEXT
$sel:usageCountsCount:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> Flags
$sel:baseTriangle:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> Flags
$sel:indexStride:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT
-> "dataSize" ::: Word64
$sel:indexBuffer:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT
-> DeviceOrHostAddressConstKHR
$sel:indexType:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> IndexType
..} 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 (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 AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT)
IO () -> ContT b IO ()
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 ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
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 IndexType -> IndexType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr IndexType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr IndexType)) (IndexType
indexType)
((() -> 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 DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr DeviceOrHostAddressConstKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
indexBuffer) (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
$ ())
IO () -> ContT b IO ()
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 ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) ("dataSize" ::: Word64
indexStride)
IO () -> ContT b IO ()
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 Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Flags
baseTriangle)
let pUsageCountsLength :: Int
pUsageCountsLength = Vector MicromapUsageEXT -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector MicromapUsageEXT -> Int) -> Vector MicromapUsageEXT -> Int
forall a b. (a -> b) -> a -> b
$ (Vector MicromapUsageEXT
usageCounts)
Flags
usageCountsCount'' <- IO Flags -> ContT b IO Flags
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Flags -> ContT b IO Flags) -> IO Flags -> ContT b IO Flags
forall a b. (a -> b) -> a -> b
$ if (Flags
usageCountsCount) Flags -> Flags -> Bool
forall a. Eq a => a -> a -> Bool
== Flags
0
then Flags -> IO Flags
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> IO Flags) -> Flags -> IO Flags
forall a b. (a -> b) -> a -> b
$ Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
pUsageCountsLength
else do
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
pUsageCountsLength Flags -> Flags -> Bool
forall a. Eq a => a -> a -> Bool
== (Flags
usageCountsCount) Bool -> Bool -> Bool
|| Int
pUsageCountsLength Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
0) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"pUsageCounts must be empty or have 'usageCountsCount' elements" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
Flags -> IO Flags
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags
usageCountsCount)
IO () -> ContT b IO ()
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 Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) (Flags
usageCountsCount'')
Ptr MicromapUsageEXT
pUsageCounts'' <- if Vector MicromapUsageEXT -> Bool
forall a. Vector a -> Bool
Data.Vector.null (Vector MicromapUsageEXT
usageCounts)
then Ptr MicromapUsageEXT -> ContT b IO (Ptr MicromapUsageEXT)
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr MicromapUsageEXT
forall a. Ptr a
nullPtr
else do
Ptr MicromapUsageEXT
pPUsageCounts <- ((Ptr MicromapUsageEXT -> IO b) -> IO b)
-> ContT b IO (Ptr MicromapUsageEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapUsageEXT -> IO b) -> IO b)
-> ContT b IO (Ptr MicromapUsageEXT))
-> ((Ptr MicromapUsageEXT -> IO b) -> IO b)
-> ContT b IO (Ptr MicromapUsageEXT)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapUsageEXT (((Vector MicromapUsageEXT -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector MicromapUsageEXT
usageCounts))) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
12)
IO () -> ContT b IO ()
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
$ (Int -> MicromapUsageEXT -> IO ())
-> Vector MicromapUsageEXT -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapUsageEXT
e -> Ptr MicromapUsageEXT -> MicromapUsageEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr MicromapUsageEXT
pPUsageCounts Ptr MicromapUsageEXT -> Int -> Ptr MicromapUsageEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
12 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapUsageEXT) (MicromapUsageEXT
e)) ((Vector MicromapUsageEXT
usageCounts))
Ptr MicromapUsageEXT -> ContT b IO (Ptr MicromapUsageEXT)
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Ptr MicromapUsageEXT -> ContT b IO (Ptr MicromapUsageEXT))
-> Ptr MicromapUsageEXT -> ContT b IO (Ptr MicromapUsageEXT)
forall a b. (a -> b) -> a -> b
$ Ptr MicromapUsageEXT
pPUsageCounts
IO () -> ContT b IO ()
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 MicromapUsageEXT) -> Ptr MicromapUsageEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr (Ptr MicromapUsageEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr MicromapUsageEXT))) Ptr MicromapUsageEXT
pUsageCounts''
IO () -> ContT b IO ()
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 MicromapUsageEXT))
-> Ptr (Ptr MicromapUsageEXT) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr (Ptr (Ptr MicromapUsageEXT))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (Ptr (Ptr MicromapUsageEXT)
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
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
$ ("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr MicromapEXT)) (MicromapEXT
micromap)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
72
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> IO b -> IO b
pokeZeroCStruct Ptr AccelerationStructureTrianglesOpacityMicromapEXT
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 (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 AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT)
IO () -> ContT b IO ()
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 ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr ("data" ::: Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) ("data" ::: Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
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 IndexType -> IndexType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr IndexType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr IndexType)) (IndexType
forall a. Zero a => a
zero)
((() -> 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 DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr DeviceOrHostAddressConstKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
forall a. Zero a => a
zero) (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
$ ())
IO () -> ContT b IO ()
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 ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr ("dataSize" ::: Word64)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) ("dataSize" ::: Word64
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Flags
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 MicromapUsageEXT))
-> Ptr (Ptr MicromapUsageEXT) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr (Ptr (Ptr MicromapUsageEXT))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (Ptr (Ptr MicromapUsageEXT)
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
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
$ ("pMicromap" ::: Ptr MicromapEXT) -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> "pMicromap" ::: Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr MicromapEXT)) (MicromapEXT
forall a. Zero a => a
zero)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance Zero AccelerationStructureTrianglesOpacityMicromapEXT where
zero :: AccelerationStructureTrianglesOpacityMicromapEXT
zero = IndexType
-> DeviceOrHostAddressConstKHR
-> ("dataSize" ::: Word64)
-> Flags
-> Flags
-> Vector MicromapUsageEXT
-> MicromapEXT
-> AccelerationStructureTrianglesOpacityMicromapEXT
AccelerationStructureTrianglesOpacityMicromapEXT
IndexType
forall a. Zero a => a
zero
DeviceOrHostAddressConstKHR
forall a. Zero a => a
zero
"dataSize" ::: Word64
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Flags
forall a. Zero a => a
zero
Vector MicromapUsageEXT
forall a. Monoid a => a
mempty
MicromapEXT
forall a. Zero a => a
zero
newtype MicromapTypeEXT = MicromapTypeEXT Int32
deriving newtype (MicromapTypeEXT -> MicromapTypeEXT -> Bool
(MicromapTypeEXT -> MicromapTypeEXT -> Bool)
-> (MicromapTypeEXT -> MicromapTypeEXT -> Bool)
-> Eq MicromapTypeEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c/= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
== :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c== :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
Eq, Eq MicromapTypeEXT
Eq MicromapTypeEXT
-> (MicromapTypeEXT -> MicromapTypeEXT -> Ordering)
-> (MicromapTypeEXT -> MicromapTypeEXT -> Bool)
-> (MicromapTypeEXT -> MicromapTypeEXT -> Bool)
-> (MicromapTypeEXT -> MicromapTypeEXT -> Bool)
-> (MicromapTypeEXT -> MicromapTypeEXT -> Bool)
-> (MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT)
-> (MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT)
-> Ord MicromapTypeEXT
MicromapTypeEXT -> MicromapTypeEXT -> Bool
MicromapTypeEXT -> MicromapTypeEXT -> Ordering
MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
$cmin :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
max :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
$cmax :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
>= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c>= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
> :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c> :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
<= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c<= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
< :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c< :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
compare :: MicromapTypeEXT -> MicromapTypeEXT -> Ordering
$ccompare :: MicromapTypeEXT -> MicromapTypeEXT -> Ordering
Ord, Ptr MicromapTypeEXT -> IO MicromapTypeEXT
Ptr MicromapTypeEXT -> Int -> IO MicromapTypeEXT
Ptr MicromapTypeEXT -> Int -> MicromapTypeEXT -> IO ()
Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
MicromapTypeEXT -> Int
(MicromapTypeEXT -> Int)
-> (MicromapTypeEXT -> Int)
-> (Ptr MicromapTypeEXT -> Int -> IO MicromapTypeEXT)
-> (Ptr MicromapTypeEXT -> Int -> MicromapTypeEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO MicromapTypeEXT)
-> (forall b. Ptr b -> Int -> MicromapTypeEXT -> IO ())
-> (Ptr MicromapTypeEXT -> IO MicromapTypeEXT)
-> (Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ())
-> Storable MicromapTypeEXT
forall b. Ptr b -> Int -> IO MicromapTypeEXT
forall b. Ptr b -> Int -> MicromapTypeEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
$cpoke :: Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
peek :: Ptr MicromapTypeEXT -> IO MicromapTypeEXT
$cpeek :: Ptr MicromapTypeEXT -> IO MicromapTypeEXT
pokeByteOff :: forall b. Ptr b -> Int -> MicromapTypeEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> MicromapTypeEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO MicromapTypeEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO MicromapTypeEXT
pokeElemOff :: Ptr MicromapTypeEXT -> Int -> MicromapTypeEXT -> IO ()
$cpokeElemOff :: Ptr MicromapTypeEXT -> Int -> MicromapTypeEXT -> IO ()
peekElemOff :: Ptr MicromapTypeEXT -> Int -> IO MicromapTypeEXT
$cpeekElemOff :: Ptr MicromapTypeEXT -> Int -> IO MicromapTypeEXT
alignment :: MicromapTypeEXT -> Int
$calignment :: MicromapTypeEXT -> Int
sizeOf :: MicromapTypeEXT -> Int
$csizeOf :: MicromapTypeEXT -> Int
Storable, MicromapTypeEXT
MicromapTypeEXT -> Zero MicromapTypeEXT
forall a. a -> Zero a
zero :: MicromapTypeEXT
$czero :: MicromapTypeEXT
Zero)
pattern $bMICROMAP_TYPE_OPACITY_MICROMAP_EXT :: MicromapTypeEXT
$mMICROMAP_TYPE_OPACITY_MICROMAP_EXT :: forall {r}. MicromapTypeEXT -> (Void# -> r) -> (Void# -> r) -> r
MICROMAP_TYPE_OPACITY_MICROMAP_EXT = MicromapTypeEXT 0
{-# COMPLETE MICROMAP_TYPE_OPACITY_MICROMAP_EXT :: MicromapTypeEXT #-}
conNameMicromapTypeEXT :: String
conNameMicromapTypeEXT :: String
conNameMicromapTypeEXT = String
"MicromapTypeEXT"
enumPrefixMicromapTypeEXT :: String
enumPrefixMicromapTypeEXT :: String
enumPrefixMicromapTypeEXT = String
"MICROMAP_TYPE_OPACITY_MICROMAP_EXT"
showTableMicromapTypeEXT :: [(MicromapTypeEXT, String)]
showTableMicromapTypeEXT :: [(MicromapTypeEXT, String)]
showTableMicromapTypeEXT = [(MicromapTypeEXT
MICROMAP_TYPE_OPACITY_MICROMAP_EXT, String
"")]
instance Show MicromapTypeEXT where
showsPrec :: Int -> MicromapTypeEXT -> ShowS
showsPrec =
String
-> [(MicromapTypeEXT, String)]
-> String
-> (MicromapTypeEXT -> Int32)
-> (Int32 -> ShowS)
-> Int
-> MicromapTypeEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixMicromapTypeEXT
[(MicromapTypeEXT, String)]
showTableMicromapTypeEXT
String
conNameMicromapTypeEXT
(\(MicromapTypeEXT Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read MicromapTypeEXT where
readPrec :: ReadPrec MicromapTypeEXT
readPrec =
String
-> [(MicromapTypeEXT, String)]
-> String
-> (Int32 -> MicromapTypeEXT)
-> ReadPrec MicromapTypeEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixMicromapTypeEXT
[(MicromapTypeEXT, String)]
showTableMicromapTypeEXT
String
conNameMicromapTypeEXT
Int32 -> MicromapTypeEXT
MicromapTypeEXT
type BuildMicromapFlagsEXT = BuildMicromapFlagBitsEXT
newtype BuildMicromapFlagBitsEXT = BuildMicromapFlagBitsEXT Flags
deriving newtype (BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
(BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool)
-> (BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool)
-> Eq BuildMicromapFlagBitsEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c/= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
== :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c== :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
Eq, Eq BuildMicromapFlagBitsEXT
Eq BuildMicromapFlagBitsEXT
-> (BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> Ordering)
-> (BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool)
-> (BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool)
-> (BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool)
-> (BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool)
-> (BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT)
-> Ord BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Ordering
BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$cmin :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
max :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$cmax :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
>= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c>= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
> :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c> :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
<= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c<= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
< :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c< :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
compare :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Ordering
$ccompare :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Ordering
Ord, Ptr BuildMicromapFlagBitsEXT -> IO BuildMicromapFlagBitsEXT
Ptr BuildMicromapFlagBitsEXT -> Int -> IO BuildMicromapFlagBitsEXT
Ptr BuildMicromapFlagBitsEXT
-> Int -> BuildMicromapFlagBitsEXT -> IO ()
Ptr BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> IO ()
BuildMicromapFlagBitsEXT -> Int
(BuildMicromapFlagBitsEXT -> Int)
-> (BuildMicromapFlagBitsEXT -> Int)
-> (Ptr BuildMicromapFlagBitsEXT
-> Int -> IO BuildMicromapFlagBitsEXT)
-> (Ptr BuildMicromapFlagBitsEXT
-> Int -> BuildMicromapFlagBitsEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO BuildMicromapFlagBitsEXT)
-> (forall b. Ptr b -> Int -> BuildMicromapFlagBitsEXT -> IO ())
-> (Ptr BuildMicromapFlagBitsEXT -> IO BuildMicromapFlagBitsEXT)
-> (Ptr BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> IO ())
-> Storable BuildMicromapFlagBitsEXT
forall b. Ptr b -> Int -> IO BuildMicromapFlagBitsEXT
forall b. Ptr b -> Int -> BuildMicromapFlagBitsEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> IO ()
$cpoke :: Ptr BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> IO ()
peek :: Ptr BuildMicromapFlagBitsEXT -> IO BuildMicromapFlagBitsEXT
$cpeek :: Ptr BuildMicromapFlagBitsEXT -> IO BuildMicromapFlagBitsEXT
pokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapFlagBitsEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapFlagBitsEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapFlagBitsEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapFlagBitsEXT
pokeElemOff :: Ptr BuildMicromapFlagBitsEXT
-> Int -> BuildMicromapFlagBitsEXT -> IO ()
$cpokeElemOff :: Ptr BuildMicromapFlagBitsEXT
-> Int -> BuildMicromapFlagBitsEXT -> IO ()
peekElemOff :: Ptr BuildMicromapFlagBitsEXT -> Int -> IO BuildMicromapFlagBitsEXT
$cpeekElemOff :: Ptr BuildMicromapFlagBitsEXT -> Int -> IO BuildMicromapFlagBitsEXT
alignment :: BuildMicromapFlagBitsEXT -> Int
$calignment :: BuildMicromapFlagBitsEXT -> Int
sizeOf :: BuildMicromapFlagBitsEXT -> Int
$csizeOf :: BuildMicromapFlagBitsEXT -> Int
Storable, BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT -> Zero BuildMicromapFlagBitsEXT
forall a. a -> Zero a
zero :: BuildMicromapFlagBitsEXT
$czero :: BuildMicromapFlagBitsEXT
Zero, Eq BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT
Eq BuildMicromapFlagBitsEXT
-> (BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> BuildMicromapFlagBitsEXT
-> (Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> Bool)
-> (BuildMicromapFlagBitsEXT -> Maybe Int)
-> (BuildMicromapFlagBitsEXT -> Int)
-> (BuildMicromapFlagBitsEXT -> Bool)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT)
-> (BuildMicromapFlagBitsEXT -> Int)
-> Bits BuildMicromapFlagBitsEXT
Int -> BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT -> Bool
BuildMicromapFlagBitsEXT -> Int
BuildMicromapFlagBitsEXT -> Maybe Int
BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT -> Int -> Bool
BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: BuildMicromapFlagBitsEXT -> Int
$cpopCount :: BuildMicromapFlagBitsEXT -> Int
rotateR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$crotateR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
rotateL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$crotateL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
unsafeShiftR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cunsafeShiftR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
shiftR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cshiftR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
unsafeShiftL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cunsafeShiftL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
shiftL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cshiftL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
isSigned :: BuildMicromapFlagBitsEXT -> Bool
$cisSigned :: BuildMicromapFlagBitsEXT -> Bool
bitSize :: BuildMicromapFlagBitsEXT -> Int
$cbitSize :: BuildMicromapFlagBitsEXT -> Int
bitSizeMaybe :: BuildMicromapFlagBitsEXT -> Maybe Int
$cbitSizeMaybe :: BuildMicromapFlagBitsEXT -> Maybe Int
testBit :: BuildMicromapFlagBitsEXT -> Int -> Bool
$ctestBit :: BuildMicromapFlagBitsEXT -> Int -> Bool
complementBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$ccomplementBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
clearBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cclearBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
setBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$csetBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
bit :: Int -> BuildMicromapFlagBitsEXT
$cbit :: Int -> BuildMicromapFlagBitsEXT
zeroBits :: BuildMicromapFlagBitsEXT
$czeroBits :: BuildMicromapFlagBitsEXT
rotate :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$crotate :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
shift :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cshift :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
complement :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$ccomplement :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
xor :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$cxor :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
.|. :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$c.|. :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
.&. :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$c.&. :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
Bits, Bits BuildMicromapFlagBitsEXT
Bits BuildMicromapFlagBitsEXT
-> (BuildMicromapFlagBitsEXT -> Int)
-> (BuildMicromapFlagBitsEXT -> Int)
-> (BuildMicromapFlagBitsEXT -> Int)
-> FiniteBits BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: BuildMicromapFlagBitsEXT -> Int
$ccountTrailingZeros :: BuildMicromapFlagBitsEXT -> Int
countLeadingZeros :: BuildMicromapFlagBitsEXT -> Int
$ccountLeadingZeros :: BuildMicromapFlagBitsEXT -> Int
finiteBitSize :: BuildMicromapFlagBitsEXT -> Int
$cfiniteBitSize :: BuildMicromapFlagBitsEXT -> Int
FiniteBits)
pattern $bBUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT :: BuildMicromapFlagBitsEXT
$mBUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT :: forall {r}.
BuildMicromapFlagBitsEXT -> (Void# -> r) -> (Void# -> r) -> r
BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000001
pattern $bBUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT :: BuildMicromapFlagBitsEXT
$mBUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT :: forall {r}.
BuildMicromapFlagBitsEXT -> (Void# -> r) -> (Void# -> r) -> r
BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000002
pattern $bBUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT :: BuildMicromapFlagBitsEXT
$mBUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT :: forall {r}.
BuildMicromapFlagBitsEXT -> (Void# -> r) -> (Void# -> r) -> r
BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000004
conNameBuildMicromapFlagBitsEXT :: String
conNameBuildMicromapFlagBitsEXT :: String
conNameBuildMicromapFlagBitsEXT = String
"BuildMicromapFlagBitsEXT"
enumPrefixBuildMicromapFlagBitsEXT :: String
enumPrefixBuildMicromapFlagBitsEXT :: String
enumPrefixBuildMicromapFlagBitsEXT = String
"BUILD_MICROMAP_"
showTableBuildMicromapFlagBitsEXT :: [(BuildMicromapFlagBitsEXT, String)]
showTableBuildMicromapFlagBitsEXT :: [(BuildMicromapFlagBitsEXT, String)]
showTableBuildMicromapFlagBitsEXT =
[
( BuildMicromapFlagBitsEXT
BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT
, String
"PREFER_FAST_TRACE_BIT_EXT"
)
,
( BuildMicromapFlagBitsEXT
BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT
, String
"PREFER_FAST_BUILD_BIT_EXT"
)
,
( BuildMicromapFlagBitsEXT
BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT
, String
"ALLOW_COMPACTION_BIT_EXT"
)
]
instance Show BuildMicromapFlagBitsEXT where
showsPrec :: Int -> BuildMicromapFlagBitsEXT -> ShowS
showsPrec =
String
-> [(BuildMicromapFlagBitsEXT, String)]
-> String
-> (BuildMicromapFlagBitsEXT -> Flags)
-> (Flags -> ShowS)
-> Int
-> BuildMicromapFlagBitsEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixBuildMicromapFlagBitsEXT
[(BuildMicromapFlagBitsEXT, String)]
showTableBuildMicromapFlagBitsEXT
String
conNameBuildMicromapFlagBitsEXT
(\(BuildMicromapFlagBitsEXT Flags
x) -> Flags
x)
(\Flags
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)
instance Read BuildMicromapFlagBitsEXT where
readPrec :: ReadPrec BuildMicromapFlagBitsEXT
readPrec =
String
-> [(BuildMicromapFlagBitsEXT, String)]
-> String
-> (Flags -> BuildMicromapFlagBitsEXT)
-> ReadPrec BuildMicromapFlagBitsEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixBuildMicromapFlagBitsEXT
[(BuildMicromapFlagBitsEXT, String)]
showTableBuildMicromapFlagBitsEXT
String
conNameBuildMicromapFlagBitsEXT
Flags -> BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT
type MicromapCreateFlagsEXT = MicromapCreateFlagBitsEXT
newtype MicromapCreateFlagBitsEXT = MicromapCreateFlagBitsEXT Flags
deriving newtype (MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
(MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool)
-> (MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool)
-> Eq MicromapCreateFlagBitsEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c/= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
== :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c== :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
Eq, Eq MicromapCreateFlagBitsEXT
Eq MicromapCreateFlagBitsEXT
-> (MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> Ordering)
-> (MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool)
-> (MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool)
-> (MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool)
-> (MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool)
-> (MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT)
-> Ord MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Ordering
MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$cmin :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
max :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$cmax :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
>= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c>= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
> :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c> :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
<= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c<= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
< :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c< :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
compare :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Ordering
$ccompare :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Ordering
Ord, Ptr MicromapCreateFlagBitsEXT -> IO MicromapCreateFlagBitsEXT
Ptr MicromapCreateFlagBitsEXT
-> Int -> IO MicromapCreateFlagBitsEXT
Ptr MicromapCreateFlagBitsEXT
-> Int -> MicromapCreateFlagBitsEXT -> IO ()
Ptr MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> IO ()
MicromapCreateFlagBitsEXT -> Int
(MicromapCreateFlagBitsEXT -> Int)
-> (MicromapCreateFlagBitsEXT -> Int)
-> (Ptr MicromapCreateFlagBitsEXT
-> Int -> IO MicromapCreateFlagBitsEXT)
-> (Ptr MicromapCreateFlagBitsEXT
-> Int -> MicromapCreateFlagBitsEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO MicromapCreateFlagBitsEXT)
-> (forall b. Ptr b -> Int -> MicromapCreateFlagBitsEXT -> IO ())
-> (Ptr MicromapCreateFlagBitsEXT -> IO MicromapCreateFlagBitsEXT)
-> (Ptr MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> IO ())
-> Storable MicromapCreateFlagBitsEXT
forall b. Ptr b -> Int -> IO MicromapCreateFlagBitsEXT
forall b. Ptr b -> Int -> MicromapCreateFlagBitsEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> IO ()
$cpoke :: Ptr MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> IO ()
peek :: Ptr MicromapCreateFlagBitsEXT -> IO MicromapCreateFlagBitsEXT
$cpeek :: Ptr MicromapCreateFlagBitsEXT -> IO MicromapCreateFlagBitsEXT
pokeByteOff :: forall b. Ptr b -> Int -> MicromapCreateFlagBitsEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> MicromapCreateFlagBitsEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO MicromapCreateFlagBitsEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO MicromapCreateFlagBitsEXT
pokeElemOff :: Ptr MicromapCreateFlagBitsEXT
-> Int -> MicromapCreateFlagBitsEXT -> IO ()
$cpokeElemOff :: Ptr MicromapCreateFlagBitsEXT
-> Int -> MicromapCreateFlagBitsEXT -> IO ()
peekElemOff :: Ptr MicromapCreateFlagBitsEXT
-> Int -> IO MicromapCreateFlagBitsEXT
$cpeekElemOff :: Ptr MicromapCreateFlagBitsEXT
-> Int -> IO MicromapCreateFlagBitsEXT
alignment :: MicromapCreateFlagBitsEXT -> Int
$calignment :: MicromapCreateFlagBitsEXT -> Int
sizeOf :: MicromapCreateFlagBitsEXT -> Int
$csizeOf :: MicromapCreateFlagBitsEXT -> Int
Storable, MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT -> Zero MicromapCreateFlagBitsEXT
forall a. a -> Zero a
zero :: MicromapCreateFlagBitsEXT
$czero :: MicromapCreateFlagBitsEXT
Zero, Eq MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT
Eq MicromapCreateFlagBitsEXT
-> (MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> MicromapCreateFlagBitsEXT
-> (Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> Bool)
-> (MicromapCreateFlagBitsEXT -> Maybe Int)
-> (MicromapCreateFlagBitsEXT -> Int)
-> (MicromapCreateFlagBitsEXT -> Bool)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT)
-> (MicromapCreateFlagBitsEXT -> Int)
-> Bits MicromapCreateFlagBitsEXT
Int -> MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT -> Bool
MicromapCreateFlagBitsEXT -> Int
MicromapCreateFlagBitsEXT -> Maybe Int
MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT -> Int -> Bool
MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: MicromapCreateFlagBitsEXT -> Int
$cpopCount :: MicromapCreateFlagBitsEXT -> Int
rotateR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$crotateR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
rotateL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$crotateL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
unsafeShiftR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cunsafeShiftR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
shiftR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cshiftR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
unsafeShiftL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cunsafeShiftL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
shiftL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cshiftL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
isSigned :: MicromapCreateFlagBitsEXT -> Bool
$cisSigned :: MicromapCreateFlagBitsEXT -> Bool
bitSize :: MicromapCreateFlagBitsEXT -> Int
$cbitSize :: MicromapCreateFlagBitsEXT -> Int
bitSizeMaybe :: MicromapCreateFlagBitsEXT -> Maybe Int
$cbitSizeMaybe :: MicromapCreateFlagBitsEXT -> Maybe Int
testBit :: MicromapCreateFlagBitsEXT -> Int -> Bool
$ctestBit :: MicromapCreateFlagBitsEXT -> Int -> Bool
complementBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$ccomplementBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
clearBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cclearBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
setBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$csetBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
bit :: Int -> MicromapCreateFlagBitsEXT
$cbit :: Int -> MicromapCreateFlagBitsEXT
zeroBits :: MicromapCreateFlagBitsEXT
$czeroBits :: MicromapCreateFlagBitsEXT
rotate :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$crotate :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
shift :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cshift :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
complement :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$ccomplement :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
xor :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$cxor :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
.|. :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$c.|. :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
.&. :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$c.&. :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
Bits, Bits MicromapCreateFlagBitsEXT
Bits MicromapCreateFlagBitsEXT
-> (MicromapCreateFlagBitsEXT -> Int)
-> (MicromapCreateFlagBitsEXT -> Int)
-> (MicromapCreateFlagBitsEXT -> Int)
-> FiniteBits MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: MicromapCreateFlagBitsEXT -> Int
$ccountTrailingZeros :: MicromapCreateFlagBitsEXT -> Int
countLeadingZeros :: MicromapCreateFlagBitsEXT -> Int
$ccountLeadingZeros :: MicromapCreateFlagBitsEXT -> Int
finiteBitSize :: MicromapCreateFlagBitsEXT -> Int
$cfiniteBitSize :: MicromapCreateFlagBitsEXT -> Int
FiniteBits)
pattern $bMICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT :: MicromapCreateFlagBitsEXT
$mMICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT :: forall {r}.
MicromapCreateFlagBitsEXT -> (Void# -> r) -> (Void# -> r) -> r
MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = MicromapCreateFlagBitsEXT 0x00000001
conNameMicromapCreateFlagBitsEXT :: String
conNameMicromapCreateFlagBitsEXT :: String
conNameMicromapCreateFlagBitsEXT = String
"MicromapCreateFlagBitsEXT"
enumPrefixMicromapCreateFlagBitsEXT :: String
enumPrefixMicromapCreateFlagBitsEXT :: String
enumPrefixMicromapCreateFlagBitsEXT = String
"MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"
showTableMicromapCreateFlagBitsEXT :: [(MicromapCreateFlagBitsEXT, String)]
showTableMicromapCreateFlagBitsEXT :: [(MicromapCreateFlagBitsEXT, String)]
showTableMicromapCreateFlagBitsEXT =
[
( MicromapCreateFlagBitsEXT
MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
, String
""
)
]
instance Show MicromapCreateFlagBitsEXT where
showsPrec :: Int -> MicromapCreateFlagBitsEXT -> ShowS
showsPrec =
String
-> [(MicromapCreateFlagBitsEXT, String)]
-> String
-> (MicromapCreateFlagBitsEXT -> Flags)
-> (Flags -> ShowS)
-> Int
-> MicromapCreateFlagBitsEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixMicromapCreateFlagBitsEXT
[(MicromapCreateFlagBitsEXT, String)]
showTableMicromapCreateFlagBitsEXT
String
conNameMicromapCreateFlagBitsEXT
(\(MicromapCreateFlagBitsEXT Flags
x) -> Flags
x)
(\Flags
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)
instance Read MicromapCreateFlagBitsEXT where
readPrec :: ReadPrec MicromapCreateFlagBitsEXT
readPrec =
String
-> [(MicromapCreateFlagBitsEXT, String)]
-> String
-> (Flags -> MicromapCreateFlagBitsEXT)
-> ReadPrec MicromapCreateFlagBitsEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixMicromapCreateFlagBitsEXT
[(MicromapCreateFlagBitsEXT, String)]
showTableMicromapCreateFlagBitsEXT
String
conNameMicromapCreateFlagBitsEXT
Flags -> MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT
newtype CopyMicromapModeEXT = CopyMicromapModeEXT Int32
deriving newtype (CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
(CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool)
-> (CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool)
-> Eq CopyMicromapModeEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c/= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
== :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c== :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
Eq, Eq CopyMicromapModeEXT
Eq CopyMicromapModeEXT
-> (CopyMicromapModeEXT -> CopyMicromapModeEXT -> Ordering)
-> (CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool)
-> (CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool)
-> (CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool)
-> (CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool)
-> (CopyMicromapModeEXT
-> CopyMicromapModeEXT -> CopyMicromapModeEXT)
-> (CopyMicromapModeEXT
-> CopyMicromapModeEXT -> CopyMicromapModeEXT)
-> Ord CopyMicromapModeEXT
CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
CopyMicromapModeEXT -> CopyMicromapModeEXT -> Ordering
CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
$cmin :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
max :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
$cmax :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
>= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c>= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
> :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c> :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
<= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c<= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
< :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c< :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
compare :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Ordering
$ccompare :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Ordering
Ord, Ptr CopyMicromapModeEXT -> IO CopyMicromapModeEXT
Ptr CopyMicromapModeEXT -> Int -> IO CopyMicromapModeEXT
Ptr CopyMicromapModeEXT -> Int -> CopyMicromapModeEXT -> IO ()
Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
CopyMicromapModeEXT -> Int
(CopyMicromapModeEXT -> Int)
-> (CopyMicromapModeEXT -> Int)
-> (Ptr CopyMicromapModeEXT -> Int -> IO CopyMicromapModeEXT)
-> (Ptr CopyMicromapModeEXT -> Int -> CopyMicromapModeEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO CopyMicromapModeEXT)
-> (forall b. Ptr b -> Int -> CopyMicromapModeEXT -> IO ())
-> (Ptr CopyMicromapModeEXT -> IO CopyMicromapModeEXT)
-> (Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ())
-> Storable CopyMicromapModeEXT
forall b. Ptr b -> Int -> IO CopyMicromapModeEXT
forall b. Ptr b -> Int -> CopyMicromapModeEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
$cpoke :: Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
peek :: Ptr CopyMicromapModeEXT -> IO CopyMicromapModeEXT
$cpeek :: Ptr CopyMicromapModeEXT -> IO CopyMicromapModeEXT
pokeByteOff :: forall b. Ptr b -> Int -> CopyMicromapModeEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> CopyMicromapModeEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO CopyMicromapModeEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CopyMicromapModeEXT
pokeElemOff :: Ptr CopyMicromapModeEXT -> Int -> CopyMicromapModeEXT -> IO ()
$cpokeElemOff :: Ptr CopyMicromapModeEXT -> Int -> CopyMicromapModeEXT -> IO ()
peekElemOff :: Ptr CopyMicromapModeEXT -> Int -> IO CopyMicromapModeEXT
$cpeekElemOff :: Ptr CopyMicromapModeEXT -> Int -> IO CopyMicromapModeEXT
alignment :: CopyMicromapModeEXT -> Int
$calignment :: CopyMicromapModeEXT -> Int
sizeOf :: CopyMicromapModeEXT -> Int
$csizeOf :: CopyMicromapModeEXT -> Int
Storable, CopyMicromapModeEXT
CopyMicromapModeEXT -> Zero CopyMicromapModeEXT
forall a. a -> Zero a
zero :: CopyMicromapModeEXT
$czero :: CopyMicromapModeEXT
Zero)
pattern $bCOPY_MICROMAP_MODE_CLONE_EXT :: CopyMicromapModeEXT
$mCOPY_MICROMAP_MODE_CLONE_EXT :: forall {r}.
CopyMicromapModeEXT -> (Void# -> r) -> (Void# -> r) -> r
COPY_MICROMAP_MODE_CLONE_EXT = CopyMicromapModeEXT 0
pattern $bCOPY_MICROMAP_MODE_SERIALIZE_EXT :: CopyMicromapModeEXT
$mCOPY_MICROMAP_MODE_SERIALIZE_EXT :: forall {r}.
CopyMicromapModeEXT -> (Void# -> r) -> (Void# -> r) -> r
COPY_MICROMAP_MODE_SERIALIZE_EXT = CopyMicromapModeEXT 1
pattern $bCOPY_MICROMAP_MODE_DESERIALIZE_EXT :: CopyMicromapModeEXT
$mCOPY_MICROMAP_MODE_DESERIALIZE_EXT :: forall {r}.
CopyMicromapModeEXT -> (Void# -> r) -> (Void# -> r) -> r
COPY_MICROMAP_MODE_DESERIALIZE_EXT = CopyMicromapModeEXT 2
pattern $bCOPY_MICROMAP_MODE_COMPACT_EXT :: CopyMicromapModeEXT
$mCOPY_MICROMAP_MODE_COMPACT_EXT :: forall {r}.
CopyMicromapModeEXT -> (Void# -> r) -> (Void# -> r) -> r
COPY_MICROMAP_MODE_COMPACT_EXT = CopyMicromapModeEXT 3
{-# COMPLETE
COPY_MICROMAP_MODE_CLONE_EXT
, COPY_MICROMAP_MODE_SERIALIZE_EXT
, COPY_MICROMAP_MODE_DESERIALIZE_EXT
, COPY_MICROMAP_MODE_COMPACT_EXT ::
CopyMicromapModeEXT
#-}
conNameCopyMicromapModeEXT :: String
conNameCopyMicromapModeEXT :: String
conNameCopyMicromapModeEXT = String
"CopyMicromapModeEXT"
enumPrefixCopyMicromapModeEXT :: String
enumPrefixCopyMicromapModeEXT :: String
enumPrefixCopyMicromapModeEXT = String
"COPY_MICROMAP_MODE_"
showTableCopyMicromapModeEXT :: [(CopyMicromapModeEXT, String)]
showTableCopyMicromapModeEXT :: [(CopyMicromapModeEXT, String)]
showTableCopyMicromapModeEXT =
[ (CopyMicromapModeEXT
COPY_MICROMAP_MODE_CLONE_EXT, String
"CLONE_EXT")
,
( CopyMicromapModeEXT
COPY_MICROMAP_MODE_SERIALIZE_EXT
, String
"SERIALIZE_EXT"
)
,
( CopyMicromapModeEXT
COPY_MICROMAP_MODE_DESERIALIZE_EXT
, String
"DESERIALIZE_EXT"
)
,
( CopyMicromapModeEXT
COPY_MICROMAP_MODE_COMPACT_EXT
, String
"COMPACT_EXT"
)
]
instance Show CopyMicromapModeEXT where
showsPrec :: Int -> CopyMicromapModeEXT -> ShowS
showsPrec =
String
-> [(CopyMicromapModeEXT, String)]
-> String
-> (CopyMicromapModeEXT -> Int32)
-> (Int32 -> ShowS)
-> Int
-> CopyMicromapModeEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixCopyMicromapModeEXT
[(CopyMicromapModeEXT, String)]
showTableCopyMicromapModeEXT
String
conNameCopyMicromapModeEXT
(\(CopyMicromapModeEXT Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read CopyMicromapModeEXT where
readPrec :: ReadPrec CopyMicromapModeEXT
readPrec =
String
-> [(CopyMicromapModeEXT, String)]
-> String
-> (Int32 -> CopyMicromapModeEXT)
-> ReadPrec CopyMicromapModeEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixCopyMicromapModeEXT
[(CopyMicromapModeEXT, String)]
showTableCopyMicromapModeEXT
String
conNameCopyMicromapModeEXT
Int32 -> CopyMicromapModeEXT
CopyMicromapModeEXT
newtype BuildMicromapModeEXT = BuildMicromapModeEXT Int32
deriving newtype (BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
(BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool)
-> (BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool)
-> Eq BuildMicromapModeEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c/= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
== :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c== :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
Eq, Eq BuildMicromapModeEXT
Eq BuildMicromapModeEXT
-> (BuildMicromapModeEXT -> BuildMicromapModeEXT -> Ordering)
-> (BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool)
-> (BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool)
-> (BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool)
-> (BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool)
-> (BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT)
-> (BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT)
-> Ord BuildMicromapModeEXT
BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
BuildMicromapModeEXT -> BuildMicromapModeEXT -> Ordering
BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
$cmin :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
max :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
$cmax :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
>= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c>= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
> :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c> :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
<= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c<= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
< :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c< :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
compare :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Ordering
$ccompare :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Ordering
Ord, Ptr BuildMicromapModeEXT -> IO BuildMicromapModeEXT
Ptr BuildMicromapModeEXT -> Int -> IO BuildMicromapModeEXT
Ptr BuildMicromapModeEXT -> Int -> BuildMicromapModeEXT -> IO ()
Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
BuildMicromapModeEXT -> Int
(BuildMicromapModeEXT -> Int)
-> (BuildMicromapModeEXT -> Int)
-> (Ptr BuildMicromapModeEXT -> Int -> IO BuildMicromapModeEXT)
-> (Ptr BuildMicromapModeEXT
-> Int -> BuildMicromapModeEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO BuildMicromapModeEXT)
-> (forall b. Ptr b -> Int -> BuildMicromapModeEXT -> IO ())
-> (Ptr BuildMicromapModeEXT -> IO BuildMicromapModeEXT)
-> (Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ())
-> Storable BuildMicromapModeEXT
forall b. Ptr b -> Int -> IO BuildMicromapModeEXT
forall b. Ptr b -> Int -> BuildMicromapModeEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
$cpoke :: Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
peek :: Ptr BuildMicromapModeEXT -> IO BuildMicromapModeEXT
$cpeek :: Ptr BuildMicromapModeEXT -> IO BuildMicromapModeEXT
pokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapModeEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapModeEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapModeEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapModeEXT
pokeElemOff :: Ptr BuildMicromapModeEXT -> Int -> BuildMicromapModeEXT -> IO ()
$cpokeElemOff :: Ptr BuildMicromapModeEXT -> Int -> BuildMicromapModeEXT -> IO ()
peekElemOff :: Ptr BuildMicromapModeEXT -> Int -> IO BuildMicromapModeEXT
$cpeekElemOff :: Ptr BuildMicromapModeEXT -> Int -> IO BuildMicromapModeEXT
alignment :: BuildMicromapModeEXT -> Int
$calignment :: BuildMicromapModeEXT -> Int
sizeOf :: BuildMicromapModeEXT -> Int
$csizeOf :: BuildMicromapModeEXT -> Int
Storable, BuildMicromapModeEXT
BuildMicromapModeEXT -> Zero BuildMicromapModeEXT
forall a. a -> Zero a
zero :: BuildMicromapModeEXT
$czero :: BuildMicromapModeEXT
Zero)
pattern $bBUILD_MICROMAP_MODE_BUILD_EXT :: BuildMicromapModeEXT
$mBUILD_MICROMAP_MODE_BUILD_EXT :: forall {r}.
BuildMicromapModeEXT -> (Void# -> r) -> (Void# -> r) -> r
BUILD_MICROMAP_MODE_BUILD_EXT = BuildMicromapModeEXT 0
{-# COMPLETE BUILD_MICROMAP_MODE_BUILD_EXT :: BuildMicromapModeEXT #-}
conNameBuildMicromapModeEXT :: String
conNameBuildMicromapModeEXT :: String
conNameBuildMicromapModeEXT = String
"BuildMicromapModeEXT"
enumPrefixBuildMicromapModeEXT :: String
enumPrefixBuildMicromapModeEXT :: String
enumPrefixBuildMicromapModeEXT = String
"BUILD_MICROMAP_MODE_BUILD_EXT"
showTableBuildMicromapModeEXT :: [(BuildMicromapModeEXT, String)]
showTableBuildMicromapModeEXT :: [(BuildMicromapModeEXT, String)]
showTableBuildMicromapModeEXT = [(BuildMicromapModeEXT
BUILD_MICROMAP_MODE_BUILD_EXT, String
"")]
instance Show BuildMicromapModeEXT where
showsPrec :: Int -> BuildMicromapModeEXT -> ShowS
showsPrec =
String
-> [(BuildMicromapModeEXT, String)]
-> String
-> (BuildMicromapModeEXT -> Int32)
-> (Int32 -> ShowS)
-> Int
-> BuildMicromapModeEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixBuildMicromapModeEXT
[(BuildMicromapModeEXT, String)]
showTableBuildMicromapModeEXT
String
conNameBuildMicromapModeEXT
(\(BuildMicromapModeEXT Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read BuildMicromapModeEXT where
readPrec :: ReadPrec BuildMicromapModeEXT
readPrec =
String
-> [(BuildMicromapModeEXT, String)]
-> String
-> (Int32 -> BuildMicromapModeEXT)
-> ReadPrec BuildMicromapModeEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixBuildMicromapModeEXT
[(BuildMicromapModeEXT, String)]
showTableBuildMicromapModeEXT
String
conNameBuildMicromapModeEXT
Int32 -> BuildMicromapModeEXT
BuildMicromapModeEXT
newtype OpacityMicromapFormatEXT = OpacityMicromapFormatEXT Int32
deriving newtype (OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
(OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool)
-> (OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool)
-> Eq OpacityMicromapFormatEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c/= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
== :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c== :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
Eq, Eq OpacityMicromapFormatEXT
Eq OpacityMicromapFormatEXT
-> (OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> Ordering)
-> (OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool)
-> (OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool)
-> (OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool)
-> (OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool)
-> (OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT)
-> (OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT)
-> Ord OpacityMicromapFormatEXT
OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Ordering
OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
$cmin :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
max :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
$cmax :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
>= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c>= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
> :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c> :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
<= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c<= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
< :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c< :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
compare :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Ordering
$ccompare :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Ordering
Ord, Ptr OpacityMicromapFormatEXT -> IO OpacityMicromapFormatEXT
Ptr OpacityMicromapFormatEXT -> Int -> IO OpacityMicromapFormatEXT
Ptr OpacityMicromapFormatEXT
-> Int -> OpacityMicromapFormatEXT -> IO ()
Ptr OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> IO ()
OpacityMicromapFormatEXT -> Int
(OpacityMicromapFormatEXT -> Int)
-> (OpacityMicromapFormatEXT -> Int)
-> (Ptr OpacityMicromapFormatEXT
-> Int -> IO OpacityMicromapFormatEXT)
-> (Ptr OpacityMicromapFormatEXT
-> Int -> OpacityMicromapFormatEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO OpacityMicromapFormatEXT)
-> (forall b. Ptr b -> Int -> OpacityMicromapFormatEXT -> IO ())
-> (Ptr OpacityMicromapFormatEXT -> IO OpacityMicromapFormatEXT)
-> (Ptr OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> IO ())
-> Storable OpacityMicromapFormatEXT
forall b. Ptr b -> Int -> IO OpacityMicromapFormatEXT
forall b. Ptr b -> Int -> OpacityMicromapFormatEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> IO ()
$cpoke :: Ptr OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> IO ()
peek :: Ptr OpacityMicromapFormatEXT -> IO OpacityMicromapFormatEXT
$cpeek :: Ptr OpacityMicromapFormatEXT -> IO OpacityMicromapFormatEXT
pokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapFormatEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapFormatEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapFormatEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapFormatEXT
pokeElemOff :: Ptr OpacityMicromapFormatEXT
-> Int -> OpacityMicromapFormatEXT -> IO ()
$cpokeElemOff :: Ptr OpacityMicromapFormatEXT
-> Int -> OpacityMicromapFormatEXT -> IO ()
peekElemOff :: Ptr OpacityMicromapFormatEXT -> Int -> IO OpacityMicromapFormatEXT
$cpeekElemOff :: Ptr OpacityMicromapFormatEXT -> Int -> IO OpacityMicromapFormatEXT
alignment :: OpacityMicromapFormatEXT -> Int
$calignment :: OpacityMicromapFormatEXT -> Int
sizeOf :: OpacityMicromapFormatEXT -> Int
$csizeOf :: OpacityMicromapFormatEXT -> Int
Storable, OpacityMicromapFormatEXT
OpacityMicromapFormatEXT -> Zero OpacityMicromapFormatEXT
forall a. a -> Zero a
zero :: OpacityMicromapFormatEXT
$czero :: OpacityMicromapFormatEXT
Zero)
pattern $bOPACITY_MICROMAP_FORMAT_2_STATE_EXT :: OpacityMicromapFormatEXT
$mOPACITY_MICROMAP_FORMAT_2_STATE_EXT :: forall {r}.
OpacityMicromapFormatEXT -> (Void# -> r) -> (Void# -> r) -> r
OPACITY_MICROMAP_FORMAT_2_STATE_EXT = OpacityMicromapFormatEXT 1
pattern $bOPACITY_MICROMAP_FORMAT_4_STATE_EXT :: OpacityMicromapFormatEXT
$mOPACITY_MICROMAP_FORMAT_4_STATE_EXT :: forall {r}.
OpacityMicromapFormatEXT -> (Void# -> r) -> (Void# -> r) -> r
OPACITY_MICROMAP_FORMAT_4_STATE_EXT = OpacityMicromapFormatEXT 2
{-# COMPLETE
OPACITY_MICROMAP_FORMAT_2_STATE_EXT
, OPACITY_MICROMAP_FORMAT_4_STATE_EXT ::
OpacityMicromapFormatEXT
#-}
conNameOpacityMicromapFormatEXT :: String
conNameOpacityMicromapFormatEXT :: String
conNameOpacityMicromapFormatEXT = String
"OpacityMicromapFormatEXT"
enumPrefixOpacityMicromapFormatEXT :: String
enumPrefixOpacityMicromapFormatEXT :: String
enumPrefixOpacityMicromapFormatEXT = String
"OPACITY_MICROMAP_FORMAT_"
showTableOpacityMicromapFormatEXT :: [(OpacityMicromapFormatEXT, String)]
showTableOpacityMicromapFormatEXT :: [(OpacityMicromapFormatEXT, String)]
showTableOpacityMicromapFormatEXT =
[
( OpacityMicromapFormatEXT
OPACITY_MICROMAP_FORMAT_2_STATE_EXT
, String
"2_STATE_EXT"
)
,
( OpacityMicromapFormatEXT
OPACITY_MICROMAP_FORMAT_4_STATE_EXT
, String
"4_STATE_EXT"
)
]
instance Show OpacityMicromapFormatEXT where
showsPrec :: Int -> OpacityMicromapFormatEXT -> ShowS
showsPrec =
String
-> [(OpacityMicromapFormatEXT, String)]
-> String
-> (OpacityMicromapFormatEXT -> Int32)
-> (Int32 -> ShowS)
-> Int
-> OpacityMicromapFormatEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixOpacityMicromapFormatEXT
[(OpacityMicromapFormatEXT, String)]
showTableOpacityMicromapFormatEXT
String
conNameOpacityMicromapFormatEXT
(\(OpacityMicromapFormatEXT Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read OpacityMicromapFormatEXT where
readPrec :: ReadPrec OpacityMicromapFormatEXT
readPrec =
String
-> [(OpacityMicromapFormatEXT, String)]
-> String
-> (Int32 -> OpacityMicromapFormatEXT)
-> ReadPrec OpacityMicromapFormatEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixOpacityMicromapFormatEXT
[(OpacityMicromapFormatEXT, String)]
showTableOpacityMicromapFormatEXT
String
conNameOpacityMicromapFormatEXT
Int32 -> OpacityMicromapFormatEXT
OpacityMicromapFormatEXT
newtype OpacityMicromapSpecialIndexEXT = OpacityMicromapSpecialIndexEXT Int32
deriving newtype (OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
(OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool)
-> (OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool)
-> Eq OpacityMicromapSpecialIndexEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c/= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
== :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c== :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
Eq, Eq OpacityMicromapSpecialIndexEXT
Eq OpacityMicromapSpecialIndexEXT
-> (OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Ordering)
-> (OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool)
-> (OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool)
-> (OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool)
-> (OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool)
-> (OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT)
-> (OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT)
-> Ord OpacityMicromapSpecialIndexEXT
OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Ordering
OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
$cmin :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
max :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
$cmax :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
>= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c>= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
> :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c> :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
<= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c<= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
< :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c< :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
compare :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Ordering
$ccompare :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Ordering
Ord, Ptr OpacityMicromapSpecialIndexEXT
-> IO OpacityMicromapSpecialIndexEXT
Ptr OpacityMicromapSpecialIndexEXT
-> Int -> IO OpacityMicromapSpecialIndexEXT
Ptr OpacityMicromapSpecialIndexEXT
-> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
Ptr OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> IO ()
OpacityMicromapSpecialIndexEXT -> Int
(OpacityMicromapSpecialIndexEXT -> Int)
-> (OpacityMicromapSpecialIndexEXT -> Int)
-> (Ptr OpacityMicromapSpecialIndexEXT
-> Int -> IO OpacityMicromapSpecialIndexEXT)
-> (Ptr OpacityMicromapSpecialIndexEXT
-> Int -> OpacityMicromapSpecialIndexEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO OpacityMicromapSpecialIndexEXT)
-> (forall b.
Ptr b -> Int -> OpacityMicromapSpecialIndexEXT -> IO ())
-> (Ptr OpacityMicromapSpecialIndexEXT
-> IO OpacityMicromapSpecialIndexEXT)
-> (Ptr OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> IO ())
-> Storable OpacityMicromapSpecialIndexEXT
forall b. Ptr b -> Int -> IO OpacityMicromapSpecialIndexEXT
forall b. Ptr b -> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> IO ()
$cpoke :: Ptr OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> IO ()
peek :: Ptr OpacityMicromapSpecialIndexEXT
-> IO OpacityMicromapSpecialIndexEXT
$cpeek :: Ptr OpacityMicromapSpecialIndexEXT
-> IO OpacityMicromapSpecialIndexEXT
pokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapSpecialIndexEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapSpecialIndexEXT
pokeElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
$cpokeElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
peekElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> IO OpacityMicromapSpecialIndexEXT
$cpeekElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> IO OpacityMicromapSpecialIndexEXT
alignment :: OpacityMicromapSpecialIndexEXT -> Int
$calignment :: OpacityMicromapSpecialIndexEXT -> Int
sizeOf :: OpacityMicromapSpecialIndexEXT -> Int
$csizeOf :: OpacityMicromapSpecialIndexEXT -> Int
Storable, OpacityMicromapSpecialIndexEXT
OpacityMicromapSpecialIndexEXT
-> Zero OpacityMicromapSpecialIndexEXT
forall a. a -> Zero a
zero :: OpacityMicromapSpecialIndexEXT
$czero :: OpacityMicromapSpecialIndexEXT
Zero)
pattern $bOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT :: OpacityMicromapSpecialIndexEXT
$mOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT :: forall {r}.
OpacityMicromapSpecialIndexEXT -> (Void# -> r) -> (Void# -> r) -> r
OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = OpacityMicromapSpecialIndexEXT (-1)
pattern $bOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT :: OpacityMicromapSpecialIndexEXT
$mOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT :: forall {r}.
OpacityMicromapSpecialIndexEXT -> (Void# -> r) -> (Void# -> r) -> r
OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = OpacityMicromapSpecialIndexEXT (-2)
pattern $bOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT :: OpacityMicromapSpecialIndexEXT
$mOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT :: forall {r}.
OpacityMicromapSpecialIndexEXT -> (Void# -> r) -> (Void# -> r) -> r
OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = OpacityMicromapSpecialIndexEXT (-3)
pattern $bOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT :: OpacityMicromapSpecialIndexEXT
$mOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT :: forall {r}.
OpacityMicromapSpecialIndexEXT -> (Void# -> r) -> (Void# -> r) -> r
OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = OpacityMicromapSpecialIndexEXT (-4)
{-# COMPLETE
OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT
, OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT
, OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT
, OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT ::
OpacityMicromapSpecialIndexEXT
#-}
conNameOpacityMicromapSpecialIndexEXT :: String
conNameOpacityMicromapSpecialIndexEXT :: String
conNameOpacityMicromapSpecialIndexEXT = String
"OpacityMicromapSpecialIndexEXT"
enumPrefixOpacityMicromapSpecialIndexEXT :: String
enumPrefixOpacityMicromapSpecialIndexEXT :: String
enumPrefixOpacityMicromapSpecialIndexEXT = String
"OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_"
showTableOpacityMicromapSpecialIndexEXT :: [(OpacityMicromapSpecialIndexEXT, String)]
showTableOpacityMicromapSpecialIndexEXT :: [(OpacityMicromapSpecialIndexEXT, String)]
showTableOpacityMicromapSpecialIndexEXT =
[
( OpacityMicromapSpecialIndexEXT
OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT
, String
"TRANSPARENT_EXT"
)
,
( OpacityMicromapSpecialIndexEXT
OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT
, String
"OPAQUE_EXT"
)
,
( OpacityMicromapSpecialIndexEXT
OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT
, String
"UNKNOWN_TRANSPARENT_EXT"
)
,
( OpacityMicromapSpecialIndexEXT
OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT
, String
"UNKNOWN_OPAQUE_EXT"
)
]
instance Show OpacityMicromapSpecialIndexEXT where
showsPrec :: Int -> OpacityMicromapSpecialIndexEXT -> ShowS
showsPrec =
String
-> [(OpacityMicromapSpecialIndexEXT, String)]
-> String
-> (OpacityMicromapSpecialIndexEXT -> Int32)
-> (Int32 -> ShowS)
-> Int
-> OpacityMicromapSpecialIndexEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixOpacityMicromapSpecialIndexEXT
[(OpacityMicromapSpecialIndexEXT, String)]
showTableOpacityMicromapSpecialIndexEXT
String
conNameOpacityMicromapSpecialIndexEXT
(\(OpacityMicromapSpecialIndexEXT Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read OpacityMicromapSpecialIndexEXT where
readPrec :: ReadPrec OpacityMicromapSpecialIndexEXT
readPrec =
String
-> [(OpacityMicromapSpecialIndexEXT, String)]
-> String
-> (Int32 -> OpacityMicromapSpecialIndexEXT)
-> ReadPrec OpacityMicromapSpecialIndexEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixOpacityMicromapSpecialIndexEXT
[(OpacityMicromapSpecialIndexEXT, String)]
showTableOpacityMicromapSpecialIndexEXT
String
conNameOpacityMicromapSpecialIndexEXT
Int32 -> OpacityMicromapSpecialIndexEXT
OpacityMicromapSpecialIndexEXT
type EXT_OPACITY_MICROMAP_SPEC_VERSION = 2
pattern EXT_OPACITY_MICROMAP_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_OPACITY_MICROMAP_SPEC_VERSION :: forall a. Integral a => a
$mEXT_OPACITY_MICROMAP_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> (Void# -> r) -> (Void# -> r) -> r
EXT_OPACITY_MICROMAP_SPEC_VERSION = 2
type EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap"
pattern EXT_OPACITY_MICROMAP_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_OPACITY_MICROMAP_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mEXT_OPACITY_MICROMAP_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap"