diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2018-12-24 03:40:32 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2018-12-24 03:40:32 +0000 |
| commit | 604b9ef1a83ffc02eb90f48d5ca7bd5ed78ce8c4 (patch) | |
| tree | 18f48291890de1ca8b909b5dbf6252991cc7b917 /Graphics/GraphicsEngineVulkan | |
| parent | A bunch of minor changes to fix clang warnings and errors (diff) | |
| download | DiligentCore-604b9ef1a83ffc02eb90f48d5ca7bd5ed78ce8c4.tar.gz DiligentCore-604b9ef1a83ffc02eb90f48d5ca7bd5ed78ce8c4.zip | |
Enabled Vulkan build on macOS
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
| -rw-r--r-- | Graphics/GraphicsEngineVulkan/CMakeLists.txt | 16 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp | 4 |
2 files changed, 17 insertions, 3 deletions
diff --git a/Graphics/GraphicsEngineVulkan/CMakeLists.txt b/Graphics/GraphicsEngineVulkan/CMakeLists.txt index 6bb043f5..a0401154 100644 --- a/Graphics/GraphicsEngineVulkan/CMakeLists.txt +++ b/Graphics/GraphicsEngineVulkan/CMakeLists.txt @@ -178,6 +178,8 @@ set(PRIVATE_DEPENDENCIES if(PLATFORM_WIN32) find_library(Vulkan_LIBRARY NAMES vulkan-1 vulkan PATHS "../../External/vulkan/libs") +elseif(PLATFORM_MACOS) + find_library(Vulkan_LIBRARY NAMES MoltenVK PATHS "../../External/vulkan/libs/macOS" REQUIRED) else() find_library(Vulkan_LIBRARY NAMES vulkan HINTS "$ENV{VULKAN_SDK}/lib" "../../External/vulkan/libs" REQUIRED) endif() @@ -197,10 +199,22 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR set_target_properties(GraphicsEngineVk-shared PROPERTIES CXX_VISIBILITY_PRESET hidden) # -fvisibility=hidden endif() +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + # Disable the following clang warning + # '<function name>' hides overloaded virtual function + # as hiding is intended + target_compile_options(GraphicsEngineVk-static PRIVATE -Wno-overloaded-virtual) + target_compile_options(GraphicsEngineVk-shared PRIVATE -Wno-overloaded-virtual) +endif() + if(PLATFORM_WIN32) set(PRIVATE_COMPILE_DEFINITIONS VK_USE_PLATFORM_WIN32_KHR=1 NOMINMAX) elseif(PLATFORM_LINUX) set(PRIVATE_COMPILE_DEFINITIONS VK_USE_PLATFORM_XCB_KHR=1) +elseif(PLATFORM_MACOS) + set(PRIVATE_COMPILE_DEFINITIONS VK_USE_PLATFORM_MACOS_MVK=1) +elseif(PLATFORM_IOS) + set(PRIVATE_COMPILE_DEFINITIONS VK_USE_PLATFORM_IOS_MVK=1) else() message(FATAL_ERROR "Unknown platform") endif() @@ -260,4 +274,4 @@ set_target_properties(ProcessGenerateMipsVkShader PROPERTIES if(INSTALL_DILIGENT_CORE) install_core_lib(GraphicsEngineVk-shared) install_core_lib(GraphicsEngineVk-static) -endif()
\ No newline at end of file +endif() diff --git a/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp index 89b05416..d7434bae 100644 --- a/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp @@ -57,12 +57,12 @@ SwapChainVkImpl::SwapChainVkImpl(IReferenceCounters* pRefCounters, #elif defined(VK_USE_PLATFORM_IOS_MVK) VkIOSSurfaceCreateInfoMVK surfaceCreateInfo = {}; surfaceCreateInfo.sType = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK; - surfaceCreateInfo.pView = nullptr; + surfaceCreateInfo.pView = pNativeWndHandle; auto err = vkCreateIOSSurfaceMVK(m_VulkanInstance->GetVkInstance(), &surfaceCreateInfo, nullptr, &m_VkSurface); #elif defined(VK_USE_PLATFORM_MACOS_MVK) VkMacOSSurfaceCreateInfoMVK surfaceCreateInfo = {}; surfaceCreateInfo.sType = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK; - surfaceCreateInfo.pView = nullptr; + surfaceCreateInfo.pView = pNativeWndHandle; auto err = vkCreateMacOSSurfaceMVK(m_VulkanInstance->GetVkInstance(), &surfaceCreateInfo, NULL, &m_VkSurface); #elif defined(VK_USE_PLATFORM_WAYLAND_KHR) VkWaylandSurfaceCreateInfoKHR surfaceCreateInfo = {}; |
