From 7d69fd3ca90c99d2465dee0213fa2730e8776f1e Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Wed, 8 Jan 2025 15:50:10 +0100 Subject: [PATCH] Improve error handling --- openVulkanoCpp/AR/Provider/ArKit/ArSessionArKit.mm | 6 +++++- openVulkanoCpp/Vulkan/Metal/MetalTextureCache.mm | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/openVulkanoCpp/AR/Provider/ArKit/ArSessionArKit.mm b/openVulkanoCpp/AR/Provider/ArKit/ArSessionArKit.mm index f1f75ed..e71b1a8 100644 --- a/openVulkanoCpp/AR/Provider/ArKit/ArSessionArKit.mm +++ b/openVulkanoCpp/AR/Provider/ArKit/ArSessionArKit.mm @@ -19,10 +19,14 @@ namespace OpenVulkano::AR::ArKit } } - std::shared_ptr ArSessionArKit::Create(const ArSessionConfig& config) + std::shared_ptr ArSessionArKit::Create(const ArSessionConfig& config) try { return std::dynamic_pointer_cast(std::make_shared(config)); } + catch (NSException* e) + { + throw std::runtime_error(e.description.cString); + } bool ArSessionArKit::IsAvailable() { diff --git a/openVulkanoCpp/Vulkan/Metal/MetalTextureCache.mm b/openVulkanoCpp/Vulkan/Metal/MetalTextureCache.mm index 46b36cc..536753e 100644 --- a/openVulkanoCpp/Vulkan/Metal/MetalTextureCache.mm +++ b/openVulkanoCpp/Vulkan/Metal/MetalTextureCache.mm @@ -57,7 +57,7 @@ namespace OpenVulkano::Vulkan void MetalTextureCache::Close() { m_mtlToVkTextureMap.clear(); - m_eventHandler->SetInvalid(); + if (m_eventHandler) m_eventHandler->SetInvalid(); m_renderer = nullptr; m_resourceManager = nullptr; //TODO delete the texture cache object?