diff --git a/src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp b/src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp index 2f95ff3077a..be55130a422 100644 --- a/src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp +++ b/src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp @@ -101,6 +101,26 @@ void QWaylandVulkanInstance::presentAboutToBeQueued(QWindow *window) w->handleUpdate(); } +void QWaylandVulkanInstance::beginFrame(QWindow *window) +{ + auto *w = static_cast(window->handle()); + if (!w) { + qWarning() << "Attempted to call beginFrame() without a valid platform window"; + return; + } + w->beginFrame(); +} + +void QWaylandVulkanInstance::endFrame(QWindow *window) +{ + auto *w = static_cast(window->handle()); + if (!w) { + qWarning() << "Attempted to call endFrame() without a valid platform window"; + return; + } + w->endFrame(); +} + } // namespace QtWaylandClient QT_END_NAMESPACE diff --git a/src/plugins/platforms/wayland/qwaylandvulkaninstance_p.h b/src/plugins/platforms/wayland/qwaylandvulkaninstance_p.h index abeca95db1c..7683ce5664e 100644 --- a/src/plugins/platforms/wayland/qwaylandvulkaninstance_p.h +++ b/src/plugins/platforms/wayland/qwaylandvulkaninstance_p.h @@ -42,6 +42,9 @@ public: VkSurfaceKHR createSurface(QWaylandWindow *window); + void beginFrame(QWindow *window) override; + void endFrame(QWindow *window) override; + private: QVulkanInstance *m_instance = nullptr; PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR m_getPhysDevPresSupport = nullptr;