{-# 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
, MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV
, ..
)
, 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 Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Exception.Base (bracket)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import 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 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.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 a. IO a -> io a
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
-> Ptr AllocationCallbacks
-> Ptr MicromapEXT
-> IO Result)
vkCreateMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr MicromapEXT
-> IO Result)
pVkCreateMicromapEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT MicromapEXT IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT MicromapEXT m a
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
-> Ptr AllocationCallbacks
-> Ptr MicromapEXT
-> IO Result)
vkCreateMicromapEXTPtr FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr MicromapEXT
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr MicromapEXT
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> Ptr AllocationCallbacks
-> 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
-> Ptr AllocationCallbacks
-> Ptr MicromapEXT
-> IO Result
vkCreateMicromapEXT' = FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr MicromapEXT
-> IO Result)
-> Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr MicromapEXT
-> IO Result
mkVkCreateMicromapEXT FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> Ptr AllocationCallbacks
-> 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
forall b.
MicromapCreateInfoEXT
-> (Ptr MicromapCreateInfoEXT -> IO b) -> IO b
withCStruct (MicromapCreateInfoEXT
createInfo)
Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> Ptr AllocationCallbacks
-> ContT MicromapEXT IO (Ptr AllocationCallbacks)
forall a. a -> ContT MicromapEXT IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr AllocationCallbacks
forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> ((Ptr AllocationCallbacks -> IO MicromapEXT) -> IO MicromapEXT)
-> ContT MicromapEXT IO (Ptr AllocationCallbacks)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr AllocationCallbacks -> IO MicromapEXT) -> IO MicromapEXT)
-> ContT MicromapEXT IO (Ptr AllocationCallbacks))
-> ((Ptr AllocationCallbacks -> IO MicromapEXT) -> IO MicromapEXT)
-> ContT MicromapEXT IO (Ptr AllocationCallbacks)
forall a b. (a -> b) -> a -> b
$ AllocationCallbacks
-> (Ptr AllocationCallbacks -> IO MicromapEXT) -> IO MicromapEXT
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
AllocationCallbacks -> (Ptr AllocationCallbacks -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
Ptr MicromapEXT
pPMicromap <- ((Ptr MicromapEXT -> IO MicromapEXT) -> IO MicromapEXT)
-> ContT MicromapEXT IO (Ptr MicromapEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapEXT -> IO MicromapEXT) -> IO MicromapEXT)
-> ContT MicromapEXT IO (Ptr MicromapEXT))
-> ((Ptr MicromapEXT -> IO MicromapEXT) -> IO MicromapEXT)
-> ContT MicromapEXT IO (Ptr MicromapEXT)
forall a b. (a -> b) -> a -> b
$ IO (Ptr MicromapEXT)
-> (Ptr MicromapEXT -> IO ())
-> (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) Ptr MicromapEXT -> IO ()
forall a. Ptr a -> IO ()
free
Result
r <- IO Result -> ContT MicromapEXT IO Result
forall (m :: * -> *) a. Monad m => m a -> ContT MicromapEXT m a
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
-> Ptr AllocationCallbacks
-> Ptr MicromapEXT
-> IO Result
vkCreateMicromapEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
Ptr MicromapCreateInfoEXT
pCreateInfo
Ptr AllocationCallbacks
pAllocator
(Ptr MicromapEXT
pPMicromap))
IO () -> ContT MicromapEXT IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT MicromapEXT m a
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 (m :: * -> *) a. Monad m => m a -> ContT MicromapEXT m a
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 Ptr MicromapEXT
pPMicromap
MicromapEXT -> ContT MicromapEXT IO MicromapEXT
forall a. a -> ContT MicromapEXT IO a
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 a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdBuildMicromapsEXTPtr :: FunPtr
(Ptr CommandBuffer_T -> Flags -> Ptr MicromapBuildInfoEXT -> IO ())
vkCmdBuildMicromapsEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T -> Flags -> Ptr MicromapBuildInfoEXT -> IO ())
pVkCmdBuildMicromapsEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T -> Flags -> Ptr MicromapBuildInfoEXT -> IO ())
vkCmdBuildMicromapsEXTPtr FunPtr
(Ptr CommandBuffer_T -> Flags -> Ptr MicromapBuildInfoEXT -> IO ())
-> FunPtr
(Ptr CommandBuffer_T -> Flags -> Ptr MicromapBuildInfoEXT -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T -> Flags -> 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 -> Ptr MicromapBuildInfoEXT -> IO ()
vkCmdBuildMicromapsEXT' = FunPtr
(Ptr CommandBuffer_T -> Flags -> Ptr MicromapBuildInfoEXT -> IO ())
-> Ptr CommandBuffer_T
-> Flags
-> Ptr MicromapBuildInfoEXT
-> IO ()
mkVkCmdBuildMicromapsEXT FunPtr
(Ptr CommandBuffer_T -> Flags -> Ptr MicromapBuildInfoEXT -> IO ())
vkCmdBuildMicromapsEXTPtr
Ptr MicromapBuildInfoEXT
pPInfos <- ((Ptr MicromapBuildInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr MicromapBuildInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapBuildInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr MicromapBuildInfoEXT))
-> ((Ptr MicromapBuildInfoEXT -> IO ()) -> IO ())
-> ContT () IO (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
$ Ptr MicromapBuildInfoEXT -> MicromapBuildInfoEXT -> IO () -> IO ()
forall b.
Ptr MicromapBuildInfoEXT -> MicromapBuildInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (Ptr MicromapBuildInfoEXT
pPInfos Ptr MicromapBuildInfoEXT -> Int -> 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 (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdBuildMicromapsEXT" (Ptr CommandBuffer_T -> Flags -> 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))
(Ptr MicromapBuildInfoEXT
pPInfos))
() -> ContT () IO ()
forall a. a -> ContT () IO a
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 a. IO a -> io a
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
-> Ptr MicromapBuildInfoEXT
-> IO Result)
vkBuildMicromapsEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> Ptr MicromapBuildInfoEXT
-> IO Result)
pVkBuildMicromapsEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT Result IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT Result m a
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
-> Ptr MicromapBuildInfoEXT
-> IO Result)
vkBuildMicromapsEXTPtr FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> Ptr MicromapBuildInfoEXT
-> IO Result)
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> Ptr MicromapBuildInfoEXT
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> 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
-> Ptr MicromapBuildInfoEXT
-> IO Result
vkBuildMicromapsEXT' = FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> Ptr MicromapBuildInfoEXT
-> IO Result)
-> Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> Ptr MicromapBuildInfoEXT
-> IO Result
mkVkBuildMicromapsEXT FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> Ptr MicromapBuildInfoEXT
-> IO Result)
vkBuildMicromapsEXTPtr
Ptr MicromapBuildInfoEXT
pPInfos <- ((Ptr MicromapBuildInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr MicromapBuildInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapBuildInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr MicromapBuildInfoEXT))
-> ((Ptr MicromapBuildInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (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
$ Ptr MicromapBuildInfoEXT
-> MicromapBuildInfoEXT -> IO Result -> IO Result
forall b.
Ptr MicromapBuildInfoEXT -> MicromapBuildInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (Ptr MicromapBuildInfoEXT
pPInfos Ptr MicromapBuildInfoEXT -> Int -> 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 (m :: * -> *) a. Monad m => m a -> ContT Result m a
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
-> 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))
(Ptr MicromapBuildInfoEXT
pPInfos))
IO () -> ContT Result IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT Result m a
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 a. a -> ContT Result IO a
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 a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkDestroyMicromapEXTPtr :: FunPtr
(Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ())
vkDestroyMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ())
pVkDestroyMicromapEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ())
vkDestroyMicromapEXTPtr FunPtr
(Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ())
-> FunPtr
(Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T -> MicromapEXT -> 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 -> Ptr AllocationCallbacks -> IO ()
vkDestroyMicromapEXT' = FunPtr
(Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ())
-> Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ()
mkVkDestroyMicromapEXT FunPtr
(Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ())
vkDestroyMicromapEXTPtr
Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> Ptr AllocationCallbacks -> ContT () IO (Ptr AllocationCallbacks)
forall a. a -> ContT () IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr AllocationCallbacks
forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> ((Ptr AllocationCallbacks -> IO ()) -> IO ())
-> ContT () IO (Ptr AllocationCallbacks)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr AllocationCallbacks -> IO ()) -> IO ())
-> ContT () IO (Ptr AllocationCallbacks))
-> ((Ptr AllocationCallbacks -> IO ()) -> IO ())
-> ContT () IO (Ptr AllocationCallbacks)
forall a b. (a -> b) -> a -> b
$ AllocationCallbacks -> (Ptr AllocationCallbacks -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
AllocationCallbacks -> (Ptr AllocationCallbacks -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkDestroyMicromapEXT" (Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ()
vkDestroyMicromapEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(MicromapEXT
micromap)
Ptr AllocationCallbacks
pAllocator)
() -> ContT () IO ()
forall a. a -> ContT () IO a
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 a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMicromapEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
vkCmdCopyMicromapEXTPtr = DeviceCmds
-> FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
pVkCmdCopyMicromapEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr (Ptr CommandBuffer_T -> Ptr 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
forall b.
CopyMicromapInfoEXT -> (Ptr CopyMicromapInfoEXT -> IO b) -> IO b
withCStruct (CopyMicromapInfoEXT
info)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ 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 a. a -> ContT () IO a
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 a. IO a -> io a
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
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT Result IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT Result m a
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
forall b.
CopyMicromapInfoEXT -> (Ptr CopyMicromapInfoEXT -> IO b) -> IO b
withCStruct (CopyMicromapInfoEXT
info)
Result
r <- IO Result -> ContT Result IO Result
forall (m :: * -> *) a. Monad m => m a -> ContT Result m a
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 (m :: * -> *) a. Monad m => m a -> ContT Result m a
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 a. a -> ContT Result IO a
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 a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMicromapToMemoryEXTPtr :: FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ())
vkCmdCopyMicromapToMemoryEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ())
pVkCmdCopyMicromapToMemoryEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ())
vkCmdCopyMicromapToMemoryEXTPtr FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ())
-> FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T -> 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 -> Ptr CopyMicromapToMemoryInfoEXT -> IO ()
vkCmdCopyMicromapToMemoryEXT' = FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ())
-> Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ()
mkVkCmdCopyMicromapToMemoryEXT FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ())
vkCmdCopyMicromapToMemoryEXTPtr
Ptr CopyMicromapToMemoryInfoEXT
pInfo <- ((Ptr CopyMicromapToMemoryInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMicromapToMemoryInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CopyMicromapToMemoryInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMicromapToMemoryInfoEXT))
-> ((Ptr CopyMicromapToMemoryInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMicromapToMemoryInfoEXT)
forall a b. (a -> b) -> a -> b
$ CopyMicromapToMemoryInfoEXT
-> (Ptr CopyMicromapToMemoryInfoEXT -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
CopyMicromapToMemoryInfoEXT
-> (Ptr CopyMicromapToMemoryInfoEXT -> IO b) -> IO b
withCStruct (CopyMicromapToMemoryInfoEXT
info)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdCopyMicromapToMemoryEXT" (Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ()
vkCmdCopyMicromapToMemoryEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
Ptr CopyMicromapToMemoryInfoEXT
pInfo)
() -> ContT () IO ()
forall a. a -> ContT () IO a
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 a. IO a -> io a
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
-> Ptr CopyMicromapToMemoryInfoEXT
-> IO Result)
vkCopyMicromapToMemoryEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMicromapToMemoryInfoEXT
-> IO Result)
pVkCopyMicromapToMemoryEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT Result IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT Result m a
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 CopyMicromapToMemoryInfoEXT
-> IO Result)
vkCopyMicromapToMemoryEXTPtr FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMicromapToMemoryInfoEXT
-> IO Result)
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMicromapToMemoryInfoEXT
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> 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
-> Ptr CopyMicromapToMemoryInfoEXT
-> IO Result
vkCopyMicromapToMemoryEXT' = FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMicromapToMemoryInfoEXT
-> IO Result)
-> Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMicromapToMemoryInfoEXT
-> IO Result
mkVkCopyMicromapToMemoryEXT FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMicromapToMemoryInfoEXT
-> IO Result)
vkCopyMicromapToMemoryEXTPtr
Ptr CopyMicromapToMemoryInfoEXT
pInfo <- ((Ptr CopyMicromapToMemoryInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr CopyMicromapToMemoryInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CopyMicromapToMemoryInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr CopyMicromapToMemoryInfoEXT))
-> ((Ptr CopyMicromapToMemoryInfoEXT -> IO Result) -> IO Result)
-> ContT Result IO (Ptr CopyMicromapToMemoryInfoEXT)
forall a b. (a -> b) -> a -> b
$ CopyMicromapToMemoryInfoEXT
-> (Ptr CopyMicromapToMemoryInfoEXT -> IO Result) -> IO Result
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
CopyMicromapToMemoryInfoEXT
-> (Ptr CopyMicromapToMemoryInfoEXT -> IO b) -> IO b
withCStruct (CopyMicromapToMemoryInfoEXT
info)
Result
r <- IO Result -> ContT Result IO Result
forall (m :: * -> *) a. Monad m => m a -> ContT Result m a
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
-> Ptr CopyMicromapToMemoryInfoEXT
-> IO Result
vkCopyMicromapToMemoryEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(DeferredOperationKHR
deferredOperation)
Ptr CopyMicromapToMemoryInfoEXT
pInfo)
IO () -> ContT Result IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT Result m a
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 a. a -> ContT Result IO a
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 a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMemoryToMicromapEXTPtr :: FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
vkCmdCopyMemoryToMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
pVkCmdCopyMemoryToMicromapEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T -> Ptr 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
forall b.
CopyMemoryToMicromapInfoEXT
-> (Ptr CopyMemoryToMicromapInfoEXT -> IO b) -> IO b
withCStruct (CopyMemoryToMicromapInfoEXT
info)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ 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 a. a -> ContT () IO a
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 a. IO a -> io a
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
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT Result IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT Result m a
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
forall b.
CopyMemoryToMicromapInfoEXT
-> (Ptr CopyMemoryToMicromapInfoEXT -> IO b) -> IO b
withCStruct (CopyMemoryToMicromapInfoEXT
info)
Result
r <- IO Result -> ContT Result IO Result
forall (m :: * -> *) a. Monad m => m a -> ContT Result m a
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 (m :: * -> *) a. Monad m => m a -> ContT Result m a
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 a. a -> ContT Result IO a
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 a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdWriteMicromapsPropertiesEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> QueryPool
-> Flags
-> IO ())
vkCmdWriteMicromapsPropertiesEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> QueryPool
-> Flags
-> IO ())
pVkCmdWriteMicromapsPropertiesEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> QueryPool
-> Flags
-> IO ())
vkCmdWriteMicromapsPropertiesEXTPtr FunPtr
(Ptr CommandBuffer_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> QueryPool
-> Flags
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> QueryPool
-> Flags
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Flags
-> 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
-> Ptr MicromapEXT
-> QueryType
-> QueryPool
-> Flags
-> IO ()
vkCmdWriteMicromapsPropertiesEXT' = FunPtr
(Ptr CommandBuffer_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> QueryPool
-> Flags
-> IO ())
-> Ptr CommandBuffer_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> QueryPool
-> Flags
-> IO ()
mkVkCmdWriteMicromapsPropertiesEXT FunPtr
(Ptr CommandBuffer_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> QueryPool
-> Flags
-> IO ())
vkCmdWriteMicromapsPropertiesEXTPtr
Ptr MicromapEXT
pPMicromaps <- ((Ptr MicromapEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr MicromapEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr MicromapEXT))
-> ((Ptr MicromapEXT -> IO ()) -> IO ())
-> ContT () IO (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 (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ (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 -> Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr MicromapEXT
pPMicromaps Ptr MicromapEXT -> Int -> 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 (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdWriteMicromapsPropertiesEXT" (Ptr CommandBuffer_T
-> Flags
-> 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))
(Ptr MicromapEXT
pPMicromaps)
(QueryType
queryType)
(QueryPool
queryPool)
(Flags
firstQuery))
() -> ContT () IO ()
forall a. a -> ContT () IO a
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 a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkWriteMicromapsPropertiesEXTPtr :: FunPtr
(Ptr Device_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> CSize
-> IO Result)
vkWriteMicromapsPropertiesEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> CSize
-> IO Result)
pVkWriteMicromapsPropertiesEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> CSize
-> IO Result)
vkWriteMicromapsPropertiesEXTPtr FunPtr
(Ptr Device_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> CSize
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> CSize
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> 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
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> CSize
-> IO Result
vkWriteMicromapsPropertiesEXT' = FunPtr
(Ptr Device_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> CSize
-> IO Result)
-> Ptr Device_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> CSize
-> IO Result
mkVkWriteMicromapsPropertiesEXT FunPtr
(Ptr Device_T
-> Flags
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> CSize
-> IO Result)
vkWriteMicromapsPropertiesEXTPtr
Ptr MicromapEXT
pPMicromaps <- ((Ptr MicromapEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr MicromapEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr MicromapEXT))
-> ((Ptr MicromapEXT -> IO ()) -> IO ())
-> ContT () IO (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 (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ (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 -> Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr MicromapEXT
pPMicromaps Ptr MicromapEXT -> Int -> 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 (m :: * -> *) a. Monad m => m a -> ContT () m a
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
-> Ptr MicromapEXT
-> QueryType
-> CSize
-> ("data" ::: Ptr ())
-> 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))
(Ptr MicromapEXT
pPMicromaps)
(QueryType
queryType)
(("dataSize" ::: Word64) -> CSize
CSize ("dataSize" ::: Word64
dataSize))
("data" ::: Ptr ()
data')
(("dataSize" ::: Word64) -> CSize
CSize ("dataSize" ::: Word64
stride)))
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
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 a. IO a -> io a
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
-> Ptr AccelerationStructureCompatibilityKHR
-> IO ())
vkGetDeviceMicromapCompatibilityEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> Ptr AccelerationStructureCompatibilityKHR
-> IO ())
pVkGetDeviceMicromapCompatibilityEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT AccelerationStructureCompatibilityKHR IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT AccelerationStructureCompatibilityKHR m a
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
-> Ptr AccelerationStructureCompatibilityKHR
-> IO ())
vkGetDeviceMicromapCompatibilityEXTPtr FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> Ptr AccelerationStructureCompatibilityKHR
-> IO ())
-> FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> Ptr AccelerationStructureCompatibilityKHR
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> 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
-> Ptr AccelerationStructureCompatibilityKHR
-> IO ()
vkGetDeviceMicromapCompatibilityEXT' = FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> Ptr AccelerationStructureCompatibilityKHR
-> IO ())
-> Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> Ptr AccelerationStructureCompatibilityKHR
-> IO ()
mkVkGetDeviceMicromapCompatibilityEXT FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> 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
forall b.
MicromapVersionInfoEXT
-> (Ptr MicromapVersionInfoEXT -> IO b) -> IO b
withCStruct (MicromapVersionInfoEXT
versionInfo)
Ptr AccelerationStructureCompatibilityKHR
pPCompatibility <- ((Ptr AccelerationStructureCompatibilityKHR
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
(Ptr AccelerationStructureCompatibilityKHR)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr AccelerationStructureCompatibilityKHR
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
(Ptr AccelerationStructureCompatibilityKHR))
-> ((Ptr AccelerationStructureCompatibilityKHR
-> IO AccelerationStructureCompatibilityKHR)
-> IO AccelerationStructureCompatibilityKHR)
-> ContT
AccelerationStructureCompatibilityKHR
IO
(Ptr AccelerationStructureCompatibilityKHR)
forall a b. (a -> b) -> a -> b
$ IO (Ptr AccelerationStructureCompatibilityKHR)
-> (Ptr AccelerationStructureCompatibilityKHR -> IO ())
-> (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) Ptr AccelerationStructureCompatibilityKHR -> IO ()
forall a. Ptr a -> IO ()
free
IO () -> ContT AccelerationStructureCompatibilityKHR IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT AccelerationStructureCompatibilityKHR m a
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
-> Ptr AccelerationStructureCompatibilityKHR
-> IO ()
vkGetDeviceMicromapCompatibilityEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
Ptr MicromapVersionInfoEXT
pVersionInfo
(Ptr AccelerationStructureCompatibilityKHR
pPCompatibility))
AccelerationStructureCompatibilityKHR
pCompatibility <- IO AccelerationStructureCompatibilityKHR
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
forall (m :: * -> *) a.
Monad m =>
m a -> ContT AccelerationStructureCompatibilityKHR m a
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 Ptr AccelerationStructureCompatibilityKHR
pPCompatibility
AccelerationStructureCompatibilityKHR
-> ContT
AccelerationStructureCompatibilityKHR
IO
AccelerationStructureCompatibilityKHR
forall a. a -> ContT AccelerationStructureCompatibilityKHR IO a
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 ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
getMicromapBuildSizesEXT Device
device AccelerationStructureBuildTypeKHR
buildType MicromapBuildInfoEXT
buildInfo = IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> io ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> io ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> (ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> io ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> io ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> io ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a b. (a -> b) -> a -> b
$ do
let vkGetMicromapBuildSizesEXTPtr :: FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ())
vkGetMicromapBuildSizesEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ())
pVkGetMicromapBuildSizesEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT ("sizeInfo" ::: MicromapBuildSizesInfoEXT) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ("sizeInfo" ::: MicromapBuildSizesInfoEXT) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT ("sizeInfo" ::: MicromapBuildSizesInfoEXT) IO ())
-> IO () -> ContT ("sizeInfo" ::: 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
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ())
vkGetMicromapBuildSizesEXTPtr FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ())
-> FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: 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
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ()
vkGetMicromapBuildSizesEXT' = FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ())
-> Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ()
mkVkGetMicromapBuildSizesEXT FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ())
vkGetMicromapBuildSizesEXTPtr
Ptr MicromapBuildInfoEXT
pBuildInfo <- ((Ptr MicromapBuildInfoEXT
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
(Ptr MicromapBuildInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr MicromapBuildInfoEXT
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
(Ptr MicromapBuildInfoEXT))
-> ((Ptr MicromapBuildInfoEXT
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
(Ptr MicromapBuildInfoEXT)
forall a b. (a -> b) -> a -> b
$ MicromapBuildInfoEXT
-> (Ptr MicromapBuildInfoEXT
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
MicromapBuildInfoEXT -> (Ptr MicromapBuildInfoEXT -> IO b) -> IO b
withCStruct (MicromapBuildInfoEXT
buildInfo)
Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
pPSizeInfo <- ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
(Ptr ("sizeInfo" ::: 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 ("sizeInfo" ::: MicromapBuildSizesInfoEXT) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ("sizeInfo" ::: MicromapBuildSizesInfoEXT) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT ("sizeInfo" ::: MicromapBuildSizesInfoEXT) IO ())
-> IO () -> ContT ("sizeInfo" ::: 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
-> Ptr MicromapBuildInfoEXT
-> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ()
vkGetMicromapBuildSizesEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(AccelerationStructureBuildTypeKHR
buildType)
Ptr MicromapBuildInfoEXT
pBuildInfo
(Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
pPSizeInfo))
"sizeInfo" ::: MicromapBuildSizesInfoEXT
pSizeInfo <- IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ("sizeInfo" ::: MicromapBuildSizesInfoEXT) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @MicromapBuildSizesInfoEXT Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
pPSizeInfo
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a.
a -> ContT ("sizeInfo" ::: MicromapBuildSizesInfoEXT) IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ContT
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
IO
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a b. (a -> b) -> a -> b
$ ("sizeInfo" ::: MicromapBuildSizesInfoEXT
pSizeInfo)
data MicromapBuildInfoEXT = MicromapBuildInfoEXT
{
MicromapBuildInfoEXT -> MicromapTypeEXT
type' :: MicromapTypeEXT
,
MicromapBuildInfoEXT -> BuildMicromapFlagsEXT
flags :: BuildMicromapFlagsEXT
,
MicromapBuildInfoEXT -> BuildMicromapModeEXT
mode :: BuildMicromapModeEXT
,
MicromapBuildInfoEXT -> MicromapEXT
dstMicromap :: MicromapEXT
,
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 -> (Ptr MicromapBuildInfoEXT -> IO b) -> IO b
withCStruct MicromapBuildInfoEXT
x Ptr MicromapBuildInfoEXT -> IO b
f = Int -> (Ptr MicromapBuildInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
96 ((Ptr MicromapBuildInfoEXT -> IO b) -> IO b)
-> (Ptr MicromapBuildInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr MicromapBuildInfoEXT
p -> Ptr MicromapBuildInfoEXT -> MicromapBuildInfoEXT -> IO b -> IO b
forall b.
Ptr MicromapBuildInfoEXT -> MicromapBuildInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapBuildInfoEXT
p MicromapBuildInfoEXT
x (Ptr MicromapBuildInfoEXT -> IO b
f Ptr MicromapBuildInfoEXT
p)
pokeCStruct :: forall b.
Ptr MicromapBuildInfoEXT -> MicromapBuildInfoEXT -> IO b -> IO b
pokeCStruct Ptr MicromapBuildInfoEXT
p MicromapBuildInfoEXT{"dataSize" ::: Word64
Vector MicromapUsageEXT
MicromapEXT
DeviceOrHostAddressConstKHR
DeviceOrHostAddressKHR
BuildMicromapFlagsEXT
BuildMicromapModeEXT
MicromapTypeEXT
$sel:type':MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> MicromapTypeEXT
$sel:flags:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> BuildMicromapFlagsEXT
$sel:mode:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> BuildMicromapModeEXT
$sel:dstMicromap:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> MicromapEXT
$sel:usageCounts:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> Vector MicromapUsageEXT
$sel:data':MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
$sel:scratchData:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> DeviceOrHostAddressKHR
$sel:triangleArray:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
$sel:triangleArrayStride:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> "dataSize" ::: Word64
type' :: MicromapTypeEXT
flags :: BuildMicromapFlagsEXT
mode :: BuildMicromapModeEXT
dstMicromap :: MicromapEXT
usageCounts :: Vector MicromapUsageEXT
data' :: DeviceOrHostAddressConstKHR
scratchData :: DeviceOrHostAddressKHR
triangleArray :: DeviceOrHostAddressConstKHR
triangleArrayStride :: "dataSize" ::: Word64
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p Ptr MicromapBuildInfoEXT -> Int -> Ptr BuildMicromapFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr BuildMicromapFlagsEXT)) (BuildMicromapFlagsEXT
flags)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p Ptr MicromapBuildInfoEXT -> Int -> Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr MicromapEXT)) (MicromapEXT
dstMicromap)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags -> Flags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p Ptr MicromapBuildInfoEXT -> Int -> Ptr Flags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) ((Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral (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)) :: Word32))
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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ (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)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr MicromapUsageEXT) -> Ptr MicromapUsageEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p Ptr MicromapBuildInfoEXT -> Int -> Ptr (Ptr MicromapUsageEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr MicromapUsageEXT))) (Ptr MicromapUsageEXT
pPUsageCounts')
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr (Ptr MicromapUsageEXT))
-> Ptr (Ptr MicromapUsageEXT) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 b.
Ptr DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr MicromapBuildInfoEXT
p 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 b.
Ptr DeviceOrHostAddressKHR
-> DeviceOrHostAddressKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr MicromapBuildInfoEXT
p 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 b.
Ptr DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO 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. Ptr MicromapBuildInfoEXT -> IO b -> IO b
pokeZeroCStruct 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr (Ptr MicromapUsageEXT))
-> Ptr (Ptr MicromapUsageEXT) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 b.
Ptr DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr MicromapBuildInfoEXT
p 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 b.
Ptr DeviceOrHostAddressKHR
-> DeviceOrHostAddressKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr MicromapBuildInfoEXT
p 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 b.
Ptr DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressConstKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("dataSize" ::: Word64) -> ("dataSize" ::: Word64) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapBuildInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO 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
-> BuildMicromapFlagsEXT
-> BuildMicromapModeEXT
-> MicromapEXT
-> Vector MicromapUsageEXT
-> DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressKHR
-> DeviceOrHostAddressConstKHR
-> ("dataSize" ::: Word64)
-> MicromapBuildInfoEXT
MicromapBuildInfoEXT
MicromapTypeEXT
forall a. Zero a => a
zero
BuildMicromapFlagsEXT
forall a. Zero a => a
zero
BuildMicromapModeEXT
forall a. Zero a => a
zero
MicromapEXT
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 -> MicromapCreateFlagsEXT
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
$c== :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
== :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
$c/= :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
/= :: 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 b.
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
MicromapCreateFlagsEXT
MicromapTypeEXT
$sel:createFlags:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> MicromapCreateFlagsEXT
$sel:buffer:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> Buffer
$sel:offset:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> "dataSize" ::: Word64
$sel:size:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> "dataSize" ::: Word64
$sel:type':MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> MicromapTypeEXT
$sel:deviceAddress:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> "dataSize" ::: Word64
createFlags :: MicromapCreateFlagsEXT
buffer :: Buffer
offset :: "dataSize" ::: Word64
size :: "dataSize" ::: Word64
type' :: MicromapTypeEXT
deviceAddress :: "dataSize" ::: Word64
..} 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 MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr MicromapCreateFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapCreateFlagsEXT)) (MicromapCreateFlagsEXT
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
MicromapCreateFlagsEXT
createFlags <- forall a. Storable a => Ptr a -> IO a
peek @MicromapCreateFlagsEXT ((Ptr MicromapCreateInfoEXT
p Ptr MicromapCreateInfoEXT -> Int -> Ptr MicromapCreateFlagsEXT
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 a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT)
-> MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT
forall a b. (a -> b) -> a -> b
$ MicromapCreateFlagsEXT
-> Buffer
-> ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64)
-> MicromapTypeEXT
-> ("dataSize" ::: Word64)
-> MicromapCreateInfoEXT
MicromapCreateInfoEXT
MicromapCreateFlagsEXT
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 b.
Ptr MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapCreateInfoEXT
ptr MicromapCreateInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapCreateInfoEXT where
zero :: MicromapCreateInfoEXT
zero = MicromapCreateFlagsEXT
-> Buffer
-> ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64)
-> MicromapTypeEXT
-> ("dataSize" ::: Word64)
-> MicromapCreateInfoEXT
MicromapCreateInfoEXT
MicromapCreateFlagsEXT
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 b.
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
$sel:versionData:MicromapVersionInfoEXT :: MicromapVersionInfoEXT -> ByteString
versionData :: 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ 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 a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO 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 a. a -> IO a
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
$c== :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
== :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
$c/= :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
/= :: 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 b.
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
$sel:src:CopyMicromapInfoEXT :: CopyMicromapInfoEXT -> MicromapEXT
$sel:dst:CopyMicromapInfoEXT :: CopyMicromapInfoEXT -> MicromapEXT
$sel:mode:CopyMicromapInfoEXT :: CopyMicromapInfoEXT -> CopyMicromapModeEXT
src :: MicromapEXT
dst :: MicromapEXT
mode :: CopyMicromapModeEXT
..} 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)
Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (MicromapEXT
src)
Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> 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)
Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (MicromapEXT
forall a. Zero a => a
zero)
Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p Ptr CopyMicromapInfoEXT -> Int -> 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 -> 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 -> 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 a. a -> IO a
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 b.
Ptr CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMicromapInfoEXT
ptr CopyMicromapInfoEXT
poked (() -> IO ()
forall a. a -> IO a
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
-> (Ptr CopyMicromapToMemoryInfoEXT -> IO b) -> IO b
withCStruct CopyMicromapToMemoryInfoEXT
x Ptr CopyMicromapToMemoryInfoEXT -> IO b
f = Int -> (Ptr CopyMicromapToMemoryInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr CopyMicromapToMemoryInfoEXT -> IO b) -> IO b)
-> (Ptr CopyMicromapToMemoryInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr CopyMicromapToMemoryInfoEXT
p -> Ptr CopyMicromapToMemoryInfoEXT
-> CopyMicromapToMemoryInfoEXT -> IO b -> IO b
forall b.
Ptr CopyMicromapToMemoryInfoEXT
-> CopyMicromapToMemoryInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMicromapToMemoryInfoEXT
p CopyMicromapToMemoryInfoEXT
x (Ptr CopyMicromapToMemoryInfoEXT -> IO b
f Ptr CopyMicromapToMemoryInfoEXT
p)
pokeCStruct :: forall b.
Ptr CopyMicromapToMemoryInfoEXT
-> CopyMicromapToMemoryInfoEXT -> IO b -> IO b
pokeCStruct Ptr CopyMicromapToMemoryInfoEXT
p CopyMicromapToMemoryInfoEXT{MicromapEXT
DeviceOrHostAddressKHR
CopyMicromapModeEXT
$sel:src:CopyMicromapToMemoryInfoEXT :: CopyMicromapToMemoryInfoEXT -> MicromapEXT
$sel:dst:CopyMicromapToMemoryInfoEXT :: CopyMicromapToMemoryInfoEXT -> DeviceOrHostAddressKHR
$sel:mode:CopyMicromapToMemoryInfoEXT :: CopyMicromapToMemoryInfoEXT -> CopyMicromapModeEXT
src :: MicromapEXT
dst :: DeviceOrHostAddressKHR
mode :: CopyMicromapModeEXT
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapToMemoryInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapToMemoryInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapToMemoryInfoEXT
p Ptr CopyMicromapToMemoryInfoEXT -> Int -> 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 b.
Ptr DeviceOrHostAddressKHR
-> DeviceOrHostAddressKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr CopyMicromapToMemoryInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapToMemoryInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO 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 CopyMicromapToMemoryInfoEXT -> IO b -> IO b
pokeZeroCStruct 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapToMemoryInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("data" ::: Ptr ()) -> ("data" ::: Ptr ()) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapToMemoryInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapToMemoryInfoEXT
p Ptr CopyMicromapToMemoryInfoEXT -> Int -> 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 b.
Ptr DeviceOrHostAddressKHR
-> DeviceOrHostAddressKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr CopyMicromapToMemoryInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapToMemoryInfoEXT
p 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO 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 b.
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
$sel:src:CopyMemoryToMicromapInfoEXT :: CopyMemoryToMicromapInfoEXT -> DeviceOrHostAddressConstKHR
$sel:dst:CopyMemoryToMicromapInfoEXT :: CopyMemoryToMicromapInfoEXT -> MicromapEXT
$sel:mode:CopyMemoryToMicromapInfoEXT :: CopyMemoryToMicromapInfoEXT -> CopyMicromapModeEXT
src :: DeviceOrHostAddressConstKHR
dst :: MicromapEXT
mode :: CopyMicromapModeEXT
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("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 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT -> Int -> Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT)) (MicromapEXT
dst)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("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 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p Ptr CopyMemoryToMicromapInfoEXT -> Int -> 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO 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
{
("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> "dataSize" ::: Word64
micromapSize :: DeviceSize
,
("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> "dataSize" ::: Word64
buildScratchSize :: DeviceSize
,
("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Bool
discardable :: Bool
}
deriving (Typeable, ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Bool
(("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Bool)
-> (("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Bool)
-> Eq ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Bool
== :: ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Bool
$c/= :: ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Bool
/= :: ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapBuildSizesInfoEXT)
#endif
deriving instance Show MicromapBuildSizesInfoEXT
instance ToCStruct MicromapBuildSizesInfoEXT where
withCStruct :: forall b.
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> (Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b) -> IO b
withCStruct "sizeInfo" ::: MicromapBuildSizesInfoEXT
x Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b
f = Int
-> (Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b) -> IO b)
-> (Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p -> Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b -> IO b
forall b.
Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p "sizeInfo" ::: MicromapBuildSizesInfoEXT
x (Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b
f Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p)
pokeCStruct :: forall b.
Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b -> IO b
pokeCStruct Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p MicromapBuildSizesInfoEXT{Bool
"dataSize" ::: Word64
$sel:micromapSize:MicromapBuildSizesInfoEXT :: ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> "dataSize" ::: Word64
$sel:buildScratchSize:MicromapBuildSizesInfoEXT :: ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> "dataSize" ::: Word64
$sel:discardable:MicromapBuildSizesInfoEXT :: ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Bool
micromapSize :: "dataSize" ::: Word64
buildScratchSize :: "dataSize" ::: Word64
discardable :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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.
Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b -> IO b
pokeZeroCStruct Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 :: Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
peekCStruct Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p = do
"dataSize" ::: Word64
micromapSize <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: 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 ((Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
p Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32))
("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT))
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a b. (a -> b) -> a -> b
$ ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64)
-> Bool
-> "sizeInfo" ::: MicromapBuildSizesInfoEXT
MicromapBuildSizesInfoEXT
"dataSize" ::: Word64
micromapSize "dataSize" ::: Word64
buildScratchSize (Bool32 -> Bool
bool32ToBool Bool32
discardable)
instance Storable MicromapBuildSizesInfoEXT where
sizeOf :: ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Int
sizeOf ~"sizeInfo" ::: MicromapBuildSizesInfoEXT
_ = Int
40
alignment :: ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> Int
alignment ~"sizeInfo" ::: MicromapBuildSizesInfoEXT
_ = Int
8
peek :: Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
peek = Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> IO ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO ()
poke Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
ptr "sizeInfo" ::: MicromapBuildSizesInfoEXT
poked = Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO () -> IO ()
forall b.
Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
-> ("sizeInfo" ::: MicromapBuildSizesInfoEXT) -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ("sizeInfo" ::: MicromapBuildSizesInfoEXT)
ptr "sizeInfo" ::: MicromapBuildSizesInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapBuildSizesInfoEXT where
zero :: "sizeInfo" ::: MicromapBuildSizesInfoEXT
zero = ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64)
-> Bool
-> "sizeInfo" ::: 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
$c== :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
== :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
$c/= :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
/= :: 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 b. 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
$sel:count:MicromapUsageEXT :: MicromapUsageEXT -> Flags
$sel:subdivisionLevel:MicromapUsageEXT :: MicromapUsageEXT -> Flags
$sel:format:MicromapUsageEXT :: MicromapUsageEXT -> Flags
count :: Flags
subdivisionLevel :: Flags
format :: 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 a. a -> IO a
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 b. Ptr MicromapUsageEXT -> MicromapUsageEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapUsageEXT
ptr MicromapUsageEXT
poked (() -> IO ()
forall a. a -> IO a
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
$c== :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
== :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
$c/= :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
/= :: 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 b.
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
$sel:dataOffset:MicromapTriangleEXT :: MicromapTriangleEXT -> Flags
$sel:subdivisionLevel:MicromapTriangleEXT :: MicromapTriangleEXT -> Word16
$sel:format:MicromapTriangleEXT :: MicromapTriangleEXT -> Word16
dataOffset :: Flags
subdivisionLevel :: Word16
format :: Word16
..} 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 a. a -> IO a
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 b.
Ptr MicromapTriangleEXT -> MicromapTriangleEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapTriangleEXT
ptr MicromapTriangleEXT
poked (() -> IO ()
forall a. a -> IO a
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
$c== :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
== :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$c/= :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
/= :: 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 b.
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
$sel:micromap:PhysicalDeviceOpacityMicromapFeaturesEXT :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$sel:micromapCaptureReplay:PhysicalDeviceOpacityMicromapFeaturesEXT :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$sel:micromapHostCommands:PhysicalDeviceOpacityMicromapFeaturesEXT :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
micromap :: Bool
micromapCaptureReplay :: Bool
micromapHostCommands :: 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 a. a -> IO a
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 b.
Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
ptr PhysicalDeviceOpacityMicromapFeaturesEXT
poked (() -> IO ()
forall a. a -> IO a
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
$c== :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
== :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
$c/= :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
/= :: 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 b.
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
$sel:maxOpacity2StateSubdivisionLevel:PhysicalDeviceOpacityMicromapPropertiesEXT :: PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
$sel:maxOpacity4StateSubdivisionLevel:PhysicalDeviceOpacityMicromapPropertiesEXT :: PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
maxOpacity2StateSubdivisionLevel :: Flags
maxOpacity4StateSubdivisionLevel :: 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 a. a -> IO a
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 b.
Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
ptr PhysicalDeviceOpacityMicromapPropertiesEXT
poked (() -> IO ()
forall a. a -> IO a
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
-> 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 b.
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
$sel:indexType:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> IndexType
$sel:indexBuffer:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT
-> DeviceOrHostAddressConstKHR
$sel:indexStride:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT
-> "dataSize" ::: Word64
$sel:baseTriangle:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> Flags
$sel:usageCounts:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT
-> Vector MicromapUsageEXT
$sel:micromap:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> MicromapEXT
indexType :: IndexType
indexBuffer :: DeviceOrHostAddressConstKHR
indexStride :: "dataSize" ::: Word64
baseTriangle :: Flags
usageCounts :: Vector MicromapUsageEXT
micromap :: 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr 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 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr 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)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr 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)) ((Int -> Flags
forall a b. (Integral a, Num b) => a -> b
fromIntegral (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)) :: Word32))
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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ (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)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr 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
pPUsageCounts')
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr (Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr MicromapEXT -> MicromapEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> Int -> Ptr MicromapEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr MicromapEXT)) (MicromapEXT
micromap)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr 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 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr 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 (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr (Ptr 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 b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO 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
-> 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
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
$c== :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
== :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c/= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
/= :: 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
$ccompare :: MicromapTypeEXT -> MicromapTypeEXT -> Ordering
compare :: MicromapTypeEXT -> MicromapTypeEXT -> Ordering
$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
>= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$cmax :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
max :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
$cmin :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
min :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
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
$csizeOf :: MicromapTypeEXT -> Int
sizeOf :: MicromapTypeEXT -> Int
$calignment :: MicromapTypeEXT -> Int
alignment :: MicromapTypeEXT -> Int
$cpeekElemOff :: Ptr MicromapTypeEXT -> Int -> IO MicromapTypeEXT
peekElemOff :: Ptr MicromapTypeEXT -> Int -> IO MicromapTypeEXT
$cpokeElemOff :: Ptr MicromapTypeEXT -> Int -> MicromapTypeEXT -> IO ()
pokeElemOff :: Ptr MicromapTypeEXT -> Int -> MicromapTypeEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO MicromapTypeEXT
peekByteOff :: forall b. Ptr b -> Int -> IO MicromapTypeEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> MicromapTypeEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> MicromapTypeEXT -> IO ()
$cpeek :: Ptr MicromapTypeEXT -> IO MicromapTypeEXT
peek :: Ptr MicromapTypeEXT -> IO MicromapTypeEXT
$cpoke :: Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
poke :: Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
Storable, MicromapTypeEXT
MicromapTypeEXT -> Zero MicromapTypeEXT
forall a. a -> Zero a
$czero :: MicromapTypeEXT
zero :: MicromapTypeEXT
Zero)
pattern $bMICROMAP_TYPE_OPACITY_MICROMAP_EXT :: MicromapTypeEXT
$mMICROMAP_TYPE_OPACITY_MICROMAP_EXT :: forall {r}. MicromapTypeEXT -> ((# #) -> r) -> ((# #) -> r) -> r
MICROMAP_TYPE_OPACITY_MICROMAP_EXT = MicromapTypeEXT 0
pattern $bMICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV :: MicromapTypeEXT
$mMICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV :: forall {r}. MicromapTypeEXT -> ((# #) -> r) -> ((# #) -> r) -> r
MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = MicromapTypeEXT 1000397000
{-# COMPLETE
MICROMAP_TYPE_OPACITY_MICROMAP_EXT
, MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV ::
MicromapTypeEXT
#-}
conNameMicromapTypeEXT :: String
conNameMicromapTypeEXT :: String
conNameMicromapTypeEXT = String
"MicromapTypeEXT"
enumPrefixMicromapTypeEXT :: String
enumPrefixMicromapTypeEXT :: String
enumPrefixMicromapTypeEXT = String
"MICROMAP_TYPE_"
showTableMicromapTypeEXT :: [(MicromapTypeEXT, String)]
showTableMicromapTypeEXT :: [(MicromapTypeEXT, String)]
showTableMicromapTypeEXT =
[
( MicromapTypeEXT
MICROMAP_TYPE_OPACITY_MICROMAP_EXT
, String
"OPACITY_MICROMAP_EXT"
)
,
( MicromapTypeEXT
MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV
, String
"DISPLACEMENT_MICROMAP_NV"
)
]
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 (BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
(BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool)
-> (BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool)
-> Eq BuildMicromapFlagsEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
== :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
$c/= :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
/= :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
Eq, Eq BuildMicromapFlagsEXT
Eq BuildMicromapFlagsEXT =>
(BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Ordering)
-> (BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool)
-> (BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool)
-> (BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool)
-> (BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool)
-> (BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT)
-> Ord BuildMicromapFlagsEXT
BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Ordering
BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Ordering
compare :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Ordering
$c< :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
< :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
$c<= :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
<= :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
$c> :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
> :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
$c>= :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
>= :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> Bool
$cmax :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
max :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
$cmin :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
min :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
Ord, Ptr BuildMicromapFlagsEXT -> IO BuildMicromapFlagsEXT
Ptr BuildMicromapFlagsEXT -> Int -> IO BuildMicromapFlagsEXT
Ptr BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT -> IO ()
Ptr BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> IO ()
BuildMicromapFlagsEXT -> Int
(BuildMicromapFlagsEXT -> Int)
-> (BuildMicromapFlagsEXT -> Int)
-> (Ptr BuildMicromapFlagsEXT -> Int -> IO BuildMicromapFlagsEXT)
-> (Ptr BuildMicromapFlagsEXT
-> Int -> BuildMicromapFlagsEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO BuildMicromapFlagsEXT)
-> (forall b. Ptr b -> Int -> BuildMicromapFlagsEXT -> IO ())
-> (Ptr BuildMicromapFlagsEXT -> IO BuildMicromapFlagsEXT)
-> (Ptr BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> IO ())
-> Storable BuildMicromapFlagsEXT
forall b. Ptr b -> Int -> IO BuildMicromapFlagsEXT
forall b. Ptr b -> Int -> BuildMicromapFlagsEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: BuildMicromapFlagsEXT -> Int
sizeOf :: BuildMicromapFlagsEXT -> Int
$calignment :: BuildMicromapFlagsEXT -> Int
alignment :: BuildMicromapFlagsEXT -> Int
$cpeekElemOff :: Ptr BuildMicromapFlagsEXT -> Int -> IO BuildMicromapFlagsEXT
peekElemOff :: Ptr BuildMicromapFlagsEXT -> Int -> IO BuildMicromapFlagsEXT
$cpokeElemOff :: Ptr BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT -> IO ()
pokeElemOff :: Ptr BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapFlagsEXT
peekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapFlagsEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapFlagsEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapFlagsEXT -> IO ()
$cpeek :: Ptr BuildMicromapFlagsEXT -> IO BuildMicromapFlagsEXT
peek :: Ptr BuildMicromapFlagsEXT -> IO BuildMicromapFlagsEXT
$cpoke :: Ptr BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> IO ()
poke :: Ptr BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT -> IO ()
Storable, BuildMicromapFlagsEXT
BuildMicromapFlagsEXT -> Zero BuildMicromapFlagsEXT
forall a. a -> Zero a
$czero :: BuildMicromapFlagsEXT
zero :: BuildMicromapFlagsEXT
Zero, Eq BuildMicromapFlagsEXT
BuildMicromapFlagsEXT
Eq BuildMicromapFlagsEXT =>
(BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> BuildMicromapFlagsEXT
-> (Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> Bool)
-> (BuildMicromapFlagsEXT -> Maybe Int)
-> (BuildMicromapFlagsEXT -> Int)
-> (BuildMicromapFlagsEXT -> Bool)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT)
-> (BuildMicromapFlagsEXT -> Int)
-> Bits BuildMicromapFlagsEXT
Int -> BuildMicromapFlagsEXT
BuildMicromapFlagsEXT -> Bool
BuildMicromapFlagsEXT -> Int
BuildMicromapFlagsEXT -> Maybe Int
BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
BuildMicromapFlagsEXT -> Int -> Bool
BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
.&. :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
$c.|. :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
.|. :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
$cxor :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
xor :: BuildMicromapFlagsEXT
-> BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
$ccomplement :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
complement :: BuildMicromapFlagsEXT -> BuildMicromapFlagsEXT
$cshift :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
shift :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$crotate :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
rotate :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$czeroBits :: BuildMicromapFlagsEXT
zeroBits :: BuildMicromapFlagsEXT
$cbit :: Int -> BuildMicromapFlagsEXT
bit :: Int -> BuildMicromapFlagsEXT
$csetBit :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
setBit :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$cclearBit :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
clearBit :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$ccomplementBit :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
complementBit :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$ctestBit :: BuildMicromapFlagsEXT -> Int -> Bool
testBit :: BuildMicromapFlagsEXT -> Int -> Bool
$cbitSizeMaybe :: BuildMicromapFlagsEXT -> Maybe Int
bitSizeMaybe :: BuildMicromapFlagsEXT -> Maybe Int
$cbitSize :: BuildMicromapFlagsEXT -> Int
bitSize :: BuildMicromapFlagsEXT -> Int
$cisSigned :: BuildMicromapFlagsEXT -> Bool
isSigned :: BuildMicromapFlagsEXT -> Bool
$cshiftL :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
shiftL :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$cunsafeShiftL :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
unsafeShiftL :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$cshiftR :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
shiftR :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$cunsafeShiftR :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
unsafeShiftR :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$crotateL :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
rotateL :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$crotateR :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
rotateR :: BuildMicromapFlagsEXT -> Int -> BuildMicromapFlagsEXT
$cpopCount :: BuildMicromapFlagsEXT -> Int
popCount :: BuildMicromapFlagsEXT -> Int
Bits, Bits BuildMicromapFlagsEXT
Bits BuildMicromapFlagsEXT =>
(BuildMicromapFlagsEXT -> Int)
-> (BuildMicromapFlagsEXT -> Int)
-> (BuildMicromapFlagsEXT -> Int)
-> FiniteBits BuildMicromapFlagsEXT
BuildMicromapFlagsEXT -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: BuildMicromapFlagsEXT -> Int
finiteBitSize :: BuildMicromapFlagsEXT -> Int
$ccountLeadingZeros :: BuildMicromapFlagsEXT -> Int
countLeadingZeros :: BuildMicromapFlagsEXT -> Int
$ccountTrailingZeros :: BuildMicromapFlagsEXT -> Int
countTrailingZeros :: BuildMicromapFlagsEXT -> Int
FiniteBits)
pattern $bBUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT :: BuildMicromapFlagsEXT
$mBUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT :: forall {r}.
BuildMicromapFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000001
pattern $bBUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT :: BuildMicromapFlagsEXT
$mBUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT :: forall {r}.
BuildMicromapFlagsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000002
pattern $bBUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT :: BuildMicromapFlagsEXT
$mBUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT :: forall {r}.
BuildMicromapFlagsEXT -> ((# #) -> r) -> ((# #) -> 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 :: [(BuildMicromapFlagsEXT, String)]
showTableBuildMicromapFlagBitsEXT =
[
( BuildMicromapFlagsEXT
BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT
, String
"PREFER_FAST_TRACE_BIT_EXT"
)
,
( BuildMicromapFlagsEXT
BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT
, String
"PREFER_FAST_BUILD_BIT_EXT"
)
,
( BuildMicromapFlagsEXT
BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT
, String
"ALLOW_COMPACTION_BIT_EXT"
)
]
instance Show BuildMicromapFlagBitsEXT where
showsPrec :: Int -> BuildMicromapFlagsEXT -> ShowS
showsPrec =
String
-> [(BuildMicromapFlagsEXT, String)]
-> String
-> (BuildMicromapFlagsEXT -> Flags)
-> (Flags -> ShowS)
-> Int
-> BuildMicromapFlagsEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixBuildMicromapFlagBitsEXT
[(BuildMicromapFlagsEXT, 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 => a -> ShowS
showHex Flags
x)
instance Read BuildMicromapFlagBitsEXT where
readPrec :: ReadPrec BuildMicromapFlagsEXT
readPrec =
String
-> [(BuildMicromapFlagsEXT, String)]
-> String
-> (Flags -> BuildMicromapFlagsEXT)
-> ReadPrec BuildMicromapFlagsEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixBuildMicromapFlagBitsEXT
[(BuildMicromapFlagsEXT, String)]
showTableBuildMicromapFlagBitsEXT
String
conNameBuildMicromapFlagBitsEXT
Flags -> BuildMicromapFlagsEXT
BuildMicromapFlagBitsEXT
type MicromapCreateFlagsEXT = MicromapCreateFlagBitsEXT
newtype MicromapCreateFlagBitsEXT = MicromapCreateFlagBitsEXT Flags
deriving newtype (MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
(MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool)
-> (MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool)
-> Eq MicromapCreateFlagsEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
== :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
$c/= :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
/= :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
Eq, Eq MicromapCreateFlagsEXT
Eq MicromapCreateFlagsEXT =>
(MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Ordering)
-> (MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool)
-> (MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool)
-> (MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool)
-> (MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool)
-> (MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT)
-> Ord MicromapCreateFlagsEXT
MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Ordering
MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Ordering
compare :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Ordering
$c< :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
< :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
$c<= :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
<= :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
$c> :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
> :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
$c>= :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
>= :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> Bool
$cmax :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
max :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
$cmin :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
min :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
Ord, Ptr MicromapCreateFlagsEXT -> IO MicromapCreateFlagsEXT
Ptr MicromapCreateFlagsEXT -> Int -> IO MicromapCreateFlagsEXT
Ptr MicromapCreateFlagsEXT
-> Int -> MicromapCreateFlagsEXT -> IO ()
Ptr MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> IO ()
MicromapCreateFlagsEXT -> Int
(MicromapCreateFlagsEXT -> Int)
-> (MicromapCreateFlagsEXT -> Int)
-> (Ptr MicromapCreateFlagsEXT -> Int -> IO MicromapCreateFlagsEXT)
-> (Ptr MicromapCreateFlagsEXT
-> Int -> MicromapCreateFlagsEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO MicromapCreateFlagsEXT)
-> (forall b. Ptr b -> Int -> MicromapCreateFlagsEXT -> IO ())
-> (Ptr MicromapCreateFlagsEXT -> IO MicromapCreateFlagsEXT)
-> (Ptr MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> IO ())
-> Storable MicromapCreateFlagsEXT
forall b. Ptr b -> Int -> IO MicromapCreateFlagsEXT
forall b. Ptr b -> Int -> MicromapCreateFlagsEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: MicromapCreateFlagsEXT -> Int
sizeOf :: MicromapCreateFlagsEXT -> Int
$calignment :: MicromapCreateFlagsEXT -> Int
alignment :: MicromapCreateFlagsEXT -> Int
$cpeekElemOff :: Ptr MicromapCreateFlagsEXT -> Int -> IO MicromapCreateFlagsEXT
peekElemOff :: Ptr MicromapCreateFlagsEXT -> Int -> IO MicromapCreateFlagsEXT
$cpokeElemOff :: Ptr MicromapCreateFlagsEXT
-> Int -> MicromapCreateFlagsEXT -> IO ()
pokeElemOff :: Ptr MicromapCreateFlagsEXT
-> Int -> MicromapCreateFlagsEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO MicromapCreateFlagsEXT
peekByteOff :: forall b. Ptr b -> Int -> IO MicromapCreateFlagsEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> MicromapCreateFlagsEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> MicromapCreateFlagsEXT -> IO ()
$cpeek :: Ptr MicromapCreateFlagsEXT -> IO MicromapCreateFlagsEXT
peek :: Ptr MicromapCreateFlagsEXT -> IO MicromapCreateFlagsEXT
$cpoke :: Ptr MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> IO ()
poke :: Ptr MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT -> IO ()
Storable, MicromapCreateFlagsEXT
MicromapCreateFlagsEXT -> Zero MicromapCreateFlagsEXT
forall a. a -> Zero a
$czero :: MicromapCreateFlagsEXT
zero :: MicromapCreateFlagsEXT
Zero, Eq MicromapCreateFlagsEXT
MicromapCreateFlagsEXT
Eq MicromapCreateFlagsEXT =>
(MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> MicromapCreateFlagsEXT
-> (Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> Bool)
-> (MicromapCreateFlagsEXT -> Maybe Int)
-> (MicromapCreateFlagsEXT -> Int)
-> (MicromapCreateFlagsEXT -> Bool)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT)
-> (MicromapCreateFlagsEXT -> Int)
-> Bits MicromapCreateFlagsEXT
Int -> MicromapCreateFlagsEXT
MicromapCreateFlagsEXT -> Bool
MicromapCreateFlagsEXT -> Int
MicromapCreateFlagsEXT -> Maybe Int
MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
MicromapCreateFlagsEXT -> Int -> Bool
MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
.&. :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
$c.|. :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
.|. :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
$cxor :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
xor :: MicromapCreateFlagsEXT
-> MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
$ccomplement :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
complement :: MicromapCreateFlagsEXT -> MicromapCreateFlagsEXT
$cshift :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
shift :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$crotate :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
rotate :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$czeroBits :: MicromapCreateFlagsEXT
zeroBits :: MicromapCreateFlagsEXT
$cbit :: Int -> MicromapCreateFlagsEXT
bit :: Int -> MicromapCreateFlagsEXT
$csetBit :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
setBit :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$cclearBit :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
clearBit :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$ccomplementBit :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
complementBit :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$ctestBit :: MicromapCreateFlagsEXT -> Int -> Bool
testBit :: MicromapCreateFlagsEXT -> Int -> Bool
$cbitSizeMaybe :: MicromapCreateFlagsEXT -> Maybe Int
bitSizeMaybe :: MicromapCreateFlagsEXT -> Maybe Int
$cbitSize :: MicromapCreateFlagsEXT -> Int
bitSize :: MicromapCreateFlagsEXT -> Int
$cisSigned :: MicromapCreateFlagsEXT -> Bool
isSigned :: MicromapCreateFlagsEXT -> Bool
$cshiftL :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
shiftL :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$cunsafeShiftL :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
unsafeShiftL :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$cshiftR :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
shiftR :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$cunsafeShiftR :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
unsafeShiftR :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$crotateL :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
rotateL :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$crotateR :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
rotateR :: MicromapCreateFlagsEXT -> Int -> MicromapCreateFlagsEXT
$cpopCount :: MicromapCreateFlagsEXT -> Int
popCount :: MicromapCreateFlagsEXT -> Int
Bits, Bits MicromapCreateFlagsEXT
Bits MicromapCreateFlagsEXT =>
(MicromapCreateFlagsEXT -> Int)
-> (MicromapCreateFlagsEXT -> Int)
-> (MicromapCreateFlagsEXT -> Int)
-> FiniteBits MicromapCreateFlagsEXT
MicromapCreateFlagsEXT -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: MicromapCreateFlagsEXT -> Int
finiteBitSize :: MicromapCreateFlagsEXT -> Int
$ccountLeadingZeros :: MicromapCreateFlagsEXT -> Int
countLeadingZeros :: MicromapCreateFlagsEXT -> Int
$ccountTrailingZeros :: MicromapCreateFlagsEXT -> Int
countTrailingZeros :: MicromapCreateFlagsEXT -> Int
FiniteBits)
pattern $bMICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT :: MicromapCreateFlagsEXT
$mMICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT :: forall {r}.
MicromapCreateFlagsEXT -> ((# #) -> r) -> ((# #) -> 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 :: [(MicromapCreateFlagsEXT, String)]
showTableMicromapCreateFlagBitsEXT =
[
( MicromapCreateFlagsEXT
MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
, String
""
)
]
instance Show MicromapCreateFlagBitsEXT where
showsPrec :: Int -> MicromapCreateFlagsEXT -> ShowS
showsPrec =
String
-> [(MicromapCreateFlagsEXT, String)]
-> String
-> (MicromapCreateFlagsEXT -> Flags)
-> (Flags -> ShowS)
-> Int
-> MicromapCreateFlagsEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixMicromapCreateFlagBitsEXT
[(MicromapCreateFlagsEXT, 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 => a -> ShowS
showHex Flags
x)
instance Read MicromapCreateFlagBitsEXT where
readPrec :: ReadPrec MicromapCreateFlagsEXT
readPrec =
String
-> [(MicromapCreateFlagsEXT, String)]
-> String
-> (Flags -> MicromapCreateFlagsEXT)
-> ReadPrec MicromapCreateFlagsEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixMicromapCreateFlagBitsEXT
[(MicromapCreateFlagsEXT, String)]
showTableMicromapCreateFlagBitsEXT
String
conNameMicromapCreateFlagBitsEXT
Flags -> MicromapCreateFlagsEXT
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
$c== :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
== :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c/= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
/= :: 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
$ccompare :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Ordering
compare :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Ordering
$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
>= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$cmax :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
max :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
$cmin :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
min :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
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
$csizeOf :: CopyMicromapModeEXT -> Int
sizeOf :: CopyMicromapModeEXT -> Int
$calignment :: CopyMicromapModeEXT -> Int
alignment :: CopyMicromapModeEXT -> Int
$cpeekElemOff :: Ptr CopyMicromapModeEXT -> Int -> IO CopyMicromapModeEXT
peekElemOff :: Ptr CopyMicromapModeEXT -> Int -> IO CopyMicromapModeEXT
$cpokeElemOff :: Ptr CopyMicromapModeEXT -> Int -> CopyMicromapModeEXT -> IO ()
pokeElemOff :: Ptr CopyMicromapModeEXT -> Int -> CopyMicromapModeEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CopyMicromapModeEXT
peekByteOff :: forall b. Ptr b -> Int -> IO CopyMicromapModeEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> CopyMicromapModeEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> CopyMicromapModeEXT -> IO ()
$cpeek :: Ptr CopyMicromapModeEXT -> IO CopyMicromapModeEXT
peek :: Ptr CopyMicromapModeEXT -> IO CopyMicromapModeEXT
$cpoke :: Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
poke :: Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
Storable, CopyMicromapModeEXT
CopyMicromapModeEXT -> Zero CopyMicromapModeEXT
forall a. a -> Zero a
$czero :: CopyMicromapModeEXT
zero :: CopyMicromapModeEXT
Zero)
pattern $bCOPY_MICROMAP_MODE_CLONE_EXT :: CopyMicromapModeEXT
$mCOPY_MICROMAP_MODE_CLONE_EXT :: forall {r}.
CopyMicromapModeEXT -> ((# #) -> r) -> ((# #) -> r) -> r
COPY_MICROMAP_MODE_CLONE_EXT = CopyMicromapModeEXT 0
pattern $bCOPY_MICROMAP_MODE_SERIALIZE_EXT :: CopyMicromapModeEXT
$mCOPY_MICROMAP_MODE_SERIALIZE_EXT :: forall {r}.
CopyMicromapModeEXT -> ((# #) -> r) -> ((# #) -> r) -> r
COPY_MICROMAP_MODE_SERIALIZE_EXT = CopyMicromapModeEXT 1
pattern $bCOPY_MICROMAP_MODE_DESERIALIZE_EXT :: CopyMicromapModeEXT
$mCOPY_MICROMAP_MODE_DESERIALIZE_EXT :: forall {r}.
CopyMicromapModeEXT -> ((# #) -> r) -> ((# #) -> r) -> r
COPY_MICROMAP_MODE_DESERIALIZE_EXT = CopyMicromapModeEXT 2
pattern $bCOPY_MICROMAP_MODE_COMPACT_EXT :: CopyMicromapModeEXT
$mCOPY_MICROMAP_MODE_COMPACT_EXT :: forall {r}.
CopyMicromapModeEXT -> ((# #) -> r) -> ((# #) -> 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
$c== :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
== :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c/= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
/= :: 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
$ccompare :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Ordering
compare :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Ordering
$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
>= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$cmax :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
max :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
$cmin :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
min :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
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
$csizeOf :: BuildMicromapModeEXT -> Int
sizeOf :: BuildMicromapModeEXT -> Int
$calignment :: BuildMicromapModeEXT -> Int
alignment :: BuildMicromapModeEXT -> Int
$cpeekElemOff :: Ptr BuildMicromapModeEXT -> Int -> IO BuildMicromapModeEXT
peekElemOff :: Ptr BuildMicromapModeEXT -> Int -> IO BuildMicromapModeEXT
$cpokeElemOff :: Ptr BuildMicromapModeEXT -> Int -> BuildMicromapModeEXT -> IO ()
pokeElemOff :: Ptr BuildMicromapModeEXT -> Int -> BuildMicromapModeEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapModeEXT
peekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapModeEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapModeEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapModeEXT -> IO ()
$cpeek :: Ptr BuildMicromapModeEXT -> IO BuildMicromapModeEXT
peek :: Ptr BuildMicromapModeEXT -> IO BuildMicromapModeEXT
$cpoke :: Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
poke :: Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
Storable, BuildMicromapModeEXT
BuildMicromapModeEXT -> Zero BuildMicromapModeEXT
forall a. a -> Zero a
$czero :: BuildMicromapModeEXT
zero :: BuildMicromapModeEXT
Zero)
pattern $bBUILD_MICROMAP_MODE_BUILD_EXT :: BuildMicromapModeEXT
$mBUILD_MICROMAP_MODE_BUILD_EXT :: forall {r}.
BuildMicromapModeEXT -> ((# #) -> r) -> ((# #) -> 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
$c== :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
== :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c/= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
/= :: 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
$ccompare :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Ordering
compare :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Ordering
$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
>= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$cmax :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
max :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
$cmin :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
min :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
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
$csizeOf :: OpacityMicromapFormatEXT -> Int
sizeOf :: OpacityMicromapFormatEXT -> Int
$calignment :: OpacityMicromapFormatEXT -> Int
alignment :: OpacityMicromapFormatEXT -> Int
$cpeekElemOff :: Ptr OpacityMicromapFormatEXT -> Int -> IO OpacityMicromapFormatEXT
peekElemOff :: Ptr OpacityMicromapFormatEXT -> Int -> IO OpacityMicromapFormatEXT
$cpokeElemOff :: Ptr OpacityMicromapFormatEXT
-> Int -> OpacityMicromapFormatEXT -> IO ()
pokeElemOff :: Ptr OpacityMicromapFormatEXT
-> Int -> OpacityMicromapFormatEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapFormatEXT
peekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapFormatEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapFormatEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapFormatEXT -> IO ()
$cpeek :: Ptr OpacityMicromapFormatEXT -> IO OpacityMicromapFormatEXT
peek :: Ptr OpacityMicromapFormatEXT -> IO OpacityMicromapFormatEXT
$cpoke :: Ptr OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> IO ()
poke :: Ptr OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> IO ()
Storable, OpacityMicromapFormatEXT
OpacityMicromapFormatEXT -> Zero OpacityMicromapFormatEXT
forall a. a -> Zero a
$czero :: OpacityMicromapFormatEXT
zero :: OpacityMicromapFormatEXT
Zero)
pattern $bOPACITY_MICROMAP_FORMAT_2_STATE_EXT :: OpacityMicromapFormatEXT
$mOPACITY_MICROMAP_FORMAT_2_STATE_EXT :: forall {r}.
OpacityMicromapFormatEXT -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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
$c== :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
== :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c/= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
/= :: 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
$ccompare :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Ordering
compare :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Ordering
$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
>= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$cmax :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
max :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
$cmin :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
min :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
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
$csizeOf :: OpacityMicromapSpecialIndexEXT -> Int
sizeOf :: OpacityMicromapSpecialIndexEXT -> Int
$calignment :: OpacityMicromapSpecialIndexEXT -> Int
alignment :: OpacityMicromapSpecialIndexEXT -> Int
$cpeekElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> IO OpacityMicromapSpecialIndexEXT
peekElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> IO OpacityMicromapSpecialIndexEXT
$cpokeElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
pokeElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapSpecialIndexEXT
peekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapSpecialIndexEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
$cpeek :: Ptr OpacityMicromapSpecialIndexEXT
-> IO OpacityMicromapSpecialIndexEXT
peek :: Ptr OpacityMicromapSpecialIndexEXT
-> IO OpacityMicromapSpecialIndexEXT
$cpoke :: Ptr OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> IO ()
poke :: Ptr OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> IO ()
Storable, OpacityMicromapSpecialIndexEXT
OpacityMicromapSpecialIndexEXT
-> Zero OpacityMicromapSpecialIndexEXT
forall a. a -> Zero a
$czero :: OpacityMicromapSpecialIndexEXT
zero :: OpacityMicromapSpecialIndexEXT
Zero)
pattern $bOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT :: OpacityMicromapSpecialIndexEXT
$mOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT :: forall {r}.
OpacityMicromapSpecialIndexEXT -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap"