{-# 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkCreateMicromapEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
vkCreateMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
pVkCreateMicromapEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
vkCreateMicromapEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCreateMicromapEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkCreateMicromapEXT' :: Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result
vkCreateMicromapEXT' = FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
-> Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result
mkVkCreateMicromapEXT FunPtr
(Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result)
vkCreateMicromapEXTPtr
Ptr MicromapCreateInfoEXT
pCreateInfo <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (MicromapCreateInfoEXT
createInfo)
"pAllocator" ::: Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
"pMicromap" ::: Ptr MicromapEXT
pPMicromap <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ 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) forall a. Ptr a -> IO ()
free
Result
r <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCreateMicromapEXT" (Ptr Device_T
-> Ptr MicromapCreateInfoEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> ("pMicromap" ::: Ptr MicromapEXT)
-> IO Result
vkCreateMicromapEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
Ptr MicromapCreateInfoEXT
pCreateInfo
"pAllocator" ::: Ptr AllocationCallbacks
pAllocator
("pMicromap" ::: Ptr MicromapEXT
pPMicromap))
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
MicromapEXT
pMicromap <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @MicromapEXT "pMicromap" ::: Ptr MicromapEXT
pPMicromap
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 (forall (io :: * -> *).
MonadIO io =>
Device
-> MicromapCreateInfoEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io MicromapEXT
createMicromapEXT Device
device MicromapCreateInfoEXT
pCreateInfo "allocator" ::: Maybe AllocationCallbacks
pAllocator)
(\(MicromapEXT
o0) -> 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkCmdBuildMicromapsEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
vkCmdBuildMicromapsEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
pVkCmdBuildMicromapsEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
vkCmdBuildMicromapsEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdBuildMicromapsEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkCmdBuildMicromapsEXT' :: Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ()
vkCmdBuildMicromapsEXT' = FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
-> Ptr CommandBuffer_T
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO ()
mkVkCmdBuildMicromapsEXT FunPtr
(Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())
vkCmdBuildMicromapsEXTPtr
"pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapBuildInfoEXT ((forall a. Vector a -> Int
Data.Vector.length ("infos" ::: Vector MicromapBuildInfoEXT
infos)) forall a. Num a => a -> a -> a
* Int
96)
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapBuildInfoEXT
e -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ("pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
96 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapBuildInfoEXT) (MicromapBuildInfoEXT
e) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())) ("infos" ::: Vector MicromapBuildInfoEXT
infos)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdBuildMicromapsEXT" (Ptr CommandBuffer_T
-> Flags -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ()
vkCmdBuildMicromapsEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
((forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Vector a -> Int
Data.Vector.length forall a b. (a -> b) -> a -> b
$ ("infos" ::: Vector MicromapBuildInfoEXT
infos)) :: Word32))
("pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkBuildMicromapsEXTPtr :: FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
vkBuildMicromapsEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
pVkBuildMicromapsEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
vkBuildMicromapsEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkBuildMicromapsEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkBuildMicromapsEXT' :: Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result
vkBuildMicromapsEXT' = FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
-> Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result
mkVkBuildMicromapsEXT FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result)
vkBuildMicromapsEXTPtr
"pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapBuildInfoEXT ((forall a. Vector a -> Int
Data.Vector.length ("infos" ::: Vector MicromapBuildInfoEXT
infos)) forall a. Num a => a -> a -> a
* Int
96)
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapBuildInfoEXT
e -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ("pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
96 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapBuildInfoEXT) (MicromapBuildInfoEXT
e) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())) ("infos" ::: Vector MicromapBuildInfoEXT
infos)
Result
r <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkBuildMicromapsEXT" (Ptr Device_T
-> DeferredOperationKHR
-> Flags
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> IO Result
vkBuildMicromapsEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(DeferredOperationKHR
deferredOperation)
((forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Vector a -> Int
Data.Vector.length forall a b. (a -> b) -> a -> b
$ ("infos" ::: Vector MicromapBuildInfoEXT
infos)) :: Word32))
("pInfos" ::: Ptr MicromapBuildInfoEXT
pPInfos))
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkDestroyMicromapEXTPtr :: FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
vkDestroyMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
pVkDestroyMicromapEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
vkDestroyMicromapEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkDestroyMicromapEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkDestroyMicromapEXT' :: Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ()
vkDestroyMicromapEXT' = FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
-> Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ()
mkVkDestroyMicromapEXT FunPtr
(Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ())
vkDestroyMicromapEXTPtr
"pAllocator" ::: Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkDestroyMicromapEXT" (Ptr Device_T
-> MicromapEXT
-> ("pAllocator" ::: Ptr AllocationCallbacks)
-> IO ()
vkDestroyMicromapEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(MicromapEXT
micromap)
"pAllocator" ::: Ptr AllocationCallbacks
pAllocator)
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMicromapEXTPtr :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
vkCmdCopyMicromapEXTPtr = DeviceCmds
-> FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
pVkCmdCopyMicromapEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())
vkCmdCopyMicromapEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdCopyMicromapEXT is null" forall a. Maybe a
Nothing 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 <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMicromapInfoEXT
info)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ 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)
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkCopyMicromapEXTPtr :: FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
vkCopyMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
pVkCopyMicromapEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)
vkCopyMicromapEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCopyMicromapEXT is null" forall a. Maybe a
Nothing 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 <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMicromapInfoEXT
info)
Result
r <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ 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)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMicromapToMemoryEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
vkCmdCopyMicromapToMemoryEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
pVkCmdCopyMicromapToMemoryEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
vkCmdCopyMicromapToMemoryEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdCopyMicromapToMemoryEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkCmdCopyMicromapToMemoryEXT' :: Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ()
vkCmdCopyMicromapToMemoryEXT' = FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
-> Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO ()
mkVkCmdCopyMicromapToMemoryEXT FunPtr
(Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())
vkCmdCopyMicromapToMemoryEXTPtr
"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
pInfo <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMicromapToMemoryInfoEXT
info)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdCopyMicromapToMemoryEXT" (Ptr CommandBuffer_T
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ()
vkCmdCopyMicromapToMemoryEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
pInfo)
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkCopyMicromapToMemoryEXTPtr :: FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
vkCopyMicromapToMemoryEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
pVkCopyMicromapToMemoryEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
vkCopyMicromapToMemoryEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCopyMicromapToMemoryEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkCopyMicromapToMemoryEXT' :: Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result
vkCopyMicromapToMemoryEXT' = FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
-> Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result
mkVkCopyMicromapToMemoryEXT FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result)
vkCopyMicromapToMemoryEXTPtr
"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
pInfo <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMicromapToMemoryInfoEXT
info)
Result
r <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCopyMicromapToMemoryEXT" (Ptr Device_T
-> DeferredOperationKHR
-> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> IO Result
vkCopyMicromapToMemoryEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(DeferredOperationKHR
deferredOperation)
"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
pInfo)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMemoryToMicromapEXTPtr :: FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
vkCmdCopyMemoryToMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
pVkCmdCopyMemoryToMicromapEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())
vkCmdCopyMemoryToMicromapEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdCopyMemoryToMicromapEXT is null" forall a. Maybe a
Nothing 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 <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMemoryToMicromapInfoEXT
info)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ 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)
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkCopyMemoryToMicromapEXTPtr :: FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
vkCopyMemoryToMicromapEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
pVkCopyMemoryToMicromapEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> DeferredOperationKHR
-> Ptr CopyMemoryToMicromapInfoEXT
-> IO Result)
vkCopyMemoryToMicromapEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCopyMemoryToMicromapEXT is null" forall a. Maybe a
Nothing 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 <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyMemoryToMicromapInfoEXT
info)
Result
r <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ 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)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkCmdWriteMicromapsPropertiesEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
vkCmdWriteMicromapsPropertiesEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
pVkCmdWriteMicromapsPropertiesEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
vkCmdWriteMicromapsPropertiesEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdWriteMicromapsPropertiesEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkCmdWriteMicromapsPropertiesEXT' :: Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ()
vkCmdWriteMicromapsPropertiesEXT' = FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
-> Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ()
mkVkCmdWriteMicromapsPropertiesEXT FunPtr
(Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ())
vkCmdWriteMicromapsPropertiesEXTPtr
"pMicromap" ::: Ptr MicromapEXT
pPMicromaps <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapEXT ((forall a. Vector a -> Int
Data.Vector.length ("micromaps" ::: Vector MicromapEXT
micromaps)) forall a. Num a => a -> a -> a
* Int
8)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapEXT
e -> forall a. Storable a => Ptr a -> a -> IO ()
poke ("pMicromap" ::: Ptr MicromapEXT
pPMicromaps forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
8 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapEXT) (MicromapEXT
e)) ("micromaps" ::: Vector MicromapEXT
micromaps)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdWriteMicromapsPropertiesEXT" (Ptr CommandBuffer_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> QueryPool
-> Flags
-> IO ()
vkCmdWriteMicromapsPropertiesEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
((forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Vector a -> Int
Data.Vector.length forall a b. (a -> b) -> a -> b
$ ("micromaps" ::: Vector MicromapEXT
micromaps)) :: Word32))
("pMicromap" ::: Ptr MicromapEXT
pPMicromaps)
(QueryType
queryType)
(QueryPool
queryPool)
(Flags
firstQuery))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkWriteMicromapsPropertiesEXTPtr :: FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
vkWriteMicromapsPropertiesEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
pVkWriteMicromapsPropertiesEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
vkWriteMicromapsPropertiesEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkWriteMicromapsPropertiesEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkWriteMicromapsPropertiesEXT' :: Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result
vkWriteMicromapsPropertiesEXT' = FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
-> Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result
mkVkWriteMicromapsPropertiesEXT FunPtr
(Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result)
vkWriteMicromapsPropertiesEXTPtr
"pMicromap" ::: Ptr MicromapEXT
pPMicromaps <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapEXT ((forall a. Vector a -> Int
Data.Vector.length ("micromaps" ::: Vector MicromapEXT
micromaps)) forall a. Num a => a -> a -> a
* Int
8)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapEXT
e -> forall a. Storable a => Ptr a -> a -> IO ()
poke ("pMicromap" ::: Ptr MicromapEXT
pPMicromaps forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
8 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapEXT) (MicromapEXT
e)) ("micromaps" ::: Vector MicromapEXT
micromaps)
Result
r <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkWriteMicromapsPropertiesEXT" (Ptr Device_T
-> Flags
-> ("pMicromap" ::: Ptr MicromapEXT)
-> QueryType
-> ("dataSize" ::: CSize)
-> ("data" ::: Ptr ())
-> ("dataSize" ::: CSize)
-> IO Result
vkWriteMicromapsPropertiesEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
((forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Vector a -> Int
Data.Vector.length forall a b. (a -> b) -> a -> b
$ ("micromaps" ::: Vector MicromapEXT
micromaps)) :: Word32))
("pMicromap" ::: Ptr MicromapEXT
pPMicromaps)
(QueryType
queryType)
(("dataSize" ::: Word64) -> "dataSize" ::: CSize
CSize ("dataSize" ::: Word64
dataSize))
("data" ::: Ptr ()
data')
(("dataSize" ::: Word64) -> "dataSize" ::: CSize
CSize ("dataSize" ::: Word64
stride)))
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetDeviceMicromapCompatibilityEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
vkGetDeviceMicromapCompatibilityEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
pVkGetDeviceMicromapCompatibilityEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
vkGetDeviceMicromapCompatibilityEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetDeviceMicromapCompatibilityEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetDeviceMicromapCompatibilityEXT' :: Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ()
vkGetDeviceMicromapCompatibilityEXT' = FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
-> Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ()
mkVkGetDeviceMicromapCompatibilityEXT FunPtr
(Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ())
vkGetDeviceMicromapCompatibilityEXTPtr
Ptr MicromapVersionInfoEXT
pVersionInfo <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (MicromapVersionInfoEXT
versionInfo)
"pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR
pPCompatibility <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ 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) forall a. Ptr a -> IO ()
free
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetDeviceMicromapCompatibilityEXT" (Ptr Device_T
-> Ptr MicromapVersionInfoEXT
-> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR)
-> IO ()
vkGetDeviceMicromapCompatibilityEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
Ptr MicromapVersionInfoEXT
pVersionInfo
("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR
pPCompatibility))
AccelerationStructureCompatibilityKHR
pCompatibility <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @AccelerationStructureCompatibilityKHR "pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR
pPCompatibility
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ (AccelerationStructureCompatibilityKHR
pCompatibility)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetMicromapBuildSizesEXT
:: FunPtr (Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> Ptr MicromapBuildSizesInfoEXT -> IO ()) -> Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> Ptr MicromapBuildSizesInfoEXT -> IO ()
getMicromapBuildSizesEXT :: forall io
. (MonadIO io)
=>
Device
->
AccelerationStructureBuildTypeKHR
->
MicromapBuildInfoEXT
-> io (("sizeInfo" ::: MicromapBuildSizesInfoEXT))
getMicromapBuildSizesEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> AccelerationStructureBuildTypeKHR
-> MicromapBuildInfoEXT
-> io MicromapBuildSizesInfoEXT
getMicromapBuildSizesEXT Device
device AccelerationStructureBuildTypeKHR
buildType MicromapBuildInfoEXT
buildInfo = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetMicromapBuildSizesEXTPtr :: FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
vkGetMicromapBuildSizesEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
pVkGetMicromapBuildSizesEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
vkGetMicromapBuildSizesEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetMicromapBuildSizesEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetMicromapBuildSizesEXT' :: Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ()
vkGetMicromapBuildSizesEXT' = FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
-> Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ()
mkVkGetMicromapBuildSizesEXT FunPtr
(Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ())
vkGetMicromapBuildSizesEXTPtr
"pInfos" ::: Ptr MicromapBuildInfoEXT
pBuildInfo <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (MicromapBuildInfoEXT
buildInfo)
"pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
pPSizeInfo <- 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)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetMicromapBuildSizesEXT" (Ptr Device_T
-> AccelerationStructureBuildTypeKHR
-> ("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO ()
vkGetMicromapBuildSizesEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(AccelerationStructureBuildTypeKHR
buildType)
"pInfos" ::: Ptr MicromapBuildInfoEXT
pBuildInfo
("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
pPSizeInfo))
MicromapBuildSizesInfoEXT
pSizeInfo <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @MicromapBuildSizesInfoEXT "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
pPSizeInfo
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ (MicromapBuildSizesInfoEXT
pSizeInfo)
data MicromapBuildInfoEXT = MicromapBuildInfoEXT
{
MicromapBuildInfoEXT -> MicromapTypeEXT
type' :: MicromapTypeEXT
,
MicromapBuildInfoEXT -> BuildMicromapFlagBitsEXT
flags :: BuildMicromapFlagsEXT
,
MicromapBuildInfoEXT -> BuildMicromapModeEXT
mode :: BuildMicromapModeEXT
,
MicromapBuildInfoEXT -> MicromapEXT
dstMicromap :: MicromapEXT
,
MicromapBuildInfoEXT -> Vector MicromapUsageEXT
usageCounts :: Vector MicromapUsageEXT
,
MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
data' :: DeviceOrHostAddressConstKHR
,
MicromapBuildInfoEXT -> DeviceOrHostAddressKHR
scratchData :: DeviceOrHostAddressKHR
,
MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
triangleArray :: DeviceOrHostAddressConstKHR
,
MicromapBuildInfoEXT -> "dataSize" ::: Word64
triangleArrayStride :: DeviceSize
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapBuildInfoEXT)
#endif
deriving instance Show MicromapBuildInfoEXT
instance ToCStruct MicromapBuildInfoEXT where
withCStruct :: forall b.
MicromapBuildInfoEXT
-> (("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b) -> IO b
withCStruct MicromapBuildInfoEXT
x ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
96 forall a b. (a -> b) -> a -> b
$ \"pInfos" ::: Ptr MicromapBuildInfoEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pInfos" ::: Ptr MicromapBuildInfoEXT
p MicromapBuildInfoEXT
x (("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b
f "pInfos" ::: Ptr MicromapBuildInfoEXT
p)
pokeCStruct :: forall b.
("pInfos" ::: Ptr MicromapBuildInfoEXT)
-> MicromapBuildInfoEXT -> IO b -> IO b
pokeCStruct "pInfos" ::: Ptr MicromapBuildInfoEXT
p MicromapBuildInfoEXT{"dataSize" ::: Word64
Vector MicromapUsageEXT
MicromapEXT
DeviceOrHostAddressConstKHR
DeviceOrHostAddressKHR
BuildMicromapModeEXT
BuildMicromapFlagBitsEXT
MicromapTypeEXT
triangleArrayStride :: "dataSize" ::: Word64
triangleArray :: DeviceOrHostAddressConstKHR
scratchData :: DeviceOrHostAddressKHR
data' :: DeviceOrHostAddressConstKHR
usageCounts :: Vector MicromapUsageEXT
dstMicromap :: MicromapEXT
mode :: BuildMicromapModeEXT
flags :: BuildMicromapFlagBitsEXT
type' :: MicromapTypeEXT
$sel:triangleArrayStride:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> "dataSize" ::: Word64
$sel:triangleArray:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
$sel:scratchData:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> DeviceOrHostAddressKHR
$sel:data':MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> DeviceOrHostAddressConstKHR
$sel:usageCounts:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> Vector MicromapUsageEXT
$sel:dstMicromap:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> MicromapEXT
$sel:mode:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> BuildMicromapModeEXT
$sel:flags:MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> BuildMicromapFlagBitsEXT
$sel:type':MicromapBuildInfoEXT :: MicromapBuildInfoEXT -> MicromapTypeEXT
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapTypeEXT)) (MicromapTypeEXT
type')
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr BuildMicromapFlagsEXT)) (BuildMicromapFlagBitsEXT
flags)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr BuildMicromapModeEXT)) (BuildMicromapModeEXT
mode)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr MicromapEXT)) (MicromapEXT
dstMicromap)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) ((forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Vector a -> Int
Data.Vector.length forall a b. (a -> b) -> a -> b
$ (Vector MicromapUsageEXT
usageCounts)) :: Word32))
Ptr MicromapUsageEXT
pPUsageCounts' <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapUsageEXT ((forall a. Vector a -> Int
Data.Vector.length (Vector MicromapUsageEXT
usageCounts)) forall a. Num a => a -> a -> a
* Int
12)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapUsageEXT
e -> forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr MicromapUsageEXT
pPUsageCounts' forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
12 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapUsageEXT) (MicromapUsageEXT
e)) (Vector MicromapUsageEXT
usageCounts)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr MicromapUsageEXT))) (Ptr MicromapUsageEXT
pPUsageCounts')
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (forall a. Ptr a
nullPtr)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
data') forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr DeviceOrHostAddressKHR)) (DeviceOrHostAddressKHR
scratchData) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
triangleArray) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr DeviceSize)) ("dataSize" ::: Word64
triangleArrayStride)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
96
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO b -> IO b
pokeZeroCStruct "pInfos" ::: Ptr MicromapBuildInfoEXT
p IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapTypeEXT)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr BuildMicromapModeEXT)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (forall a. Ptr a
nullPtr)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr DeviceOrHostAddressConstKHR)) (forall a. Zero a => a
zero) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr DeviceOrHostAddressKHR)) (forall a. Zero a => a
zero) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr DeviceOrHostAddressConstKHR)) (forall a. Zero a => a
zero) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfos" ::: Ptr MicromapBuildInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr DeviceSize)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance Zero MicromapBuildInfoEXT where
zero :: MicromapBuildInfoEXT
zero = MicromapTypeEXT
-> BuildMicromapFlagBitsEXT
-> BuildMicromapModeEXT
-> MicromapEXT
-> Vector MicromapUsageEXT
-> DeviceOrHostAddressConstKHR
-> DeviceOrHostAddressKHR
-> DeviceOrHostAddressConstKHR
-> ("dataSize" ::: Word64)
-> MicromapBuildInfoEXT
MicromapBuildInfoEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Monoid a => a
mempty
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data MicromapCreateInfoEXT = MicromapCreateInfoEXT
{
MicromapCreateInfoEXT -> MicromapCreateFlagBitsEXT
createFlags :: MicromapCreateFlagsEXT
,
MicromapCreateInfoEXT -> Buffer
buffer :: Buffer
,
MicromapCreateInfoEXT -> "dataSize" ::: Word64
offset :: DeviceSize
,
MicromapCreateInfoEXT -> "dataSize" ::: Word64
size :: DeviceSize
,
MicromapCreateInfoEXT -> MicromapTypeEXT
type' :: MicromapTypeEXT
,
MicromapCreateInfoEXT -> "dataSize" ::: Word64
deviceAddress :: DeviceAddress
}
deriving (Typeable, MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
$c/= :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
== :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
$c== :: MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapCreateInfoEXT)
#endif
deriving instance Show MicromapCreateInfoEXT
instance ToCStruct MicromapCreateInfoEXT where
withCStruct :: forall b.
MicromapCreateInfoEXT
-> (Ptr MicromapCreateInfoEXT -> IO b) -> IO b
withCStruct MicromapCreateInfoEXT
x Ptr MicromapCreateInfoEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
64 forall a b. (a -> b) -> a -> b
$ \Ptr MicromapCreateInfoEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapCreateInfoEXT
p MicromapCreateInfoEXT
x (Ptr MicromapCreateInfoEXT -> IO b
f Ptr MicromapCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr MicromapCreateInfoEXT
p MicromapCreateInfoEXT{"dataSize" ::: Word64
Buffer
MicromapCreateFlagBitsEXT
MicromapTypeEXT
deviceAddress :: "dataSize" ::: Word64
type' :: MicromapTypeEXT
size :: "dataSize" ::: Word64
offset :: "dataSize" ::: Word64
buffer :: Buffer
createFlags :: MicromapCreateFlagBitsEXT
$sel:deviceAddress:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> "dataSize" ::: Word64
$sel:type':MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> MicromapTypeEXT
$sel:size:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> "dataSize" ::: Word64
$sel:offset:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> "dataSize" ::: Word64
$sel:buffer:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> Buffer
$sel:createFlags:MicromapCreateInfoEXT :: MicromapCreateInfoEXT -> MicromapCreateFlagBitsEXT
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapCreateFlagsEXT)) (MicromapCreateFlagBitsEXT
createFlags)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Buffer)) (Buffer
buffer)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) ("dataSize" ::: Word64
offset)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr DeviceSize)) ("dataSize" ::: Word64
size)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr MicromapTypeEXT)) (MicromapTypeEXT
type')
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p 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
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Buffer)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr DeviceSize)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr MicromapTypeEXT)) (forall a. Zero a => a
zero)
IO b
f
instance FromCStruct MicromapCreateInfoEXT where
peekCStruct :: Ptr MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT
peekCStruct Ptr MicromapCreateInfoEXT
p = do
MicromapCreateFlagBitsEXT
createFlags <- forall a. Storable a => Ptr a -> IO a
peek @MicromapCreateFlagsEXT ((Ptr MicromapCreateInfoEXT
p 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 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 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 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 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 forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr DeviceAddress))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ MicromapCreateFlagBitsEXT
-> Buffer
-> ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64)
-> MicromapTypeEXT
-> ("dataSize" ::: Word64)
-> MicromapCreateInfoEXT
MicromapCreateInfoEXT
MicromapCreateFlagBitsEXT
createFlags Buffer
buffer "dataSize" ::: Word64
offset "dataSize" ::: Word64
size MicromapTypeEXT
type' "dataSize" ::: Word64
deviceAddress
instance Storable MicromapCreateInfoEXT where
sizeOf :: MicromapCreateInfoEXT -> Int
sizeOf ~MicromapCreateInfoEXT
_ = Int
64
alignment :: MicromapCreateInfoEXT -> Int
alignment ~MicromapCreateInfoEXT
_ = Int
8
peek :: Ptr MicromapCreateInfoEXT -> IO MicromapCreateInfoEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr MicromapCreateInfoEXT -> MicromapCreateInfoEXT -> IO ()
poke Ptr MicromapCreateInfoEXT
ptr MicromapCreateInfoEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapCreateInfoEXT
ptr MicromapCreateInfoEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapCreateInfoEXT where
zero :: MicromapCreateInfoEXT
zero = MicromapCreateFlagBitsEXT
-> Buffer
-> ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64)
-> MicromapTypeEXT
-> ("dataSize" ::: Word64)
-> MicromapCreateInfoEXT
MicromapCreateInfoEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
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 = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr MicromapVersionInfoEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapVersionInfoEXT
p MicromapVersionInfoEXT
x (Ptr MicromapVersionInfoEXT -> IO b
f Ptr MicromapVersionInfoEXT
p)
pokeCStruct :: forall b.
Ptr MicromapVersionInfoEXT
-> MicromapVersionInfoEXT -> IO b -> IO b
pokeCStruct Ptr MicromapVersionInfoEXT
p MicromapVersionInfoEXT{ByteString
versionData :: ByteString
$sel:versionData:MicromapVersionInfoEXT :: MicromapVersionInfoEXT -> ByteString
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapVersionInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapVersionInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (ByteString -> Int
Data.ByteString.length (ByteString
versionData) forall a. Eq a => a -> a -> Bool
== Int
2 forall a. Num a => a -> a -> a
* forall a. Integral a => a
UUID_SIZE) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"VkMicromapVersionInfoEXT::versionData must be 2*VK_UUID_SIZE bytes" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
Ptr Word8
versionData' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a b. Ptr a -> Ptr b
castPtr @CChar @Word8) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a. ByteString -> (Ptr CChar -> IO a) -> IO a
unsafeUseAsCString (ByteString
versionData)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapVersionInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr Word8))) Ptr Word8
versionData'
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift 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
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapVersionInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapVersionInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (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 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 forall a. Num a => a -> a -> a
* forall a. Integral a => a
UUID_SIZE )
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ ByteString -> MicromapVersionInfoEXT
MicromapVersionInfoEXT
ByteString
versionData'
instance Zero MicromapVersionInfoEXT where
zero :: MicromapVersionInfoEXT
zero = ByteString -> MicromapVersionInfoEXT
MicromapVersionInfoEXT
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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
$c/= :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
== :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
$c== :: CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyMicromapInfoEXT)
#endif
deriving instance Show CopyMicromapInfoEXT
instance ToCStruct CopyMicromapInfoEXT where
withCStruct :: forall b.
CopyMicromapInfoEXT -> (Ptr CopyMicromapInfoEXT -> IO b) -> IO b
withCStruct CopyMicromapInfoEXT
x Ptr CopyMicromapInfoEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 forall a b. (a -> b) -> a -> b
$ \Ptr CopyMicromapInfoEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMicromapInfoEXT
p CopyMicromapInfoEXT
x (Ptr CopyMicromapInfoEXT -> IO b
f Ptr CopyMicromapInfoEXT
p)
pokeCStruct :: forall b.
Ptr CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> IO b -> IO b
pokeCStruct Ptr CopyMicromapInfoEXT
p CopyMicromapInfoEXT{MicromapEXT
CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
dst :: MicromapEXT
src :: MicromapEXT
$sel:mode:CopyMicromapInfoEXT :: CopyMicromapInfoEXT -> CopyMicromapModeEXT
$sel:dst:CopyMicromapInfoEXT :: CopyMicromapInfoEXT -> MicromapEXT
$sel:src:CopyMicromapInfoEXT :: CopyMicromapInfoEXT -> MicromapEXT
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (MicromapEXT
src)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT)) (MicromapEXT
dst)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p 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
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr 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 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 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 forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr CopyMicromapInfoEXT -> CopyMicromapInfoEXT -> IO ()
poke Ptr CopyMicromapInfoEXT
ptr CopyMicromapInfoEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMicromapInfoEXT
ptr CopyMicromapInfoEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero CopyMicromapInfoEXT where
zero :: CopyMicromapInfoEXT
zero = MicromapEXT
-> MicromapEXT -> CopyMicromapModeEXT -> CopyMicromapInfoEXT
CopyMicromapInfoEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data CopyMicromapToMemoryInfoEXT = CopyMicromapToMemoryInfoEXT
{
CopyMicromapToMemoryInfoEXT -> MicromapEXT
src :: MicromapEXT
,
CopyMicromapToMemoryInfoEXT -> DeviceOrHostAddressKHR
dst :: DeviceOrHostAddressKHR
,
CopyMicromapToMemoryInfoEXT -> CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyMicromapToMemoryInfoEXT)
#endif
deriving instance Show CopyMicromapToMemoryInfoEXT
instance ToCStruct CopyMicromapToMemoryInfoEXT where
withCStruct :: forall b.
CopyMicromapToMemoryInfoEXT
-> (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b) -> IO b
withCStruct CopyMicromapToMemoryInfoEXT
x ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 forall a b. (a -> b) -> a -> b
$ \"pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p CopyMicromapToMemoryInfoEXT
x (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b
f "pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p)
pokeCStruct :: forall b.
("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT)
-> CopyMicromapToMemoryInfoEXT -> IO b -> IO b
pokeCStruct "pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p CopyMicromapToMemoryInfoEXT{MicromapEXT
DeviceOrHostAddressKHR
CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
dst :: DeviceOrHostAddressKHR
src :: MicromapEXT
$sel:mode:CopyMicromapToMemoryInfoEXT :: CopyMicromapToMemoryInfoEXT -> CopyMicromapModeEXT
$sel:dst:CopyMicromapToMemoryInfoEXT :: CopyMicromapToMemoryInfoEXT -> DeviceOrHostAddressKHR
$sel:src:CopyMicromapToMemoryInfoEXT :: CopyMicromapToMemoryInfoEXT -> MicromapEXT
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (MicromapEXT
src)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceOrHostAddressKHR)) (DeviceOrHostAddressKHR
dst) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (CopyMicromapModeEXT
mode)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO b -> IO b
pokeZeroCStruct "pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MicromapEXT)) (forall a. Zero a => a
zero)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceOrHostAddressKHR)) (forall a. Zero a => a
zero) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke (("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance Zero CopyMicromapToMemoryInfoEXT where
zero :: CopyMicromapToMemoryInfoEXT
zero = MicromapEXT
-> DeviceOrHostAddressKHR
-> CopyMicromapModeEXT
-> CopyMicromapToMemoryInfoEXT
CopyMicromapToMemoryInfoEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
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 = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 forall a b. (a -> b) -> a -> b
$ \Ptr CopyMemoryToMicromapInfoEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMemoryToMicromapInfoEXT
p CopyMemoryToMicromapInfoEXT
x (Ptr CopyMemoryToMicromapInfoEXT -> IO b
f Ptr CopyMemoryToMicromapInfoEXT
p)
pokeCStruct :: forall b.
Ptr CopyMemoryToMicromapInfoEXT
-> CopyMemoryToMicromapInfoEXT -> IO b -> IO b
pokeCStruct Ptr CopyMemoryToMicromapInfoEXT
p CopyMemoryToMicromapInfoEXT{MicromapEXT
DeviceOrHostAddressConstKHR
CopyMicromapModeEXT
mode :: CopyMicromapModeEXT
dst :: MicromapEXT
src :: DeviceOrHostAddressConstKHR
$sel:mode:CopyMemoryToMicromapInfoEXT :: CopyMemoryToMicromapInfoEXT -> CopyMicromapModeEXT
$sel:dst:CopyMemoryToMicromapInfoEXT :: CopyMemoryToMicromapInfoEXT -> MicromapEXT
$sel:src:CopyMemoryToMicromapInfoEXT :: CopyMemoryToMicromapInfoEXT -> DeviceOrHostAddressConstKHR
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
src) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT)) (MicromapEXT
dst)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (CopyMicromapModeEXT
mode)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift 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 = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceOrHostAddressConstKHR)) (forall a. Zero a => a
zero) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr MicromapEXT)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToMicromapInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr CopyMicromapModeEXT)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance Zero CopyMemoryToMicromapInfoEXT where
zero :: CopyMemoryToMicromapInfoEXT
zero = DeviceOrHostAddressConstKHR
-> MicromapEXT
-> CopyMicromapModeEXT
-> CopyMemoryToMicromapInfoEXT
CopyMemoryToMicromapInfoEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data MicromapBuildSizesInfoEXT = MicromapBuildSizesInfoEXT
{
MicromapBuildSizesInfoEXT -> "dataSize" ::: Word64
micromapSize :: DeviceSize
,
MicromapBuildSizesInfoEXT -> "dataSize" ::: Word64
buildScratchSize :: DeviceSize
,
MicromapBuildSizesInfoEXT -> Bool
discardable :: Bool
}
deriving (Typeable, MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
$c/= :: MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
== :: MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
$c== :: MicromapBuildSizesInfoEXT -> MicromapBuildSizesInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapBuildSizesInfoEXT)
#endif
deriving instance Show MicromapBuildSizesInfoEXT
instance ToCStruct MicromapBuildSizesInfoEXT where
withCStruct :: forall b.
MicromapBuildSizesInfoEXT
-> (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b)
-> IO b
withCStruct MicromapBuildSizesInfoEXT
x ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 forall a b. (a -> b) -> a -> b
$ \"pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p MicromapBuildSizesInfoEXT
x (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b
f "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p)
pokeCStruct :: forall b.
("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> MicromapBuildSizesInfoEXT -> IO b -> IO b
pokeCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p MicromapBuildSizesInfoEXT{Bool
"dataSize" ::: Word64
discardable :: Bool
buildScratchSize :: "dataSize" ::: Word64
micromapSize :: "dataSize" ::: Word64
$sel:discardable:MicromapBuildSizesInfoEXT :: MicromapBuildSizesInfoEXT -> Bool
$sel:buildScratchSize:MicromapBuildSizesInfoEXT :: MicromapBuildSizesInfoEXT -> "dataSize" ::: Word64
$sel:micromapSize:MicromapBuildSizesInfoEXT :: MicromapBuildSizesInfoEXT -> "dataSize" ::: Word64
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) ("dataSize" ::: Word64
micromapSize)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) ("dataSize" ::: Word64
buildScratchSize)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
discardable))
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO b -> IO b
pokeZeroCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
IO b
f
instance FromCStruct MicromapBuildSizesInfoEXT where
peekCStruct :: ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT
peekCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p = do
"dataSize" ::: Word64
micromapSize <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize))
"dataSize" ::: Word64
buildScratchSize <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize))
Bool32
discardable <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 (("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64) -> Bool -> MicromapBuildSizesInfoEXT
MicromapBuildSizesInfoEXT
"dataSize" ::: Word64
micromapSize "dataSize" ::: Word64
buildScratchSize (Bool32 -> Bool
bool32ToBool Bool32
discardable)
instance Storable MicromapBuildSizesInfoEXT where
sizeOf :: MicromapBuildSizesInfoEXT -> Int
sizeOf ~MicromapBuildSizesInfoEXT
_ = Int
40
alignment :: MicromapBuildSizesInfoEXT -> Int
alignment ~MicromapBuildSizesInfoEXT
_ = Int
8
peek :: ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> IO MicromapBuildSizesInfoEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT)
-> MicromapBuildSizesInfoEXT -> IO ()
poke "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
ptr MicromapBuildSizesInfoEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT
ptr MicromapBuildSizesInfoEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapBuildSizesInfoEXT where
zero :: MicromapBuildSizesInfoEXT
zero = ("dataSize" ::: Word64)
-> ("dataSize" ::: Word64) -> Bool -> MicromapBuildSizesInfoEXT
MicromapBuildSizesInfoEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
$c/= :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
== :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
$c== :: MicromapUsageEXT -> MicromapUsageEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapUsageEXT)
#endif
deriving instance Show MicromapUsageEXT
instance ToCStruct MicromapUsageEXT where
withCStruct :: forall b.
MicromapUsageEXT -> (Ptr MicromapUsageEXT -> IO b) -> IO b
withCStruct MicromapUsageEXT
x Ptr MicromapUsageEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
12 forall a b. (a -> b) -> a -> b
$ \Ptr MicromapUsageEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapUsageEXT
p MicromapUsageEXT
x (Ptr MicromapUsageEXT -> IO b
f Ptr MicromapUsageEXT
p)
pokeCStruct :: forall b. Ptr MicromapUsageEXT -> MicromapUsageEXT -> IO b -> IO b
pokeCStruct Ptr MicromapUsageEXT
p MicromapUsageEXT{Flags
format :: Flags
subdivisionLevel :: Flags
count :: Flags
$sel:format:MicromapUsageEXT :: MicromapUsageEXT -> Flags
$sel:subdivisionLevel:MicromapUsageEXT :: MicromapUsageEXT -> Flags
$sel:count:MicromapUsageEXT :: MicromapUsageEXT -> Flags
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Flags
count)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (Flags
subdivisionLevel)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p 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
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapUsageEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (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 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 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 forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr MicromapUsageEXT -> MicromapUsageEXT -> IO ()
poke Ptr MicromapUsageEXT
ptr MicromapUsageEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapUsageEXT
ptr MicromapUsageEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapUsageEXT where
zero :: MicromapUsageEXT
zero = Flags -> Flags -> Flags -> MicromapUsageEXT
MicromapUsageEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
$c/= :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
== :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
$c== :: MicromapTriangleEXT -> MicromapTriangleEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (MicromapTriangleEXT)
#endif
deriving instance Show MicromapTriangleEXT
instance ToCStruct MicromapTriangleEXT where
withCStruct :: forall b.
MicromapTriangleEXT -> (Ptr MicromapTriangleEXT -> IO b) -> IO b
withCStruct MicromapTriangleEXT
x Ptr MicromapTriangleEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
8 forall a b. (a -> b) -> a -> b
$ \Ptr MicromapTriangleEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapTriangleEXT
p MicromapTriangleEXT
x (Ptr MicromapTriangleEXT -> IO b
f Ptr MicromapTriangleEXT
p)
pokeCStruct :: forall b.
Ptr MicromapTriangleEXT -> MicromapTriangleEXT -> IO b -> IO b
pokeCStruct Ptr MicromapTriangleEXT
p MicromapTriangleEXT{Word16
Flags
format :: Word16
subdivisionLevel :: Word16
dataOffset :: Flags
$sel:format:MicromapTriangleEXT :: MicromapTriangleEXT -> Word16
$sel:subdivisionLevel:MicromapTriangleEXT :: MicromapTriangleEXT -> Word16
$sel:dataOffset:MicromapTriangleEXT :: MicromapTriangleEXT -> Flags
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Flags
dataOffset)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word16)) (Word16
subdivisionLevel)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p 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
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word16)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr MicromapTriangleEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
6 :: Ptr 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 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 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 forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
6 :: Ptr Word16))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr MicromapTriangleEXT -> MicromapTriangleEXT -> IO ()
poke Ptr MicromapTriangleEXT
ptr MicromapTriangleEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr MicromapTriangleEXT
ptr MicromapTriangleEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero MicromapTriangleEXT where
zero :: MicromapTriangleEXT
zero = Flags -> Word16 -> Word16 -> MicromapTriangleEXT
MicromapTriangleEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$c/= :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
== :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$c== :: PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceOpacityMicromapFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceOpacityMicromapFeaturesEXT
instance ToCStruct PhysicalDeviceOpacityMicromapFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceOpacityMicromapFeaturesEXT
-> (Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceOpacityMicromapFeaturesEXT
x Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p PhysicalDeviceOpacityMicromapFeaturesEXT
x (Ptr PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b
f Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p PhysicalDeviceOpacityMicromapFeaturesEXT{Bool
micromapHostCommands :: Bool
micromapCaptureReplay :: Bool
micromap :: Bool
$sel:micromapHostCommands:PhysicalDeviceOpacityMicromapFeaturesEXT :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$sel:micromapCaptureReplay:PhysicalDeviceOpacityMicromapFeaturesEXT :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
$sel:micromap:PhysicalDeviceOpacityMicromapFeaturesEXT :: PhysicalDeviceOpacityMicromapFeaturesEXT -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
micromap))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
micromapCaptureReplay))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p 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
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (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 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 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 forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
-> PhysicalDeviceOpacityMicromapFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
ptr PhysicalDeviceOpacityMicromapFeaturesEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapFeaturesEXT
ptr PhysicalDeviceOpacityMicromapFeaturesEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceOpacityMicromapFeaturesEXT where
zero :: PhysicalDeviceOpacityMicromapFeaturesEXT
zero = Bool -> Bool -> Bool -> PhysicalDeviceOpacityMicromapFeaturesEXT
PhysicalDeviceOpacityMicromapFeaturesEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data PhysicalDeviceOpacityMicromapPropertiesEXT = PhysicalDeviceOpacityMicromapPropertiesEXT
{
PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
maxOpacity2StateSubdivisionLevel :: Word32
,
PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
maxOpacity4StateSubdivisionLevel :: Word32
}
deriving (Typeable, PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
$c/= :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
== :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
$c== :: PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceOpacityMicromapPropertiesEXT)
#endif
deriving instance Show PhysicalDeviceOpacityMicromapPropertiesEXT
instance ToCStruct PhysicalDeviceOpacityMicromapPropertiesEXT where
withCStruct :: forall b.
PhysicalDeviceOpacityMicromapPropertiesEXT
-> (Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceOpacityMicromapPropertiesEXT
x Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p PhysicalDeviceOpacityMicromapPropertiesEXT
x (Ptr PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b
f Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p PhysicalDeviceOpacityMicromapPropertiesEXT{Flags
maxOpacity4StateSubdivisionLevel :: Flags
maxOpacity2StateSubdivisionLevel :: Flags
$sel:maxOpacity4StateSubdivisionLevel:PhysicalDeviceOpacityMicromapPropertiesEXT :: PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
$sel:maxOpacity2StateSubdivisionLevel:PhysicalDeviceOpacityMicromapPropertiesEXT :: PhysicalDeviceOpacityMicromapPropertiesEXT -> Flags
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Flags
maxOpacity2StateSubdivisionLevel)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p 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
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (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 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 forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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 = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
-> PhysicalDeviceOpacityMicromapPropertiesEXT -> IO ()
poke Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
ptr PhysicalDeviceOpacityMicromapPropertiesEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceOpacityMicromapPropertiesEXT
ptr PhysicalDeviceOpacityMicromapPropertiesEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceOpacityMicromapPropertiesEXT where
zero :: PhysicalDeviceOpacityMicromapPropertiesEXT
zero = Flags -> Flags -> PhysicalDeviceOpacityMicromapPropertiesEXT
PhysicalDeviceOpacityMicromapPropertiesEXT
forall a. Zero a => a
zero
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 = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
72 forall a b. (a -> b) -> a -> b
$ \Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p AccelerationStructureTrianglesOpacityMicromapEXT
x (Ptr AccelerationStructureTrianglesOpacityMicromapEXT -> IO b
f Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p)
pokeCStruct :: forall b.
Ptr AccelerationStructureTrianglesOpacityMicromapEXT
-> AccelerationStructureTrianglesOpacityMicromapEXT -> IO b -> IO b
pokeCStruct Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p AccelerationStructureTrianglesOpacityMicromapEXT{Flags
"dataSize" ::: Word64
Vector MicromapUsageEXT
IndexType
MicromapEXT
DeviceOrHostAddressConstKHR
micromap :: MicromapEXT
usageCounts :: Vector MicromapUsageEXT
baseTriangle :: Flags
indexStride :: "dataSize" ::: Word64
indexBuffer :: DeviceOrHostAddressConstKHR
indexType :: IndexType
$sel:micromap:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> MicromapEXT
$sel:usageCounts:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT
-> Vector MicromapUsageEXT
$sel:baseTriangle:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> Flags
$sel:indexStride:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT
-> "dataSize" ::: Word64
$sel:indexBuffer:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT
-> DeviceOrHostAddressConstKHR
$sel:indexType:AccelerationStructureTrianglesOpacityMicromapEXT :: AccelerationStructureTrianglesOpacityMicromapEXT -> IndexType
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr IndexType)) (IndexType
indexType)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceOrHostAddressConstKHR)) (DeviceOrHostAddressConstKHR
indexBuffer) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) ("dataSize" ::: Word64
indexStride)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (Flags
baseTriangle)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) ((forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Vector a -> Int
Data.Vector.length forall a b. (a -> b) -> a -> b
$ (Vector MicromapUsageEXT
usageCounts)) :: Word32))
Ptr MicromapUsageEXT
pPUsageCounts' <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @MicromapUsageEXT ((forall a. Vector a -> Int
Data.Vector.length (Vector MicromapUsageEXT
usageCounts)) forall a. Num a => a -> a -> a
* Int
12)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i MicromapUsageEXT
e -> forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr MicromapUsageEXT
pPUsageCounts' forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
12 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr MicromapUsageEXT) (MicromapUsageEXT
e)) (Vector MicromapUsageEXT
usageCounts)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr MicromapUsageEXT))) (Ptr MicromapUsageEXT
pPUsageCounts')
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr MicromapEXT)) (MicromapEXT
micromap)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift 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 = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr IndexType)) (forall a. Zero a => a
zero)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceOrHostAddressConstKHR)) (forall a. Zero a => a
zero) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr AccelerationStructureTrianglesOpacityMicromapEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift 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
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Monoid a => a
mempty
forall a. Zero a => a
zero
newtype MicromapTypeEXT = MicromapTypeEXT Int32
deriving newtype (MicromapTypeEXT -> MicromapTypeEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c/= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
== :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c== :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
Eq, Eq MicromapTypeEXT
MicromapTypeEXT -> MicromapTypeEXT -> Bool
MicromapTypeEXT -> MicromapTypeEXT -> Ordering
MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
$cmin :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
max :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
$cmax :: MicromapTypeEXT -> MicromapTypeEXT -> MicromapTypeEXT
>= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c>= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
> :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c> :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
<= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c<= :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
< :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
$c< :: MicromapTypeEXT -> MicromapTypeEXT -> Bool
compare :: MicromapTypeEXT -> MicromapTypeEXT -> Ordering
$ccompare :: MicromapTypeEXT -> MicromapTypeEXT -> Ordering
Ord, Ptr MicromapTypeEXT -> IO MicromapTypeEXT
Ptr MicromapTypeEXT -> Int -> IO MicromapTypeEXT
Ptr MicromapTypeEXT -> Int -> MicromapTypeEXT -> IO ()
Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
MicromapTypeEXT -> Int
forall b. Ptr b -> Int -> IO MicromapTypeEXT
forall b. Ptr b -> Int -> MicromapTypeEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
$cpoke :: Ptr MicromapTypeEXT -> MicromapTypeEXT -> IO ()
peek :: Ptr MicromapTypeEXT -> IO MicromapTypeEXT
$cpeek :: Ptr MicromapTypeEXT -> IO MicromapTypeEXT
pokeByteOff :: forall b. Ptr b -> Int -> MicromapTypeEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> MicromapTypeEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO MicromapTypeEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO MicromapTypeEXT
pokeElemOff :: Ptr MicromapTypeEXT -> Int -> MicromapTypeEXT -> IO ()
$cpokeElemOff :: Ptr MicromapTypeEXT -> Int -> MicromapTypeEXT -> IO ()
peekElemOff :: Ptr MicromapTypeEXT -> Int -> IO MicromapTypeEXT
$cpeekElemOff :: Ptr MicromapTypeEXT -> Int -> IO MicromapTypeEXT
alignment :: MicromapTypeEXT -> Int
$calignment :: MicromapTypeEXT -> Int
sizeOf :: MicromapTypeEXT -> Int
$csizeOf :: MicromapTypeEXT -> Int
Storable, MicromapTypeEXT
forall a. a -> Zero a
zero :: MicromapTypeEXT
$czero :: MicromapTypeEXT
Zero)
pattern $bMICROMAP_TYPE_OPACITY_MICROMAP_EXT :: MicromapTypeEXT
$mMICROMAP_TYPE_OPACITY_MICROMAP_EXT :: forall {r}. MicromapTypeEXT -> ((# #) -> 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 =
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)
(forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read MicromapTypeEXT where
readPrec :: ReadPrec MicromapTypeEXT
readPrec =
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixMicromapTypeEXT
[(MicromapTypeEXT, String)]
showTableMicromapTypeEXT
String
conNameMicromapTypeEXT
Int32 -> MicromapTypeEXT
MicromapTypeEXT
type BuildMicromapFlagsEXT = BuildMicromapFlagBitsEXT
newtype BuildMicromapFlagBitsEXT = BuildMicromapFlagBitsEXT Flags
deriving newtype (BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c/= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
== :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c== :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
Eq, Eq BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Ordering
BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$cmin :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
max :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$cmax :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
>= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c>= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
> :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c> :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
<= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c<= :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
< :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
$c< :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Bool
compare :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Ordering
$ccompare :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> Ordering
Ord, Ptr BuildMicromapFlagBitsEXT -> IO BuildMicromapFlagBitsEXT
Ptr BuildMicromapFlagBitsEXT -> Int -> IO BuildMicromapFlagBitsEXT
Ptr BuildMicromapFlagBitsEXT
-> Int -> BuildMicromapFlagBitsEXT -> IO ()
Ptr BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> IO ()
BuildMicromapFlagBitsEXT -> Int
forall b. Ptr b -> Int -> IO BuildMicromapFlagBitsEXT
forall b. Ptr b -> Int -> BuildMicromapFlagBitsEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> IO ()
$cpoke :: Ptr BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT -> IO ()
peek :: Ptr BuildMicromapFlagBitsEXT -> IO BuildMicromapFlagBitsEXT
$cpeek :: Ptr BuildMicromapFlagBitsEXT -> IO BuildMicromapFlagBitsEXT
pokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapFlagBitsEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapFlagBitsEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapFlagBitsEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapFlagBitsEXT
pokeElemOff :: Ptr BuildMicromapFlagBitsEXT
-> Int -> BuildMicromapFlagBitsEXT -> IO ()
$cpokeElemOff :: Ptr BuildMicromapFlagBitsEXT
-> Int -> BuildMicromapFlagBitsEXT -> IO ()
peekElemOff :: Ptr BuildMicromapFlagBitsEXT -> Int -> IO BuildMicromapFlagBitsEXT
$cpeekElemOff :: Ptr BuildMicromapFlagBitsEXT -> Int -> IO BuildMicromapFlagBitsEXT
alignment :: BuildMicromapFlagBitsEXT -> Int
$calignment :: BuildMicromapFlagBitsEXT -> Int
sizeOf :: BuildMicromapFlagBitsEXT -> Int
$csizeOf :: BuildMicromapFlagBitsEXT -> Int
Storable, BuildMicromapFlagBitsEXT
forall a. a -> Zero a
zero :: BuildMicromapFlagBitsEXT
$czero :: BuildMicromapFlagBitsEXT
Zero, Eq BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT
Int -> BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT -> Bool
BuildMicromapFlagBitsEXT -> Int
BuildMicromapFlagBitsEXT -> Maybe Int
BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT -> Int -> Bool
BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: BuildMicromapFlagBitsEXT -> Int
$cpopCount :: BuildMicromapFlagBitsEXT -> Int
rotateR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$crotateR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
rotateL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$crotateL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
unsafeShiftR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cunsafeShiftR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
shiftR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cshiftR :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
unsafeShiftL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cunsafeShiftL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
shiftL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cshiftL :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
isSigned :: BuildMicromapFlagBitsEXT -> Bool
$cisSigned :: BuildMicromapFlagBitsEXT -> Bool
bitSize :: BuildMicromapFlagBitsEXT -> Int
$cbitSize :: BuildMicromapFlagBitsEXT -> Int
bitSizeMaybe :: BuildMicromapFlagBitsEXT -> Maybe Int
$cbitSizeMaybe :: BuildMicromapFlagBitsEXT -> Maybe Int
testBit :: BuildMicromapFlagBitsEXT -> Int -> Bool
$ctestBit :: BuildMicromapFlagBitsEXT -> Int -> Bool
complementBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$ccomplementBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
clearBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cclearBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
setBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$csetBit :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
bit :: Int -> BuildMicromapFlagBitsEXT
$cbit :: Int -> BuildMicromapFlagBitsEXT
zeroBits :: BuildMicromapFlagBitsEXT
$czeroBits :: BuildMicromapFlagBitsEXT
rotate :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$crotate :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
shift :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
$cshift :: BuildMicromapFlagBitsEXT -> Int -> BuildMicromapFlagBitsEXT
complement :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$ccomplement :: BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
xor :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$cxor :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
.|. :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$c.|. :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
.&. :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
$c.&. :: BuildMicromapFlagBitsEXT
-> BuildMicromapFlagBitsEXT -> BuildMicromapFlagBitsEXT
Bits, Bits BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: BuildMicromapFlagBitsEXT -> Int
$ccountTrailingZeros :: BuildMicromapFlagBitsEXT -> Int
countLeadingZeros :: BuildMicromapFlagBitsEXT -> Int
$ccountLeadingZeros :: BuildMicromapFlagBitsEXT -> Int
finiteBitSize :: BuildMicromapFlagBitsEXT -> Int
$cfiniteBitSize :: BuildMicromapFlagBitsEXT -> Int
FiniteBits)
pattern $bBUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT :: BuildMicromapFlagBitsEXT
$mBUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT :: forall {r}.
BuildMicromapFlagBitsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000001
pattern $bBUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT :: BuildMicromapFlagBitsEXT
$mBUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT :: forall {r}.
BuildMicromapFlagBitsEXT -> ((# #) -> r) -> ((# #) -> r) -> r
BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000002
pattern $bBUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT :: BuildMicromapFlagBitsEXT
$mBUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT :: forall {r}.
BuildMicromapFlagBitsEXT -> ((# #) -> 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 :: [(BuildMicromapFlagBitsEXT, String)]
showTableBuildMicromapFlagBitsEXT =
[
( BuildMicromapFlagBitsEXT
BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT
, String
"PREFER_FAST_TRACE_BIT_EXT"
)
,
( BuildMicromapFlagBitsEXT
BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT
, String
"PREFER_FAST_BUILD_BIT_EXT"
)
,
( BuildMicromapFlagBitsEXT
BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT
, String
"ALLOW_COMPACTION_BIT_EXT"
)
]
instance Show BuildMicromapFlagBitsEXT where
showsPrec :: Int -> BuildMicromapFlagBitsEXT -> ShowS
showsPrec =
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixBuildMicromapFlagBitsEXT
[(BuildMicromapFlagBitsEXT, String)]
showTableBuildMicromapFlagBitsEXT
String
conNameBuildMicromapFlagBitsEXT
(\(BuildMicromapFlagBitsEXT Flags
x) -> Flags
x)
(\Flags
x -> String -> ShowS
showString String
"0x" forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)
instance Read BuildMicromapFlagBitsEXT where
readPrec :: ReadPrec BuildMicromapFlagBitsEXT
readPrec =
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixBuildMicromapFlagBitsEXT
[(BuildMicromapFlagBitsEXT, String)]
showTableBuildMicromapFlagBitsEXT
String
conNameBuildMicromapFlagBitsEXT
Flags -> BuildMicromapFlagBitsEXT
BuildMicromapFlagBitsEXT
type MicromapCreateFlagsEXT = MicromapCreateFlagBitsEXT
newtype MicromapCreateFlagBitsEXT = MicromapCreateFlagBitsEXT Flags
deriving newtype (MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c/= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
== :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c== :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
Eq, Eq MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Ordering
MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$cmin :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
max :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$cmax :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
>= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c>= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
> :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c> :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
<= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c<= :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
< :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
$c< :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Bool
compare :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Ordering
$ccompare :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> Ordering
Ord, Ptr MicromapCreateFlagBitsEXT -> IO MicromapCreateFlagBitsEXT
Ptr MicromapCreateFlagBitsEXT
-> Int -> IO MicromapCreateFlagBitsEXT
Ptr MicromapCreateFlagBitsEXT
-> Int -> MicromapCreateFlagBitsEXT -> IO ()
Ptr MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> IO ()
MicromapCreateFlagBitsEXT -> Int
forall b. Ptr b -> Int -> IO MicromapCreateFlagBitsEXT
forall b. Ptr b -> Int -> MicromapCreateFlagBitsEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> IO ()
$cpoke :: Ptr MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT -> IO ()
peek :: Ptr MicromapCreateFlagBitsEXT -> IO MicromapCreateFlagBitsEXT
$cpeek :: Ptr MicromapCreateFlagBitsEXT -> IO MicromapCreateFlagBitsEXT
pokeByteOff :: forall b. Ptr b -> Int -> MicromapCreateFlagBitsEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> MicromapCreateFlagBitsEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO MicromapCreateFlagBitsEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO MicromapCreateFlagBitsEXT
pokeElemOff :: Ptr MicromapCreateFlagBitsEXT
-> Int -> MicromapCreateFlagBitsEXT -> IO ()
$cpokeElemOff :: Ptr MicromapCreateFlagBitsEXT
-> Int -> MicromapCreateFlagBitsEXT -> IO ()
peekElemOff :: Ptr MicromapCreateFlagBitsEXT
-> Int -> IO MicromapCreateFlagBitsEXT
$cpeekElemOff :: Ptr MicromapCreateFlagBitsEXT
-> Int -> IO MicromapCreateFlagBitsEXT
alignment :: MicromapCreateFlagBitsEXT -> Int
$calignment :: MicromapCreateFlagBitsEXT -> Int
sizeOf :: MicromapCreateFlagBitsEXT -> Int
$csizeOf :: MicromapCreateFlagBitsEXT -> Int
Storable, MicromapCreateFlagBitsEXT
forall a. a -> Zero a
zero :: MicromapCreateFlagBitsEXT
$czero :: MicromapCreateFlagBitsEXT
Zero, Eq MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT
Int -> MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT -> Bool
MicromapCreateFlagBitsEXT -> Int
MicromapCreateFlagBitsEXT -> Maybe Int
MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT -> Int -> Bool
MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: MicromapCreateFlagBitsEXT -> Int
$cpopCount :: MicromapCreateFlagBitsEXT -> Int
rotateR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$crotateR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
rotateL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$crotateL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
unsafeShiftR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cunsafeShiftR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
shiftR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cshiftR :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
unsafeShiftL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cunsafeShiftL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
shiftL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cshiftL :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
isSigned :: MicromapCreateFlagBitsEXT -> Bool
$cisSigned :: MicromapCreateFlagBitsEXT -> Bool
bitSize :: MicromapCreateFlagBitsEXT -> Int
$cbitSize :: MicromapCreateFlagBitsEXT -> Int
bitSizeMaybe :: MicromapCreateFlagBitsEXT -> Maybe Int
$cbitSizeMaybe :: MicromapCreateFlagBitsEXT -> Maybe Int
testBit :: MicromapCreateFlagBitsEXT -> Int -> Bool
$ctestBit :: MicromapCreateFlagBitsEXT -> Int -> Bool
complementBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$ccomplementBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
clearBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cclearBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
setBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$csetBit :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
bit :: Int -> MicromapCreateFlagBitsEXT
$cbit :: Int -> MicromapCreateFlagBitsEXT
zeroBits :: MicromapCreateFlagBitsEXT
$czeroBits :: MicromapCreateFlagBitsEXT
rotate :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$crotate :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
shift :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
$cshift :: MicromapCreateFlagBitsEXT -> Int -> MicromapCreateFlagBitsEXT
complement :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$ccomplement :: MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
xor :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$cxor :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
.|. :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$c.|. :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
.&. :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
$c.&. :: MicromapCreateFlagBitsEXT
-> MicromapCreateFlagBitsEXT -> MicromapCreateFlagBitsEXT
Bits, Bits MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: MicromapCreateFlagBitsEXT -> Int
$ccountTrailingZeros :: MicromapCreateFlagBitsEXT -> Int
countLeadingZeros :: MicromapCreateFlagBitsEXT -> Int
$ccountLeadingZeros :: MicromapCreateFlagBitsEXT -> Int
finiteBitSize :: MicromapCreateFlagBitsEXT -> Int
$cfiniteBitSize :: MicromapCreateFlagBitsEXT -> Int
FiniteBits)
pattern $bMICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT :: MicromapCreateFlagBitsEXT
$mMICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT :: forall {r}.
MicromapCreateFlagBitsEXT -> ((# #) -> 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 :: [(MicromapCreateFlagBitsEXT, String)]
showTableMicromapCreateFlagBitsEXT =
[
( MicromapCreateFlagBitsEXT
MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
, String
""
)
]
instance Show MicromapCreateFlagBitsEXT where
showsPrec :: Int -> MicromapCreateFlagBitsEXT -> ShowS
showsPrec =
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixMicromapCreateFlagBitsEXT
[(MicromapCreateFlagBitsEXT, String)]
showTableMicromapCreateFlagBitsEXT
String
conNameMicromapCreateFlagBitsEXT
(\(MicromapCreateFlagBitsEXT Flags
x) -> Flags
x)
(\Flags
x -> String -> ShowS
showString String
"0x" forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)
instance Read MicromapCreateFlagBitsEXT where
readPrec :: ReadPrec MicromapCreateFlagBitsEXT
readPrec =
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixMicromapCreateFlagBitsEXT
[(MicromapCreateFlagBitsEXT, String)]
showTableMicromapCreateFlagBitsEXT
String
conNameMicromapCreateFlagBitsEXT
Flags -> MicromapCreateFlagBitsEXT
MicromapCreateFlagBitsEXT
newtype CopyMicromapModeEXT = CopyMicromapModeEXT Int32
deriving newtype (CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c/= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
== :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c== :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
Eq, Eq CopyMicromapModeEXT
CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
CopyMicromapModeEXT -> CopyMicromapModeEXT -> Ordering
CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
$cmin :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
max :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
$cmax :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> CopyMicromapModeEXT
>= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c>= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
> :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c> :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
<= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c<= :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
< :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
$c< :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Bool
compare :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Ordering
$ccompare :: CopyMicromapModeEXT -> CopyMicromapModeEXT -> Ordering
Ord, Ptr CopyMicromapModeEXT -> IO CopyMicromapModeEXT
Ptr CopyMicromapModeEXT -> Int -> IO CopyMicromapModeEXT
Ptr CopyMicromapModeEXT -> Int -> CopyMicromapModeEXT -> IO ()
Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
CopyMicromapModeEXT -> Int
forall b. Ptr b -> Int -> IO CopyMicromapModeEXT
forall b. Ptr b -> Int -> CopyMicromapModeEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
$cpoke :: Ptr CopyMicromapModeEXT -> CopyMicromapModeEXT -> IO ()
peek :: Ptr CopyMicromapModeEXT -> IO CopyMicromapModeEXT
$cpeek :: Ptr CopyMicromapModeEXT -> IO CopyMicromapModeEXT
pokeByteOff :: forall b. Ptr b -> Int -> CopyMicromapModeEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> CopyMicromapModeEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO CopyMicromapModeEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CopyMicromapModeEXT
pokeElemOff :: Ptr CopyMicromapModeEXT -> Int -> CopyMicromapModeEXT -> IO ()
$cpokeElemOff :: Ptr CopyMicromapModeEXT -> Int -> CopyMicromapModeEXT -> IO ()
peekElemOff :: Ptr CopyMicromapModeEXT -> Int -> IO CopyMicromapModeEXT
$cpeekElemOff :: Ptr CopyMicromapModeEXT -> Int -> IO CopyMicromapModeEXT
alignment :: CopyMicromapModeEXT -> Int
$calignment :: CopyMicromapModeEXT -> Int
sizeOf :: CopyMicromapModeEXT -> Int
$csizeOf :: CopyMicromapModeEXT -> Int
Storable, CopyMicromapModeEXT
forall a. a -> Zero a
zero :: CopyMicromapModeEXT
$czero :: CopyMicromapModeEXT
Zero)
pattern $bCOPY_MICROMAP_MODE_CLONE_EXT :: CopyMicromapModeEXT
$mCOPY_MICROMAP_MODE_CLONE_EXT :: forall {r}.
CopyMicromapModeEXT -> ((# #) -> 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 =
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)
(forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read CopyMicromapModeEXT where
readPrec :: ReadPrec CopyMicromapModeEXT
readPrec =
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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c/= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
== :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c== :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
Eq, Eq BuildMicromapModeEXT
BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
BuildMicromapModeEXT -> BuildMicromapModeEXT -> Ordering
BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
$cmin :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
max :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
$cmax :: BuildMicromapModeEXT
-> BuildMicromapModeEXT -> BuildMicromapModeEXT
>= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c>= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
> :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c> :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
<= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c<= :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
< :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
$c< :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Bool
compare :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Ordering
$ccompare :: BuildMicromapModeEXT -> BuildMicromapModeEXT -> Ordering
Ord, Ptr BuildMicromapModeEXT -> IO BuildMicromapModeEXT
Ptr BuildMicromapModeEXT -> Int -> IO BuildMicromapModeEXT
Ptr BuildMicromapModeEXT -> Int -> BuildMicromapModeEXT -> IO ()
Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
BuildMicromapModeEXT -> Int
forall b. Ptr b -> Int -> IO BuildMicromapModeEXT
forall b. Ptr b -> Int -> BuildMicromapModeEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
$cpoke :: Ptr BuildMicromapModeEXT -> BuildMicromapModeEXT -> IO ()
peek :: Ptr BuildMicromapModeEXT -> IO BuildMicromapModeEXT
$cpeek :: Ptr BuildMicromapModeEXT -> IO BuildMicromapModeEXT
pokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapModeEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> BuildMicromapModeEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapModeEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BuildMicromapModeEXT
pokeElemOff :: Ptr BuildMicromapModeEXT -> Int -> BuildMicromapModeEXT -> IO ()
$cpokeElemOff :: Ptr BuildMicromapModeEXT -> Int -> BuildMicromapModeEXT -> IO ()
peekElemOff :: Ptr BuildMicromapModeEXT -> Int -> IO BuildMicromapModeEXT
$cpeekElemOff :: Ptr BuildMicromapModeEXT -> Int -> IO BuildMicromapModeEXT
alignment :: BuildMicromapModeEXT -> Int
$calignment :: BuildMicromapModeEXT -> Int
sizeOf :: BuildMicromapModeEXT -> Int
$csizeOf :: BuildMicromapModeEXT -> Int
Storable, BuildMicromapModeEXT
forall a. a -> Zero a
zero :: BuildMicromapModeEXT
$czero :: BuildMicromapModeEXT
Zero)
pattern $bBUILD_MICROMAP_MODE_BUILD_EXT :: BuildMicromapModeEXT
$mBUILD_MICROMAP_MODE_BUILD_EXT :: forall {r}.
BuildMicromapModeEXT -> ((# #) -> 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 =
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)
(forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read BuildMicromapModeEXT where
readPrec :: ReadPrec BuildMicromapModeEXT
readPrec =
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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c/= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
== :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c== :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
Eq, Eq OpacityMicromapFormatEXT
OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Ordering
OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
$cmin :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
max :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
$cmax :: OpacityMicromapFormatEXT
-> OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT
>= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c>= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
> :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c> :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
<= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c<= :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
< :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
$c< :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Bool
compare :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Ordering
$ccompare :: OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> Ordering
Ord, Ptr OpacityMicromapFormatEXT -> IO OpacityMicromapFormatEXT
Ptr OpacityMicromapFormatEXT -> Int -> IO OpacityMicromapFormatEXT
Ptr OpacityMicromapFormatEXT
-> Int -> OpacityMicromapFormatEXT -> IO ()
Ptr OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> IO ()
OpacityMicromapFormatEXT -> Int
forall b. Ptr b -> Int -> IO OpacityMicromapFormatEXT
forall b. Ptr b -> Int -> OpacityMicromapFormatEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> IO ()
$cpoke :: Ptr OpacityMicromapFormatEXT -> OpacityMicromapFormatEXT -> IO ()
peek :: Ptr OpacityMicromapFormatEXT -> IO OpacityMicromapFormatEXT
$cpeek :: Ptr OpacityMicromapFormatEXT -> IO OpacityMicromapFormatEXT
pokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapFormatEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapFormatEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapFormatEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapFormatEXT
pokeElemOff :: Ptr OpacityMicromapFormatEXT
-> Int -> OpacityMicromapFormatEXT -> IO ()
$cpokeElemOff :: Ptr OpacityMicromapFormatEXT
-> Int -> OpacityMicromapFormatEXT -> IO ()
peekElemOff :: Ptr OpacityMicromapFormatEXT -> Int -> IO OpacityMicromapFormatEXT
$cpeekElemOff :: Ptr OpacityMicromapFormatEXT -> Int -> IO OpacityMicromapFormatEXT
alignment :: OpacityMicromapFormatEXT -> Int
$calignment :: OpacityMicromapFormatEXT -> Int
sizeOf :: OpacityMicromapFormatEXT -> Int
$csizeOf :: OpacityMicromapFormatEXT -> Int
Storable, OpacityMicromapFormatEXT
forall a. a -> Zero a
zero :: OpacityMicromapFormatEXT
$czero :: OpacityMicromapFormatEXT
Zero)
pattern $bOPACITY_MICROMAP_FORMAT_2_STATE_EXT :: OpacityMicromapFormatEXT
$mOPACITY_MICROMAP_FORMAT_2_STATE_EXT :: forall {r}.
OpacityMicromapFormatEXT -> ((# #) -> 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 =
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)
(forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read OpacityMicromapFormatEXT where
readPrec :: ReadPrec OpacityMicromapFormatEXT
readPrec =
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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c/= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
== :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c== :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
Eq, Eq OpacityMicromapSpecialIndexEXT
OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Ordering
OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
$cmin :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
max :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
$cmax :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> OpacityMicromapSpecialIndexEXT
>= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c>= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
> :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c> :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
<= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c<= :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
< :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
$c< :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Bool
compare :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Ordering
$ccompare :: OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> Ordering
Ord, Ptr OpacityMicromapSpecialIndexEXT
-> IO OpacityMicromapSpecialIndexEXT
Ptr OpacityMicromapSpecialIndexEXT
-> Int -> IO OpacityMicromapSpecialIndexEXT
Ptr OpacityMicromapSpecialIndexEXT
-> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
Ptr OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> IO ()
OpacityMicromapSpecialIndexEXT -> Int
forall b. Ptr b -> Int -> IO OpacityMicromapSpecialIndexEXT
forall b. Ptr b -> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> IO ()
$cpoke :: Ptr OpacityMicromapSpecialIndexEXT
-> OpacityMicromapSpecialIndexEXT -> IO ()
peek :: Ptr OpacityMicromapSpecialIndexEXT
-> IO OpacityMicromapSpecialIndexEXT
$cpeek :: Ptr OpacityMicromapSpecialIndexEXT
-> IO OpacityMicromapSpecialIndexEXT
pokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapSpecialIndexEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OpacityMicromapSpecialIndexEXT
pokeElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
$cpokeElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> OpacityMicromapSpecialIndexEXT -> IO ()
peekElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> IO OpacityMicromapSpecialIndexEXT
$cpeekElemOff :: Ptr OpacityMicromapSpecialIndexEXT
-> Int -> IO OpacityMicromapSpecialIndexEXT
alignment :: OpacityMicromapSpecialIndexEXT -> Int
$calignment :: OpacityMicromapSpecialIndexEXT -> Int
sizeOf :: OpacityMicromapSpecialIndexEXT -> Int
$csizeOf :: OpacityMicromapSpecialIndexEXT -> Int
Storable, OpacityMicromapSpecialIndexEXT
forall a. a -> Zero a
zero :: OpacityMicromapSpecialIndexEXT
$czero :: OpacityMicromapSpecialIndexEXT
Zero)
pattern $bOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT :: OpacityMicromapSpecialIndexEXT
$mOPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT :: forall {r}.
OpacityMicromapSpecialIndexEXT -> ((# #) -> 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 =
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)
(forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read OpacityMicromapSpecialIndexEXT where
readPrec :: ReadPrec OpacityMicromapSpecialIndexEXT
readPrec =
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"