diff --git a/openVulkanoCpp/Vulkan/Context.cpp b/openVulkanoCpp/Vulkan/Context.cpp index 59706f5..b430379 100644 --- a/openVulkanoCpp/Vulkan/Context.cpp +++ b/openVulkanoCpp/Vulkan/Context.cpp @@ -12,6 +12,9 @@ #include "Base/EngineConstants.hpp" #include "Base/UI/IVulkanWindow.hpp" #include "Debuging/ValidationLayer.hpp" +#if __has_include("vulkan/vulkan_metal.h") +#include +#endif namespace OpenVulkano::Vulkan { @@ -62,9 +65,14 @@ namespace OpenVulkano::Vulkan vk::ApplicationInfo appInfo(graphicsAppManager->GetGraphicsApp()->GetAppName().c_str(), static_cast(graphicsAppManager->GetGraphicsApp()->GetAppVersion()), ENGINE_NAME, ENGINE_VERSION.intVersion, VK_MAKE_VERSION(1, 1, 0)); std::vector extensions = Utils::toCString(requiredExtensions), layers = Debug::GetValidationLayers(); - const vk::InstanceCreateInfo createInfo(vk::InstanceCreateFlags(), &appInfo, enableValidationLayer ? layers.size() : 0, + vk::InstanceCreateInfo createInfo(vk::InstanceCreateFlags(), &appInfo, enableValidationLayer ? layers.size() : 0, layers.data(), extensions.size(), extensions.data()); +#ifdef __APPLE__ + VkExportMetalObjectCreateInfoEXT metalExportInfo { VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT, nullptr, VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT }; + createInfo.pNext = &metalExportInfo; +#endif + instance = vk::createInstance(createInfo); if (enableValidationLayer) Debug::SetupValidationLayers(instance, vk::DebugReportFlagBitsEXT::eError | vk::DebugReportFlagBitsEXT::eWarning | vk::DebugReportFlagBitsEXT::ePerformanceWarning /*| vk::DebugReportFlagBitsEXT::eInformation | vk::DebugReportFlagBitsEXT::eDebug*/); diff --git a/openVulkanoCpp/Vulkan/Renderer.hpp b/openVulkanoCpp/Vulkan/Renderer.hpp index b56d686..f981bae 100644 --- a/openVulkanoCpp/Vulkan/Renderer.hpp +++ b/openVulkanoCpp/Vulkan/Renderer.hpp @@ -76,5 +76,7 @@ namespace OpenVulkano::Vulkan void RecordSecondaryBuffer(Data::ReadOnlyAtomicArrayQueue* jobQueue, uint32_t poolId); ResourceManager& GetResourceManager() { return resourceManager; } + + Context& GetContext() { return context; } }; } diff --git a/openVulkanoCpp/Vulkan/Scene/VulkanTexture.hpp b/openVulkanoCpp/Vulkan/Scene/VulkanTexture.hpp index f4be6f7..7893a4c 100644 --- a/openVulkanoCpp/Vulkan/Scene/VulkanTexture.hpp +++ b/openVulkanoCpp/Vulkan/Scene/VulkanTexture.hpp @@ -12,6 +12,7 @@ #include "Vulkan/Resources/ResourceManager.hpp" #include "Vulkan/Scene/VulkanShader.hpp" #include "Scene/Texture.hpp" +#include "Scene/Shader/Shader.hpp" namespace OpenVulkano::Vulkan {