| // Copyright (C) 2025 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| #include "VulkanBoxedHandles.h" |
| |
| #include "VkDecoderGlobalState.h" |
| #include "VkDecoderInternalStructs.h" |
| |
| namespace gfxstream { |
| namespace vk { |
| namespace { |
| |
| struct ReadStreamRegistry { |
| android::base::Lock mLock; |
| |
| std::vector<VulkanMemReadingStream*> freeStreams; |
| |
| ReadStreamRegistry() { freeStreams.reserve(100); }; |
| |
| VulkanMemReadingStream* pop(const gfxstream::host::FeatureSet& features) { |
| android::base::AutoLock lock(mLock); |
| if (freeStreams.empty()) { |
| return new VulkanMemReadingStream(nullptr, features); |
| } else { |
| VulkanMemReadingStream* res = freeStreams.back(); |
| freeStreams.pop_back(); |
| return res; |
| } |
| } |
| |
| void push(VulkanMemReadingStream* stream) { |
| android::base::AutoLock lock(mLock); |
| freeStreams.push_back(stream); |
| } |
| }; |
| |
| static ReadStreamRegistry sReadStreamRegistry; |
| |
| } // namespace |
| |
| void BoxedHandleManager::replayHandles(std::vector<BoxedHandle> handles) { |
| mHandleReplayQueue.clear(); |
| for (BoxedHandle handle : handles) { |
| mHandleReplayQueue.push_back(handle); |
| } |
| mHandleReplay = !mHandleReplayQueue.empty(); |
| } |
| |
| void BoxedHandleManager::clear() { |
| std::lock_guard<std::mutex> lock(mMutex); |
| mReverseMap.clear(); |
| mStore.clear(); |
| } |
| |
| BoxedHandle BoxedHandleManager::add(const BoxedHandleInfo& item, BoxedHandleTypeTag tag) { |
| BoxedHandle handle; |
| |
| if (mHandleReplay) { |
| handle = mHandleReplayQueue.front(); |
| mHandleReplayQueue.pop_front(); |
| mHandleReplay = !mHandleReplayQueue.empty(); |
| |
| handle = (BoxedHandle)mStore.addFixed(handle, item, (size_t)tag); |
| } else { |
| handle = (BoxedHandle)mStore.add(item, (size_t)tag); |
| } |
| |
| std::lock_guard<std::mutex> lock(mMutex); |
| mReverseMap[(BoxedHandle)(item.underlying)] = handle; |
| return handle; |
| } |
| |
| void BoxedHandleManager::update(BoxedHandle handle, const BoxedHandleInfo& item, |
| BoxedHandleTypeTag tag) { |
| auto storedItem = mStore.get(handle); |
| UnboxedHandle oldHandle = (UnboxedHandle)storedItem->underlying; |
| *storedItem = item; |
| std::lock_guard<std::mutex> lock(mMutex); |
| if (oldHandle) { |
| mReverseMap.erase(oldHandle); |
| } |
| mReverseMap[(UnboxedHandle)(item.underlying)] = handle; |
| } |
| |
| void BoxedHandleManager::remove(BoxedHandle h) { |
| auto item = get(h); |
| if (item) { |
| std::lock_guard<std::mutex> lock(mMutex); |
| mReverseMap.erase((UnboxedHandle)(item->underlying)); |
| } |
| mStore.remove(h); |
| } |
| |
| void BoxedHandleManager::removeDelayed(uint64_t h, VkDevice device, |
| std::function<void()> callback) { |
| std::lock_guard<std::mutex> lock(mMutex); |
| mDelayedRemoves[device].push_back({h, callback}); |
| } |
| |
| void BoxedHandleManager::processDelayedRemoves(VkDevice device) { |
| std::vector<DelayedRemove> deviceDelayedRemoves; |
| |
| { |
| std::lock_guard<std::mutex> lock(mMutex); |
| |
| auto it = mDelayedRemoves.find(device); |
| if (it == mDelayedRemoves.end()) return; |
| |
| deviceDelayedRemoves = std::move(it->second); |
| mDelayedRemoves.erase(it); |
| } |
| |
| for (const auto& r : deviceDelayedRemoves) { |
| auto h = r.handle; |
| |
| // VkDecoderGlobalState is not locked when callback is called. |
| if (r.callback) { |
| r.callback(); |
| } |
| |
| mStore.remove(h); |
| } |
| } |
| |
| BoxedHandleInfo* BoxedHandleManager::get(BoxedHandle handle) { |
| return (BoxedHandleInfo*)mStore.get_const(handle); |
| } |
| |
| BoxedHandle BoxedHandleManager::getBoxedFromUnboxed(UnboxedHandle unboxed) { |
| std::lock_guard<std::mutex> lock(mMutex); |
| |
| auto it = mReverseMap.find(unboxed); |
| if (it == mReverseMap.end()) { |
| return 0; |
| } |
| |
| return it->second; |
| } |
| |
| BoxedHandleManager sBoxedHandleManager; |
| |
| template <typename VkObjectT> |
| constexpr BoxedHandleTypeTag GetTag() { |
| if constexpr (std::is_same_v<VkObjectT, VkAccelerationStructureKHR>) { |
| return Tag_VkAccelerationStructureKHR; |
| } else if constexpr (std::is_same_v<VkObjectT, VkAccelerationStructureNV>) { |
| return Tag_VkAccelerationStructureNV; |
| } else if constexpr (std::is_same_v<VkObjectT, VkBuffer>) { |
| return Tag_VkBuffer; |
| } else if constexpr (std::is_same_v<VkObjectT, VkBufferView>) { |
| return Tag_VkBufferView; |
| } else if constexpr (std::is_same_v<VkObjectT, VkCommandBuffer>) { |
| return Tag_VkCommandBuffer; |
| } else if constexpr (std::is_same_v<VkObjectT, VkCommandPool>) { |
| return Tag_VkCommandPool; |
| } else if constexpr (std::is_same_v<VkObjectT, VkCuFunctionNVX>) { |
| return Tag_VkCuFunctionNVX; |
| } else if constexpr (std::is_same_v<VkObjectT, VkCuModuleNVX>) { |
| return Tag_VkCuModuleNVX; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDebugReportCallbackEXT>) { |
| return Tag_VkDebugReportCallbackEXT; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDebugUtilsMessengerEXT>) { |
| return Tag_VkDebugUtilsMessengerEXT; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorPool>) { |
| return Tag_VkDescriptorPool; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorSet>) { |
| return Tag_VkDescriptorSet; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorSetLayout>) { |
| return Tag_VkDescriptorSetLayout; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorUpdateTemplate>) { |
| return Tag_VkDescriptorUpdateTemplate; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDevice>) { |
| return Tag_VkDevice; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDeviceMemory>) { |
| return Tag_VkDeviceMemory; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDisplayKHR>) { |
| return Tag_VkDisplayKHR; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDisplayModeKHR>) { |
| return Tag_VkDisplayModeKHR; |
| } else if constexpr (std::is_same_v<VkObjectT, VkEvent>) { |
| return Tag_VkEvent; |
| } else if constexpr (std::is_same_v<VkObjectT, VkFence>) { |
| return Tag_VkFence; |
| } else if constexpr (std::is_same_v<VkObjectT, VkFramebuffer>) { |
| return Tag_VkFramebuffer; |
| } else if constexpr (std::is_same_v<VkObjectT, VkImage>) { |
| return Tag_VkImage; |
| } else if constexpr (std::is_same_v<VkObjectT, VkImageView>) { |
| return Tag_VkImageView; |
| } else if constexpr (std::is_same_v<VkObjectT, VkIndirectCommandsLayoutNV>) { |
| return Tag_VkIndirectCommandsLayoutNV; |
| } else if constexpr (std::is_same_v<VkObjectT, VkInstance>) { |
| return Tag_VkInstance; |
| } else if constexpr (std::is_same_v<VkObjectT, VkMicromapEXT>) { |
| return Tag_VkMicromapEXT; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPhysicalDevice>) { |
| return Tag_VkPhysicalDevice; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPipeline>) { |
| return Tag_VkPipeline; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPipelineCache>) { |
| return Tag_VkPipelineCache; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPipelineLayout>) { |
| return Tag_VkPipelineLayout; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPrivateDataSlot>) { |
| return Tag_VkPrivateDataSlot; |
| } else if constexpr (std::is_same_v<VkObjectT, VkQueryPool>) { |
| return Tag_VkQueryPool; |
| } else if constexpr (std::is_same_v<VkObjectT, VkQueue>) { |
| return Tag_VkQueue; |
| } else if constexpr (std::is_same_v<VkObjectT, VkRenderPass>) { |
| return Tag_VkRenderPass; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSampler>) { |
| return Tag_VkSampler; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSamplerYcbcrConversion>) { |
| return Tag_VkSamplerYcbcrConversion; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSemaphore>) { |
| return Tag_VkSemaphore; |
| } else if constexpr (std::is_same_v<VkObjectT, VkShaderModule>) { |
| return Tag_VkShaderModule; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSurfaceKHR>) { |
| return Tag_VkSurfaceKHR; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSwapchainKHR>) { |
| return Tag_VkSwapchainKHR; |
| } else if constexpr (std::is_same_v<VkObjectT, VkValidationCacheEXT>) { |
| return Tag_VkValidationCacheEXT; |
| } else { |
| static_assert(sizeof(VkObjectT) == 0, |
| "Unhandled VkObjectT. Please update BoxedHandleTypeTag."); |
| } |
| } |
| |
| template <typename VkObjectT> |
| constexpr const char* GetTypeStr() { |
| if constexpr (std::is_same_v<VkObjectT, VkAccelerationStructureKHR>) { |
| return "VkAccelerationStructureKHR"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkAccelerationStructureNV>) { |
| return "VkAccelerationStructureNV"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkBuffer>) { |
| return "VkBuffer"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkBufferView>) { |
| return "VkBufferView"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkCommandBuffer>) { |
| return "VkCommandBuffer"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkCommandPool>) { |
| return "VkCommandPool"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkCuFunctionNVX>) { |
| return "VkCuFunctionNVX"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkCuModuleNVX>) { |
| return "VkCuModuleNVX"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDebugReportCallbackEXT>) { |
| return "VkDebugReportCallbackEXT"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDebugUtilsMessengerEXT>) { |
| return "VkDebugUtilsMessengerEXT"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorPool>) { |
| return "VkDescriptorPool"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorSet>) { |
| return "VkDescriptorSet"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorSetLayout>) { |
| return "VkDescriptorSetLayout"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDescriptorUpdateTemplate>) { |
| return "VkDescriptorUpdateTemplate"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDevice>) { |
| return "VkDevice"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDeviceMemory>) { |
| return "VkDeviceMemory"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDisplayKHR>) { |
| return "VkDisplayKHR"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkDisplayModeKHR>) { |
| return "VkDisplayModeKHR"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkEvent>) { |
| return "VkEvent"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkFence>) { |
| return "VkFence"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkFramebuffer>) { |
| return "VkFramebuffer"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkImage>) { |
| return "VkImage"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkImageView>) { |
| return "VkImageView"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkIndirectCommandsLayoutNV>) { |
| return "VkIndirectCommandsLayoutNV"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkInstance>) { |
| return "VkInstance"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkMicromapEXT>) { |
| return "VkMicromapEXT"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPhysicalDevice>) { |
| return "VkPhysicalDevice"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPipeline>) { |
| return "VkPipeline"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPipelineCache>) { |
| return "VkPipelineCache"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPipelineLayout>) { |
| return "VkPipelineLayout"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkPrivateDataSlot>) { |
| return "VkPrivateDataSlot"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkQueryPool>) { |
| return "VkQueryPool"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkQueue>) { |
| return "VkQueue"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkRenderPass>) { |
| return "VkRenderPass"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSampler>) { |
| return "VkSampler"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSamplerYcbcrConversion>) { |
| return "VkSamplerYcbcrConversion"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSemaphore>) { |
| return "VkSemaphore"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkShaderModule>) { |
| return "VkShaderModule"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSurfaceKHR>) { |
| return "VkSurfaceKHR"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkSwapchainKHR>) { |
| return "VkSwapchainKHR"; |
| } else if constexpr (std::is_same_v<VkObjectT, VkValidationCacheEXT>) { |
| return "VkValidationCacheEXT"; |
| } else { |
| static_assert(sizeof(VkObjectT) == 0, |
| "Unhandled VkObjectT. Please update BoxedHandleTypeTag."); |
| } |
| } |
| |
| template <typename VkObjectT> |
| VkObjectT new_boxed_VkType(VkObjectT underlying, bool dispatchable = false, VulkanDispatch* dispatch = nullptr, bool ownsDispatch = false) { |
| BoxedHandleInfo info; |
| info.underlying = (uint64_t)underlying; |
| if (dispatchable) { |
| if (dispatch != nullptr) { |
| info.dispatch = dispatch; |
| } else { |
| info.dispatch = new VulkanDispatch(); |
| } |
| info.ownDispatch = ownsDispatch; |
| info.ordMaintInfo = new OrderMaintenanceInfo(); |
| info.readStream = nullptr; |
| } |
| return (VkObjectT)sBoxedHandleManager.add(info, GetTag<VkObjectT>()); |
| } |
| |
| template <typename VkObjectT> |
| void delete_VkType(VkObjectT boxed) { |
| if (boxed == VK_NULL_HANDLE) { |
| return; |
| } |
| |
| BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed); |
| if (info == nullptr) { |
| return; |
| } |
| |
| releaseOrderMaintInfo(info->ordMaintInfo); |
| |
| if (info->readStream) { |
| sReadStreamRegistry.push(info->readStream); |
| info->readStream = nullptr; |
| } |
| |
| sBoxedHandleManager.remove((uint64_t)boxed); |
| } |
| |
| template <typename VkObjectT> |
| void delayed_delete_VkType(VkObjectT boxed, VkDevice device, std::function<void()> callback) { |
| if (boxed == VK_NULL_HANDLE) { |
| return; |
| } |
| |
| sBoxedHandleManager.removeDelayed((uint64_t)boxed, device, std::move(callback)); |
| } |
| |
| // Custom unbox_* functions or GOLDFISH_VK_LIST_DISPATCHABLE_CUSTOM_UNBOX_HANDLE_TYPES |
| // VkQueue objects can be virtual, meaning that multiple boxed queues can map into a single |
| // physical queue on the host GPU. Some conversion is needed for unboxing to physical. |
| VkQueue unbox_VkQueueImpl(VkQueue boxed) { |
| BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed); |
| if (!info) { |
| return VK_NULL_HANDLE; |
| } |
| const uint64_t unboxedQueue64 = info->underlying; |
| |
| // Use VulkanVirtualQueue directly to avoid locking for hasVirtualGraphicsQueue call. |
| if (VkDecoderGlobalState::get()->getFeatures().VulkanVirtualQueue.enabled) { |
| // Clear virtual bit and unbox into the actual physical queue handle |
| return (VkQueue)(unboxedQueue64 & ~QueueInfo::kVirtualQueueBit); |
| } |
| |
| return (VkQueue)(unboxedQueue64); |
| } |
| |
| template <typename VkObjectT> |
| VkObjectT unbox_VkType(VkObjectT boxed) { |
| if (boxed == VK_NULL_HANDLE) { |
| return VK_NULL_HANDLE; |
| } |
| |
| VkObjectT unboxed = VK_NULL_HANDLE; |
| |
| if constexpr (std::is_same_v<VkObjectT, VkQueue>) { |
| unboxed = unbox_VkQueueImpl(boxed); |
| } else { |
| BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed); |
| if (info == nullptr) { |
| if constexpr (std::is_same_v<VkObjectT, VkCommandBuffer> || |
| std::is_same_v<VkObjectT, VkDevice> || |
| std::is_same_v<VkObjectT, VkInstance> || |
| std::is_same_v<VkObjectT, VkPhysicalDevice> || |
| std::is_same_v<VkObjectT, VkQueue>) { |
| ERR("Failed to unbox %s %p", GetTypeStr<VkObjectT>(), boxed); |
| } else if constexpr (std::is_same_v<VkObjectT, VkFence>) { |
| // TODO: investigate. |
| } else { |
| GFXSTREAM_ABORT(FatalError(ABORT_REASON_OTHER)) |
| << "Failed to unbox " |
| << GetTypeStr<VkObjectT>() |
| << " " |
| << boxed |
| << ", not found."; |
| } |
| unboxed = VK_NULL_HANDLE; |
| } else { |
| unboxed = (VkObjectT)info->underlying; |
| } |
| } |
| |
| return unboxed; |
| } |
| |
| template <typename VkObjectT> |
| VkObjectT try_unbox_VkType(VkObjectT boxed) { |
| if (boxed == VK_NULL_HANDLE) { |
| return VK_NULL_HANDLE; |
| } |
| |
| VkObjectT unboxed = VK_NULL_HANDLE; |
| |
| if constexpr (std::is_same_v<VkObjectT, VkQueue>) { |
| unboxed = unbox_VkQueueImpl(boxed); |
| } else { |
| BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed); |
| if (info != nullptr) { |
| unboxed = (VkObjectT)info->underlying; |
| } |
| } |
| |
| if (unboxed == VK_NULL_HANDLE) { |
| WARN("Failed to try unbox %s %p", GetTypeStr<VkObjectT>(), boxed); |
| } |
| |
| return unboxed; |
| } |
| |
| template <typename VkObjectT> |
| VkObjectT unboxed_to_boxed_non_dispatchable_VkType(VkObjectT unboxed) { |
| if (unboxed == VK_NULL_HANDLE) { |
| return VK_NULL_HANDLE; |
| } |
| |
| return (VkObjectT)sBoxedHandleManager.getBoxedFromUnboxed((uint64_t)(uintptr_t)unboxed); |
| } |
| |
| template <typename VkObjectT> |
| void set_boxed_non_dispatchable_VkType(VkObjectT boxed, VkObjectT new_unboxed) { |
| BoxedHandleInfo info; |
| info.underlying = (uint64_t)new_unboxed; |
| sBoxedHandleManager.update((uint64_t)boxed, info, GetTag<VkObjectT>()); |
| } |
| |
| template <typename VkObjectT> |
| OrderMaintenanceInfo* get_order_maintenance_info_VkType(VkObjectT boxed) { |
| BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed); |
| if (info == nullptr) { |
| return nullptr; |
| } |
| |
| if (info->ordMaintInfo == nullptr) { |
| return nullptr; |
| } |
| |
| acquireOrderMaintInfo(info->ordMaintInfo); |
| |
| return info->ordMaintInfo; |
| } |
| |
| template <typename VkObjectT> |
| VulkanMemReadingStream* get_read_stream_VkType(VkObjectT boxed) { |
| BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed); |
| if (info == nullptr) { |
| return nullptr; |
| } |
| |
| if (info->readStream == nullptr) { |
| info->readStream = sReadStreamRegistry.pop(VkDecoderGlobalState::get()->getFeatures()); |
| } |
| |
| return info->readStream; |
| } |
| |
| template <typename VkObjectT> |
| VulkanDispatch* get_dispatch_VkType(VkObjectT boxed) { |
| BoxedHandleInfo* info = sBoxedHandleManager.get((uint64_t)(uintptr_t)boxed); |
| if (info == nullptr) { |
| ERR("Failed to unbox %s %p", GetTypeStr<VkObjectT>(), boxed); |
| return nullptr; |
| } |
| return info->dispatch; |
| } |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| ////////////// DISPATCHABLE TYPES ////////////// |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| VkInstance new_boxed_VkInstance(VkInstance unboxed, VulkanDispatch* dispatch, bool ownsDispatch) { |
| return new_boxed_VkType<VkInstance>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch); |
| } |
| |
| void delete_VkInstance(VkInstance boxed) { |
| delete_VkType(boxed); |
| } |
| |
| VkInstance unbox_VkInstance(VkInstance boxed) { |
| return unbox_VkType<VkInstance>(boxed); |
| } |
| |
| VkInstance try_unbox_VkInstance(VkInstance boxed) { |
| return try_unbox_VkType<VkInstance>(boxed); |
| } |
| |
| VkInstance unboxed_to_boxed_VkInstance(VkInstance unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkInstance>(unboxed); |
| } |
| |
| OrderMaintenanceInfo* ordmaint_VkInstance(VkInstance boxed) { |
| return get_order_maintenance_info_VkType<VkInstance>(boxed); |
| } |
| |
| VulkanMemReadingStream* readstream_VkInstance(VkInstance boxed) { |
| return get_read_stream_VkType<VkInstance>(boxed); |
| } |
| |
| VulkanDispatch* dispatch_VkInstance(VkInstance boxed) { |
| return get_dispatch_VkType<VkInstance>(boxed); |
| } |
| |
| VkPhysicalDevice new_boxed_VkPhysicalDevice(VkPhysicalDevice unboxed, VulkanDispatch* dispatch, bool ownsDispatch) { |
| return new_boxed_VkType<VkPhysicalDevice>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch); |
| } |
| |
| void delete_VkPhysicalDevice(VkPhysicalDevice boxed) { |
| delete_VkType(boxed); |
| } |
| |
| VkPhysicalDevice unbox_VkPhysicalDevice(VkPhysicalDevice boxed) { |
| return unbox_VkType<VkPhysicalDevice>(boxed); |
| } |
| |
| VkPhysicalDevice try_unbox_VkPhysicalDevice(VkPhysicalDevice boxed) { |
| return try_unbox_VkType<VkPhysicalDevice>(boxed); |
| } |
| |
| VkPhysicalDevice unboxed_to_boxed_VkPhysicalDevice(VkPhysicalDevice unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkPhysicalDevice>(unboxed); |
| } |
| |
| OrderMaintenanceInfo* ordmaint_VkPhysicalDevice(VkPhysicalDevice boxed) { |
| return get_order_maintenance_info_VkType<VkPhysicalDevice>(boxed); |
| } |
| |
| VulkanMemReadingStream* readstream_VkPhysicalDevice(VkPhysicalDevice boxed) { |
| return get_read_stream_VkType<VkPhysicalDevice>(boxed); |
| } |
| |
| VulkanDispatch* dispatch_VkPhysicalDevice(VkPhysicalDevice boxed) { |
| return get_dispatch_VkType<VkPhysicalDevice>(boxed); |
| } |
| |
| VkDevice new_boxed_VkDevice(VkDevice unboxed, VulkanDispatch* dispatch, bool ownsDispatch) { |
| return new_boxed_VkType<VkDevice>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch); |
| } |
| |
| void delete_VkDevice(VkDevice boxed) { |
| delete_VkType(boxed); |
| } |
| |
| VkDevice unbox_VkDevice(VkDevice boxed) { |
| return unbox_VkType<VkDevice>(boxed); |
| } |
| |
| VkDevice try_unbox_VkDevice(VkDevice boxed) { |
| return try_unbox_VkType<VkDevice>(boxed); |
| } |
| |
| VkDevice unboxed_to_boxed_VkDevice(VkDevice unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDevice>(unboxed); |
| } |
| |
| OrderMaintenanceInfo* ordmaint_VkDevice(VkDevice boxed) { |
| return get_order_maintenance_info_VkType<VkDevice>(boxed); |
| } |
| |
| VulkanMemReadingStream* readstream_VkDevice(VkDevice boxed) { |
| return get_read_stream_VkType<VkDevice>(boxed); |
| } |
| |
| VulkanDispatch* dispatch_VkDevice(VkDevice boxed) { |
| return get_dispatch_VkType<VkDevice>(boxed); |
| } |
| |
| VkCommandBuffer new_boxed_VkCommandBuffer(VkCommandBuffer unboxed, VulkanDispatch* dispatch, bool ownsDispatch) { |
| return new_boxed_VkType<VkCommandBuffer>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch); |
| } |
| |
| void delete_VkCommandBuffer(VkCommandBuffer boxed) { |
| delete_VkType(boxed); |
| } |
| |
| VkCommandBuffer unbox_VkCommandBuffer(VkCommandBuffer boxed) { |
| return unbox_VkType<VkCommandBuffer>(boxed); |
| } |
| |
| VkCommandBuffer try_unbox_VkCommandBuffer(VkCommandBuffer boxed) { |
| return try_unbox_VkType<VkCommandBuffer>(boxed); |
| } |
| |
| VkCommandBuffer unboxed_to_boxed_VkCommandBuffer(VkCommandBuffer unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkCommandBuffer>(unboxed); |
| } |
| |
| OrderMaintenanceInfo* ordmaint_VkCommandBuffer(VkCommandBuffer boxed) { |
| return get_order_maintenance_info_VkType<VkCommandBuffer>(boxed); |
| } |
| |
| VulkanMemReadingStream* readstream_VkCommandBuffer(VkCommandBuffer boxed) { |
| return get_read_stream_VkType<VkCommandBuffer>(boxed); |
| } |
| |
| VulkanDispatch* dispatch_VkCommandBuffer(VkCommandBuffer boxed) { |
| return get_dispatch_VkType<VkCommandBuffer>(boxed); |
| } |
| |
| VkQueue new_boxed_VkQueue(VkQueue unboxed, VulkanDispatch* dispatch, bool ownsDispatch) { |
| return new_boxed_VkType<VkQueue>(unboxed, /*dispatchable=*/true, dispatch, ownsDispatch); |
| } |
| |
| void delete_VkQueue(VkQueue boxed) { |
| delete_VkType(boxed); |
| } |
| |
| VkQueue unbox_VkQueue(VkQueue boxed) { |
| return unbox_VkType<VkQueue>(boxed); |
| } |
| |
| VkQueue try_unbox_VkQueue(VkQueue boxed) { |
| return try_unbox_VkType<VkQueue>(boxed); |
| } |
| |
| VkQueue unboxed_to_boxed_VkQueue(VkQueue unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkQueue>(unboxed); |
| } |
| |
| OrderMaintenanceInfo* ordmaint_VkQueue(VkQueue boxed) { |
| return get_order_maintenance_info_VkType<VkQueue>(boxed); |
| } |
| |
| VulkanMemReadingStream* readstream_VkQueue(VkQueue boxed) { |
| return get_read_stream_VkType<VkQueue>(boxed); |
| } |
| |
| VulkanDispatch* dispatch_VkQueue(VkQueue boxed) { |
| return get_dispatch_VkType<VkQueue>(boxed); |
| } |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| ////////////// NON DISPATCHABLE TYPES ////////////// |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| VkAccelerationStructureKHR new_boxed_non_dispatchable_VkAccelerationStructureKHR(VkAccelerationStructureKHR unboxed) { |
| return new_boxed_VkType<VkAccelerationStructureKHR>(unboxed); |
| } |
| |
| void delete_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkAccelerationStructureKHR unbox_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed) { |
| return unbox_VkType<VkAccelerationStructureKHR>(boxed); |
| } |
| |
| VkAccelerationStructureKHR try_unbox_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed) { |
| return try_unbox_VkType<VkAccelerationStructureKHR>(boxed); |
| } |
| |
| VkAccelerationStructureKHR unboxed_to_boxed_non_dispatchable_VkAccelerationStructureKHR(VkAccelerationStructureKHR unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkAccelerationStructureKHR>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkAccelerationStructureKHR(VkAccelerationStructureKHR boxed, VkAccelerationStructureKHR new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkAccelerationStructureKHR>(boxed, new_unboxed); |
| } |
| |
| VkAccelerationStructureNV new_boxed_non_dispatchable_VkAccelerationStructureNV(VkAccelerationStructureNV unboxed) { |
| return new_boxed_VkType<VkAccelerationStructureNV>(unboxed); |
| } |
| |
| void delete_VkAccelerationStructureNV(VkAccelerationStructureNV boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkAccelerationStructureNV(VkAccelerationStructureNV boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkAccelerationStructureNV unbox_VkAccelerationStructureNV(VkAccelerationStructureNV boxed) { |
| return unbox_VkType<VkAccelerationStructureNV>(boxed); |
| } |
| |
| VkAccelerationStructureNV try_unbox_VkAccelerationStructureNV(VkAccelerationStructureNV boxed) { |
| return try_unbox_VkType<VkAccelerationStructureNV>(boxed); |
| } |
| |
| VkAccelerationStructureNV unboxed_to_boxed_non_dispatchable_VkAccelerationStructureNV(VkAccelerationStructureNV unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkAccelerationStructureNV>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkAccelerationStructureNV(VkAccelerationStructureNV boxed, VkAccelerationStructureNV new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkAccelerationStructureNV>(boxed, new_unboxed); |
| } |
| |
| VkBuffer new_boxed_non_dispatchable_VkBuffer(VkBuffer unboxed) { |
| return new_boxed_VkType<VkBuffer>(unboxed); |
| } |
| |
| void delete_VkBuffer(VkBuffer boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkBuffer(VkBuffer boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkBuffer unbox_VkBuffer(VkBuffer boxed) { |
| return unbox_VkType<VkBuffer>(boxed); |
| } |
| |
| VkBuffer try_unbox_VkBuffer(VkBuffer boxed) { |
| return try_unbox_VkType<VkBuffer>(boxed); |
| } |
| |
| VkBuffer unboxed_to_boxed_non_dispatchable_VkBuffer(VkBuffer unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkBuffer>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkBuffer(VkBuffer boxed, VkBuffer new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkBuffer>(boxed, new_unboxed); |
| } |
| |
| VkBufferView new_boxed_non_dispatchable_VkBufferView(VkBufferView unboxed) { |
| return new_boxed_VkType<VkBufferView>(unboxed); |
| } |
| |
| void delete_VkBufferView(VkBufferView boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkBufferView(VkBufferView boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkBufferView unbox_VkBufferView(VkBufferView boxed) { |
| return unbox_VkType<VkBufferView>(boxed); |
| } |
| |
| VkBufferView try_unbox_VkBufferView(VkBufferView boxed) { |
| return try_unbox_VkType<VkBufferView>(boxed); |
| } |
| |
| VkBufferView unboxed_to_boxed_non_dispatchable_VkBufferView(VkBufferView unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkBufferView>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkBufferView(VkBufferView boxed, VkBufferView new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkBufferView>(boxed, new_unboxed); |
| } |
| |
| VkCommandPool new_boxed_non_dispatchable_VkCommandPool(VkCommandPool unboxed) { |
| return new_boxed_VkType<VkCommandPool>(unboxed); |
| } |
| |
| void delete_VkCommandPool(VkCommandPool boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkCommandPool(VkCommandPool boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkCommandPool unbox_VkCommandPool(VkCommandPool boxed) { |
| return unbox_VkType<VkCommandPool>(boxed); |
| } |
| |
| VkCommandPool try_unbox_VkCommandPool(VkCommandPool boxed) { |
| return try_unbox_VkType<VkCommandPool>(boxed); |
| } |
| |
| VkCommandPool unboxed_to_boxed_non_dispatchable_VkCommandPool(VkCommandPool unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkCommandPool>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkCommandPool(VkCommandPool boxed, VkCommandPool new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkCommandPool>(boxed, new_unboxed); |
| } |
| |
| VkCuFunctionNVX new_boxed_non_dispatchable_VkCuFunctionNVX(VkCuFunctionNVX unboxed) { |
| return new_boxed_VkType<VkCuFunctionNVX>(unboxed); |
| } |
| |
| void delete_VkCuFunctionNVX(VkCuFunctionNVX boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkCuFunctionNVX(VkCuFunctionNVX boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkCuFunctionNVX unbox_VkCuFunctionNVX(VkCuFunctionNVX boxed) { |
| return unbox_VkType<VkCuFunctionNVX>(boxed); |
| } |
| |
| VkCuFunctionNVX try_unbox_VkCuFunctionNVX(VkCuFunctionNVX boxed) { |
| return try_unbox_VkType<VkCuFunctionNVX>(boxed); |
| } |
| |
| VkCuFunctionNVX unboxed_to_boxed_non_dispatchable_VkCuFunctionNVX(VkCuFunctionNVX unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkCuFunctionNVX>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkCuFunctionNVX(VkCuFunctionNVX boxed, VkCuFunctionNVX new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkCuFunctionNVX>(boxed, new_unboxed); |
| } |
| |
| VkCuModuleNVX new_boxed_non_dispatchable_VkCuModuleNVX(VkCuModuleNVX unboxed) { |
| return new_boxed_VkType<VkCuModuleNVX>(unboxed); |
| } |
| |
| void delete_VkCuModuleNVX(VkCuModuleNVX boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkCuModuleNVX(VkCuModuleNVX boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkCuModuleNVX unbox_VkCuModuleNVX(VkCuModuleNVX boxed) { |
| return unbox_VkType<VkCuModuleNVX>(boxed); |
| } |
| |
| VkCuModuleNVX try_unbox_VkCuModuleNVX(VkCuModuleNVX boxed) { |
| return try_unbox_VkType<VkCuModuleNVX>(boxed); |
| } |
| |
| VkCuModuleNVX unboxed_to_boxed_non_dispatchable_VkCuModuleNVX(VkCuModuleNVX unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkCuModuleNVX>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkCuModuleNVX(VkCuModuleNVX boxed, VkCuModuleNVX new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkCuModuleNVX>(boxed, new_unboxed); |
| } |
| |
| VkDebugReportCallbackEXT new_boxed_non_dispatchable_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT unboxed) { |
| return new_boxed_VkType<VkDebugReportCallbackEXT>(unboxed); |
| } |
| |
| void delete_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkDebugReportCallbackEXT unbox_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed) { |
| return unbox_VkType<VkDebugReportCallbackEXT>(boxed); |
| } |
| |
| VkDebugReportCallbackEXT try_unbox_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed) { |
| return try_unbox_VkType<VkDebugReportCallbackEXT>(boxed); |
| } |
| |
| VkDebugReportCallbackEXT unboxed_to_boxed_non_dispatchable_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDebugReportCallbackEXT>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkDebugReportCallbackEXT(VkDebugReportCallbackEXT boxed, VkDebugReportCallbackEXT new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkDebugReportCallbackEXT>(boxed, new_unboxed); |
| } |
| |
| VkDebugUtilsMessengerEXT new_boxed_non_dispatchable_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT unboxed) { |
| return new_boxed_VkType<VkDebugUtilsMessengerEXT>(unboxed); |
| } |
| |
| void delete_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkDebugUtilsMessengerEXT unbox_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed) { |
| return unbox_VkType<VkDebugUtilsMessengerEXT>(boxed); |
| } |
| |
| VkDebugUtilsMessengerEXT try_unbox_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed) { |
| return try_unbox_VkType<VkDebugUtilsMessengerEXT>(boxed); |
| } |
| |
| VkDebugUtilsMessengerEXT unboxed_to_boxed_non_dispatchable_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDebugUtilsMessengerEXT>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkDebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT boxed, VkDebugUtilsMessengerEXT new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkDebugUtilsMessengerEXT>(boxed, new_unboxed); |
| } |
| |
| VkDescriptorPool new_boxed_non_dispatchable_VkDescriptorPool(VkDescriptorPool unboxed) { |
| return new_boxed_VkType<VkDescriptorPool>(unboxed); |
| } |
| |
| void delete_VkDescriptorPool(VkDescriptorPool boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkDescriptorPool(VkDescriptorPool boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkDescriptorPool unbox_VkDescriptorPool(VkDescriptorPool boxed) { |
| return unbox_VkType<VkDescriptorPool>(boxed); |
| } |
| |
| VkDescriptorPool try_unbox_VkDescriptorPool(VkDescriptorPool boxed) { |
| return try_unbox_VkType<VkDescriptorPool>(boxed); |
| } |
| |
| VkDescriptorPool unboxed_to_boxed_non_dispatchable_VkDescriptorPool(VkDescriptorPool unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDescriptorPool>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkDescriptorPool(VkDescriptorPool boxed, VkDescriptorPool new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkDescriptorPool>(boxed, new_unboxed); |
| } |
| |
| VkDescriptorSet new_boxed_non_dispatchable_VkDescriptorSet(VkDescriptorSet unboxed) { |
| return new_boxed_VkType<VkDescriptorSet>(unboxed); |
| } |
| |
| void delete_VkDescriptorSet(VkDescriptorSet boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkDescriptorSet(VkDescriptorSet boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkDescriptorSet unbox_VkDescriptorSet(VkDescriptorSet boxed) { |
| return unbox_VkType<VkDescriptorSet>(boxed); |
| } |
| |
| VkDescriptorSet try_unbox_VkDescriptorSet(VkDescriptorSet boxed) { |
| return try_unbox_VkType<VkDescriptorSet>(boxed); |
| } |
| |
| VkDescriptorSet unboxed_to_boxed_non_dispatchable_VkDescriptorSet(VkDescriptorSet unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDescriptorSet>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkDescriptorSet(VkDescriptorSet boxed, VkDescriptorSet new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkDescriptorSet>(boxed, new_unboxed); |
| } |
| |
| VkDescriptorSetLayout new_boxed_non_dispatchable_VkDescriptorSetLayout(VkDescriptorSetLayout unboxed) { |
| return new_boxed_VkType<VkDescriptorSetLayout>(unboxed); |
| } |
| |
| void delete_VkDescriptorSetLayout(VkDescriptorSetLayout boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkDescriptorSetLayout(VkDescriptorSetLayout boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkDescriptorSetLayout unbox_VkDescriptorSetLayout(VkDescriptorSetLayout boxed) { |
| return unbox_VkType<VkDescriptorSetLayout>(boxed); |
| } |
| |
| VkDescriptorSetLayout try_unbox_VkDescriptorSetLayout(VkDescriptorSetLayout boxed) { |
| return try_unbox_VkType<VkDescriptorSetLayout>(boxed); |
| } |
| |
| VkDescriptorSetLayout unboxed_to_boxed_non_dispatchable_VkDescriptorSetLayout(VkDescriptorSetLayout unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDescriptorSetLayout>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkDescriptorSetLayout(VkDescriptorSetLayout boxed, VkDescriptorSetLayout new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkDescriptorSetLayout>(boxed, new_unboxed); |
| } |
| |
| VkDescriptorUpdateTemplate new_boxed_non_dispatchable_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate unboxed) { |
| return new_boxed_VkType<VkDescriptorUpdateTemplate>(unboxed); |
| } |
| |
| void delete_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkDescriptorUpdateTemplate unbox_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed) { |
| return unbox_VkType<VkDescriptorUpdateTemplate>(boxed); |
| } |
| |
| VkDescriptorUpdateTemplate try_unbox_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed) { |
| return try_unbox_VkType<VkDescriptorUpdateTemplate>(boxed); |
| } |
| |
| VkDescriptorUpdateTemplate unboxed_to_boxed_non_dispatchable_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDescriptorUpdateTemplate>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkDescriptorUpdateTemplate(VkDescriptorUpdateTemplate boxed, VkDescriptorUpdateTemplate new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkDescriptorUpdateTemplate>(boxed, new_unboxed); |
| } |
| |
| VkDeviceMemory new_boxed_non_dispatchable_VkDeviceMemory(VkDeviceMemory unboxed) { |
| return new_boxed_VkType<VkDeviceMemory>(unboxed); |
| } |
| |
| void delete_VkDeviceMemory(VkDeviceMemory boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkDeviceMemory(VkDeviceMemory boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkDeviceMemory unbox_VkDeviceMemory(VkDeviceMemory boxed) { |
| return unbox_VkType<VkDeviceMemory>(boxed); |
| } |
| |
| VkDeviceMemory try_unbox_VkDeviceMemory(VkDeviceMemory boxed) { |
| return try_unbox_VkType<VkDeviceMemory>(boxed); |
| } |
| |
| VkDeviceMemory unboxed_to_boxed_non_dispatchable_VkDeviceMemory(VkDeviceMemory unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDeviceMemory>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkDeviceMemory(VkDeviceMemory boxed, VkDeviceMemory new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkDeviceMemory>(boxed, new_unboxed); |
| } |
| |
| VkDisplayKHR new_boxed_non_dispatchable_VkDisplayKHR(VkDisplayKHR unboxed) { |
| return new_boxed_VkType<VkDisplayKHR>(unboxed); |
| } |
| |
| void delete_VkDisplayKHR(VkDisplayKHR boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkDisplayKHR(VkDisplayKHR boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkDisplayKHR unbox_VkDisplayKHR(VkDisplayKHR boxed) { |
| return unbox_VkType<VkDisplayKHR>(boxed); |
| } |
| |
| VkDisplayKHR try_unbox_VkDisplayKHR(VkDisplayKHR boxed) { |
| return try_unbox_VkType<VkDisplayKHR>(boxed); |
| } |
| |
| VkDisplayKHR unboxed_to_boxed_non_dispatchable_VkDisplayKHR(VkDisplayKHR unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDisplayKHR>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkDisplayKHR(VkDisplayKHR boxed, VkDisplayKHR new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkDisplayKHR>(boxed, new_unboxed); |
| } |
| |
| VkDisplayModeKHR new_boxed_non_dispatchable_VkDisplayModeKHR(VkDisplayModeKHR unboxed) { |
| return new_boxed_VkType<VkDisplayModeKHR>(unboxed); |
| } |
| |
| void delete_VkDisplayModeKHR(VkDisplayModeKHR boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkDisplayModeKHR(VkDisplayModeKHR boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkDisplayModeKHR unbox_VkDisplayModeKHR(VkDisplayModeKHR boxed) { |
| return unbox_VkType<VkDisplayModeKHR>(boxed); |
| } |
| |
| VkDisplayModeKHR try_unbox_VkDisplayModeKHR(VkDisplayModeKHR boxed) { |
| return try_unbox_VkType<VkDisplayModeKHR>(boxed); |
| } |
| |
| VkDisplayModeKHR unboxed_to_boxed_non_dispatchable_VkDisplayModeKHR(VkDisplayModeKHR unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkDisplayModeKHR>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkDisplayModeKHR(VkDisplayModeKHR boxed, VkDisplayModeKHR new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkDisplayModeKHR>(boxed, new_unboxed); |
| } |
| |
| VkEvent new_boxed_non_dispatchable_VkEvent(VkEvent unboxed) { |
| return new_boxed_VkType<VkEvent>(unboxed); |
| } |
| |
| void delete_VkEvent(VkEvent boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkEvent(VkEvent boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkEvent unbox_VkEvent(VkEvent boxed) { |
| return unbox_VkType<VkEvent>(boxed); |
| } |
| |
| VkEvent try_unbox_VkEvent(VkEvent boxed) { |
| return try_unbox_VkType<VkEvent>(boxed); |
| } |
| |
| VkEvent unboxed_to_boxed_non_dispatchable_VkEvent(VkEvent unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkEvent>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkEvent(VkEvent boxed, VkEvent new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkEvent>(boxed, new_unboxed); |
| } |
| |
| VkFence new_boxed_non_dispatchable_VkFence(VkFence unboxed) { |
| return new_boxed_VkType<VkFence>(unboxed); |
| } |
| |
| void delete_VkFence(VkFence boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkFence(VkFence boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkFence unbox_VkFence(VkFence boxed) { |
| return unbox_VkType<VkFence>(boxed); |
| } |
| |
| VkFence try_unbox_VkFence(VkFence boxed) { |
| return try_unbox_VkType<VkFence>(boxed); |
| } |
| |
| VkFence unboxed_to_boxed_non_dispatchable_VkFence(VkFence unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkFence>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkFence(VkFence boxed, VkFence new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkFence>(boxed, new_unboxed); |
| } |
| |
| VkFramebuffer new_boxed_non_dispatchable_VkFramebuffer(VkFramebuffer unboxed) { |
| return new_boxed_VkType<VkFramebuffer>(unboxed); |
| } |
| |
| void delete_VkFramebuffer(VkFramebuffer boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkFramebuffer(VkFramebuffer boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkFramebuffer unbox_VkFramebuffer(VkFramebuffer boxed) { |
| return unbox_VkType<VkFramebuffer>(boxed); |
| } |
| |
| VkFramebuffer try_unbox_VkFramebuffer(VkFramebuffer boxed) { |
| return try_unbox_VkType<VkFramebuffer>(boxed); |
| } |
| |
| VkFramebuffer unboxed_to_boxed_non_dispatchable_VkFramebuffer(VkFramebuffer unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkFramebuffer>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkFramebuffer(VkFramebuffer boxed, VkFramebuffer new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkFramebuffer>(boxed, new_unboxed); |
| } |
| |
| VkImage new_boxed_non_dispatchable_VkImage(VkImage unboxed) { |
| return new_boxed_VkType<VkImage>(unboxed); |
| } |
| |
| void delete_VkImage(VkImage boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkImage(VkImage boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkImage unbox_VkImage(VkImage boxed) { |
| return unbox_VkType<VkImage>(boxed); |
| } |
| |
| VkImage try_unbox_VkImage(VkImage boxed) { |
| return try_unbox_VkType<VkImage>(boxed); |
| } |
| |
| VkImage unboxed_to_boxed_non_dispatchable_VkImage(VkImage unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkImage>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkImage(VkImage boxed, VkImage new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkImage>(boxed, new_unboxed); |
| } |
| |
| VkImageView new_boxed_non_dispatchable_VkImageView(VkImageView unboxed) { |
| return new_boxed_VkType<VkImageView>(unboxed); |
| } |
| |
| void delete_VkImageView(VkImageView boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkImageView(VkImageView boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkImageView unbox_VkImageView(VkImageView boxed) { |
| return unbox_VkType<VkImageView>(boxed); |
| } |
| |
| VkImageView try_unbox_VkImageView(VkImageView boxed) { |
| return try_unbox_VkType<VkImageView>(boxed); |
| } |
| |
| VkImageView unboxed_to_boxed_non_dispatchable_VkImageView(VkImageView unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkImageView>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkImageView(VkImageView boxed, VkImageView new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkImageView>(boxed, new_unboxed); |
| } |
| |
| VkIndirectCommandsLayoutNV new_boxed_non_dispatchable_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV unboxed) { |
| return new_boxed_VkType<VkIndirectCommandsLayoutNV>(unboxed); |
| } |
| |
| void delete_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkIndirectCommandsLayoutNV unbox_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed) { |
| return unbox_VkType<VkIndirectCommandsLayoutNV>(boxed); |
| } |
| |
| VkIndirectCommandsLayoutNV try_unbox_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed) { |
| return try_unbox_VkType<VkIndirectCommandsLayoutNV>(boxed); |
| } |
| |
| VkIndirectCommandsLayoutNV unboxed_to_boxed_non_dispatchable_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkIndirectCommandsLayoutNV>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkIndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV boxed, VkIndirectCommandsLayoutNV new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkIndirectCommandsLayoutNV>(boxed, new_unboxed); |
| } |
| |
| VkMicromapEXT new_boxed_non_dispatchable_VkMicromapEXT(VkMicromapEXT unboxed) { |
| return new_boxed_VkType<VkMicromapEXT>(unboxed); |
| } |
| |
| void delete_VkMicromapEXT(VkMicromapEXT boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkMicromapEXT(VkMicromapEXT boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkMicromapEXT unbox_VkMicromapEXT(VkMicromapEXT boxed) { |
| return unbox_VkType<VkMicromapEXT>(boxed); |
| } |
| |
| VkMicromapEXT try_unbox_VkMicromapEXT(VkMicromapEXT boxed) { |
| return try_unbox_VkType<VkMicromapEXT>(boxed); |
| } |
| |
| VkMicromapEXT unboxed_to_boxed_non_dispatchable_VkMicromapEXT(VkMicromapEXT unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkMicromapEXT>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkMicromapEXT(VkMicromapEXT boxed, VkMicromapEXT new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkMicromapEXT>(boxed, new_unboxed); |
| } |
| |
| VkPipeline new_boxed_non_dispatchable_VkPipeline(VkPipeline unboxed) { |
| return new_boxed_VkType<VkPipeline>(unboxed); |
| } |
| |
| void delete_VkPipeline(VkPipeline boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkPipeline(VkPipeline boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkPipeline unbox_VkPipeline(VkPipeline boxed) { |
| return unbox_VkType<VkPipeline>(boxed); |
| } |
| |
| VkPipeline try_unbox_VkPipeline(VkPipeline boxed) { |
| return try_unbox_VkType<VkPipeline>(boxed); |
| } |
| |
| VkPipeline unboxed_to_boxed_non_dispatchable_VkPipeline(VkPipeline unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkPipeline>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkPipeline(VkPipeline boxed, VkPipeline new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkPipeline>(boxed, new_unboxed); |
| } |
| |
| VkPipelineCache new_boxed_non_dispatchable_VkPipelineCache(VkPipelineCache unboxed) { |
| return new_boxed_VkType<VkPipelineCache>(unboxed); |
| } |
| |
| void delete_VkPipelineCache(VkPipelineCache boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkPipelineCache(VkPipelineCache boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkPipelineCache unbox_VkPipelineCache(VkPipelineCache boxed) { |
| return unbox_VkType<VkPipelineCache>(boxed); |
| } |
| |
| VkPipelineCache try_unbox_VkPipelineCache(VkPipelineCache boxed) { |
| return try_unbox_VkType<VkPipelineCache>(boxed); |
| } |
| |
| VkPipelineCache unboxed_to_boxed_non_dispatchable_VkPipelineCache(VkPipelineCache unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkPipelineCache>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkPipelineCache(VkPipelineCache boxed, VkPipelineCache new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkPipelineCache>(boxed, new_unboxed); |
| } |
| |
| VkPipelineLayout new_boxed_non_dispatchable_VkPipelineLayout(VkPipelineLayout unboxed) { |
| return new_boxed_VkType<VkPipelineLayout>(unboxed); |
| } |
| |
| void delete_VkPipelineLayout(VkPipelineLayout boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkPipelineLayout(VkPipelineLayout boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkPipelineLayout unbox_VkPipelineLayout(VkPipelineLayout boxed) { |
| return unbox_VkType<VkPipelineLayout>(boxed); |
| } |
| |
| VkPipelineLayout try_unbox_VkPipelineLayout(VkPipelineLayout boxed) { |
| return try_unbox_VkType<VkPipelineLayout>(boxed); |
| } |
| |
| VkPipelineLayout unboxed_to_boxed_non_dispatchable_VkPipelineLayout(VkPipelineLayout unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkPipelineLayout>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkPipelineLayout(VkPipelineLayout boxed, VkPipelineLayout new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkPipelineLayout>(boxed, new_unboxed); |
| } |
| |
| VkPrivateDataSlot new_boxed_non_dispatchable_VkPrivateDataSlot(VkPrivateDataSlot unboxed) { |
| return new_boxed_VkType<VkPrivateDataSlot>(unboxed); |
| } |
| |
| void delete_VkPrivateDataSlot(VkPrivateDataSlot boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkPrivateDataSlot(VkPrivateDataSlot boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkPrivateDataSlot unbox_VkPrivateDataSlot(VkPrivateDataSlot boxed) { |
| return unbox_VkType<VkPrivateDataSlot>(boxed); |
| } |
| |
| VkPrivateDataSlot try_unbox_VkPrivateDataSlot(VkPrivateDataSlot boxed) { |
| return try_unbox_VkType<VkPrivateDataSlot>(boxed); |
| } |
| |
| VkPrivateDataSlot unboxed_to_boxed_non_dispatchable_VkPrivateDataSlot(VkPrivateDataSlot unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkPrivateDataSlot>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkPrivateDataSlot(VkPrivateDataSlot boxed, VkPrivateDataSlot new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkPrivateDataSlot>(boxed, new_unboxed); |
| } |
| |
| VkQueryPool new_boxed_non_dispatchable_VkQueryPool(VkQueryPool unboxed) { |
| return new_boxed_VkType<VkQueryPool>(unboxed); |
| } |
| |
| void delete_VkQueryPool(VkQueryPool boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkQueryPool(VkQueryPool boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkQueryPool unbox_VkQueryPool(VkQueryPool boxed) { |
| return unbox_VkType<VkQueryPool>(boxed); |
| } |
| |
| VkQueryPool try_unbox_VkQueryPool(VkQueryPool boxed) { |
| return try_unbox_VkType<VkQueryPool>(boxed); |
| } |
| |
| VkQueryPool unboxed_to_boxed_non_dispatchable_VkQueryPool(VkQueryPool unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkQueryPool>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkQueryPool(VkQueryPool boxed, VkQueryPool new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkQueryPool>(boxed, new_unboxed); |
| } |
| |
| VkRenderPass new_boxed_non_dispatchable_VkRenderPass(VkRenderPass unboxed) { |
| return new_boxed_VkType<VkRenderPass>(unboxed); |
| } |
| |
| void delete_VkRenderPass(VkRenderPass boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkRenderPass(VkRenderPass boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkRenderPass unbox_VkRenderPass(VkRenderPass boxed) { |
| return unbox_VkType<VkRenderPass>(boxed); |
| } |
| |
| VkRenderPass try_unbox_VkRenderPass(VkRenderPass boxed) { |
| return try_unbox_VkType<VkRenderPass>(boxed); |
| } |
| |
| VkRenderPass unboxed_to_boxed_non_dispatchable_VkRenderPass(VkRenderPass unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkRenderPass>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkRenderPass(VkRenderPass boxed, VkRenderPass new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkRenderPass>(boxed, new_unboxed); |
| } |
| |
| VkSampler new_boxed_non_dispatchable_VkSampler(VkSampler unboxed) { |
| return new_boxed_VkType<VkSampler>(unboxed); |
| } |
| |
| void delete_VkSampler(VkSampler boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkSampler(VkSampler boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkSampler unbox_VkSampler(VkSampler boxed) { |
| return unbox_VkType<VkSampler>(boxed); |
| } |
| |
| VkSampler try_unbox_VkSampler(VkSampler boxed) { |
| return try_unbox_VkType<VkSampler>(boxed); |
| } |
| |
| VkSampler unboxed_to_boxed_non_dispatchable_VkSampler(VkSampler unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkSampler>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkSampler(VkSampler boxed, VkSampler new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkSampler>(boxed, new_unboxed); |
| } |
| |
| VkSamplerYcbcrConversion new_boxed_non_dispatchable_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion unboxed) { |
| return new_boxed_VkType<VkSamplerYcbcrConversion>(unboxed); |
| } |
| |
| void delete_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkSamplerYcbcrConversion unbox_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed) { |
| return unbox_VkType<VkSamplerYcbcrConversion>(boxed); |
| } |
| |
| VkSamplerYcbcrConversion try_unbox_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed) { |
| return try_unbox_VkType<VkSamplerYcbcrConversion>(boxed); |
| } |
| |
| VkSamplerYcbcrConversion unboxed_to_boxed_non_dispatchable_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkSamplerYcbcrConversion>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkSamplerYcbcrConversion(VkSamplerYcbcrConversion boxed, VkSamplerYcbcrConversion new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkSamplerYcbcrConversion>(boxed, new_unboxed); |
| } |
| |
| VkSemaphore new_boxed_non_dispatchable_VkSemaphore(VkSemaphore unboxed) { |
| return new_boxed_VkType<VkSemaphore>(unboxed); |
| } |
| |
| void delete_VkSemaphore(VkSemaphore boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkSemaphore(VkSemaphore boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkSemaphore unbox_VkSemaphore(VkSemaphore boxed) { |
| return unbox_VkType<VkSemaphore>(boxed); |
| } |
| |
| VkSemaphore try_unbox_VkSemaphore(VkSemaphore boxed) { |
| return try_unbox_VkType<VkSemaphore>(boxed); |
| } |
| |
| VkSemaphore unboxed_to_boxed_non_dispatchable_VkSemaphore(VkSemaphore unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkSemaphore>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkSemaphore(VkSemaphore boxed, VkSemaphore new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkSemaphore>(boxed, new_unboxed); |
| } |
| |
| VkShaderModule new_boxed_non_dispatchable_VkShaderModule(VkShaderModule unboxed) { |
| return new_boxed_VkType<VkShaderModule>(unboxed); |
| } |
| |
| void delete_VkShaderModule(VkShaderModule boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkShaderModule(VkShaderModule boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkShaderModule unbox_VkShaderModule(VkShaderModule boxed) { |
| return unbox_VkType<VkShaderModule>(boxed); |
| } |
| |
| VkShaderModule try_unbox_VkShaderModule(VkShaderModule boxed) { |
| return try_unbox_VkType<VkShaderModule>(boxed); |
| } |
| |
| VkShaderModule unboxed_to_boxed_non_dispatchable_VkShaderModule(VkShaderModule unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkShaderModule>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkShaderModule(VkShaderModule boxed, VkShaderModule new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkShaderModule>(boxed, new_unboxed); |
| } |
| |
| VkSurfaceKHR new_boxed_non_dispatchable_VkSurfaceKHR(VkSurfaceKHR unboxed) { |
| return new_boxed_VkType<VkSurfaceKHR>(unboxed); |
| } |
| |
| void delete_VkSurfaceKHR(VkSurfaceKHR boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkSurfaceKHR(VkSurfaceKHR boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkSurfaceKHR unbox_VkSurfaceKHR(VkSurfaceKHR boxed) { |
| return unbox_VkType<VkSurfaceKHR>(boxed); |
| } |
| |
| VkSurfaceKHR try_unbox_VkSurfaceKHR(VkSurfaceKHR boxed) { |
| return try_unbox_VkType<VkSurfaceKHR>(boxed); |
| } |
| |
| VkSurfaceKHR unboxed_to_boxed_non_dispatchable_VkSurfaceKHR(VkSurfaceKHR unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkSurfaceKHR>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkSurfaceKHR(VkSurfaceKHR boxed, VkSurfaceKHR new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkSurfaceKHR>(boxed, new_unboxed); |
| } |
| |
| VkSwapchainKHR new_boxed_non_dispatchable_VkSwapchainKHR(VkSwapchainKHR unboxed) { |
| return new_boxed_VkType<VkSwapchainKHR>(unboxed); |
| } |
| |
| void delete_VkSwapchainKHR(VkSwapchainKHR boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkSwapchainKHR(VkSwapchainKHR boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkSwapchainKHR unbox_VkSwapchainKHR(VkSwapchainKHR boxed) { |
| return unbox_VkType<VkSwapchainKHR>(boxed); |
| } |
| |
| VkSwapchainKHR try_unbox_VkSwapchainKHR(VkSwapchainKHR boxed) { |
| return try_unbox_VkType<VkSwapchainKHR>(boxed); |
| } |
| |
| VkSwapchainKHR unboxed_to_boxed_non_dispatchable_VkSwapchainKHR(VkSwapchainKHR unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkSwapchainKHR>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkSwapchainKHR(VkSwapchainKHR boxed, VkSwapchainKHR new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkSwapchainKHR>(boxed, new_unboxed); |
| } |
| |
| VkValidationCacheEXT new_boxed_non_dispatchable_VkValidationCacheEXT(VkValidationCacheEXT unboxed) { |
| return new_boxed_VkType<VkValidationCacheEXT>(unboxed); |
| } |
| |
| void delete_VkValidationCacheEXT(VkValidationCacheEXT boxed) { |
| delete_VkType(boxed); |
| } |
| |
| void delayed_delete_VkValidationCacheEXT(VkValidationCacheEXT boxed, VkDevice device, std::function<void()> callback) { |
| delayed_delete_VkType(boxed, device, std::move(callback)); |
| } |
| |
| VkValidationCacheEXT unbox_VkValidationCacheEXT(VkValidationCacheEXT boxed) { |
| return unbox_VkType<VkValidationCacheEXT>(boxed); |
| } |
| |
| VkValidationCacheEXT try_unbox_VkValidationCacheEXT(VkValidationCacheEXT boxed) { |
| return try_unbox_VkType<VkValidationCacheEXT>(boxed); |
| } |
| |
| VkValidationCacheEXT unboxed_to_boxed_non_dispatchable_VkValidationCacheEXT(VkValidationCacheEXT unboxed) { |
| return unboxed_to_boxed_non_dispatchable_VkType<VkValidationCacheEXT>(unboxed); |
| } |
| |
| void set_boxed_non_dispatchable_VkValidationCacheEXT(VkValidationCacheEXT boxed, VkValidationCacheEXT new_unboxed) { |
| set_boxed_non_dispatchable_VkType<VkValidationCacheEXT>(boxed, new_unboxed); |
| } |
| |
| } // namespace vk |
| } // namespace gfxstream |