12 : m_instance(instance)
29 if (!cocoaWindow->m_vulkanSurface)
30 cocoaWindow->m_vulkanSurface = createSurface(cocoaWindow->
m_view);
31 return &cocoaWindow->m_vulkanSurface;
34VkSurfaceKHR QCocoaVulkanInstance::createSurface(NSView *
view)
36 if (!m_createSurface) {
37 m_createSurface =
reinterpret_cast<PFN_vkCreateMacOSSurfaceMVK
>(
40 if (!m_createSurface) {
41 qWarning(
"Failed to find vkCreateMacOSSurfaceMVK");
45 VkMacOSSurfaceCreateInfoMVK surfaceInfo;
46 surfaceInfo.sType = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK;
47 surfaceInfo.pNext =
nullptr;
48 surfaceInfo.flags = 0;
49 surfaceInfo.pView =
view.layer;
52 VkResult err = m_createSurface(
m_vkInst, &surfaceInfo,
nullptr, &
surface);
53 if (err != VK_SUCCESS)
54 qWarning(
"Failed to create Vulkan surface: %d", err);
VkSurfaceKHR * surface(QWindow *window)
void createOrAdoptInstance() override
QCocoaVulkanInstance(QVulkanInstance *instance)
The QVulkanInstance class represents a native Vulkan instance, enabling Vulkan rendering onto a QSurf...
Combined button and popup list for selecting options.
#define QByteArrayLiteral(str)
#define QStringLiteral(str)