15class QOhosVulkanSurface
17 Q_DISABLE_COPY_MOVE(QOhosVulkanSurface)
19 QOhosVulkanSurface() =
default;
21 void setNativeWindowSurface(::OHNativeWindow *nativeWindow);
22 VkSurfaceKHR *tryGetOrCreateVulkanWindowSurface(VkInstance instance,
23 PFN_vkCreateSurfaceOHOS createFn,
24 PFN_vkDestroySurfaceKHR destroyFn);
27 struct VulkanSurface {
28 Q_DISABLE_COPY_MOVE(VulkanSurface)
31 PFN_vkDestroySurfaceKHR destroyFunc;
32 VulkanSurface(VkInstance inst, VkSurfaceKHR surf, PFN_vkDestroySurfaceKHR fn)
33 : instance(inst), surface(surf), destroyFunc(fn)
38 destroyFunc(instance, surface,
nullptr);
42 ::OHNativeWindow *m_nativeWindow =
nullptr;
43 ::OHNativeWindow *m_surfaceNativeWindow =
nullptr;
44 std::optional<VulkanSurface> m_vulkanSurface = std::nullopt;