Fix Qt6 build with Vulkan on Linux.

This commit is contained in:
Jean-Philip Desjardins 2024-02-19 14:10:20 -05:00
parent 1a6a554f43
commit 3eb0b9852b

View file

@ -2,14 +2,17 @@
#include "vulkan/StructDefs.h"
#include "vulkan/Loader.h"
#include <QWindow>
#include <QGuiApplication>
#ifdef __APPLE__
#include <MoltenVK/vk_mvk_moltenvk.h>
#endif
#ifdef __linux__
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#include <QX11Info>
#endif
#endif
CGSH_VulkanQt::CGSH_VulkanQt(QWindow* renderWindow)
: m_renderWindow(renderWindow)
@ -42,7 +45,11 @@ void CGSH_VulkanQt::InitializeImpl()
#ifdef __linux__
auto surfaceCreateInfo = Framework::Vulkan::XcbSurfaceCreateInfoKHR();
surfaceCreateInfo.window = static_cast<xcb_window_t>(m_renderWindow->winId());
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
surfaceCreateInfo.connection = qGuiApp->nativeInterface<QNativeInterface::QX11Application>()->connection();
#else
surfaceCreateInfo.connection = QX11Info::connection();
#endif
auto result = m_instance.vkCreateXcbSurfaceKHR(m_instance, &surfaceCreateInfo, nullptr, &m_context->surface);
CHECKVULKANERROR(result);
#endif