summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-12-24 03:40:32 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-12-24 03:40:32 +0000
commit604b9ef1a83ffc02eb90f48d5ca7bd5ed78ce8c4 (patch)
tree18f48291890de1ca8b909b5dbf6252991cc7b917 /Graphics/GraphicsEngineVulkan
parentA bunch of minor changes to fix clang warnings and errors (diff)
downloadDiligentCore-604b9ef1a83ffc02eb90f48d5ca7bd5ed78ce8c4.tar.gz
DiligentCore-604b9ef1a83ffc02eb90f48d5ca7bd5ed78ce8c4.zip
Enabled Vulkan build on macOS
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/CMakeLists.txt16
-rw-r--r--Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp4
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 = {};