summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp
diff options
context:
space:
mode:
authorDavid Edmundson <kde@davidedmundson.co.uk>2023-03-31 10:15:08 +0100
committerDavid Edmundson <davidedmundson@kde.org>2023-06-01 14:13:12 +0000
commit4cfd0da3d914822c76824d0bde4953b40794cb2a (patch)
treea176ef2f5eb410ef15fd1b222358424904726d99 /src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp
parent5043973b14e9cc77bd8f4a199c25f36c5f951b8e (diff)
Client: Guard our surface from being destroyed whilst rendering from Vulkan
Change-Id: Ibac173b769186b49251bad9b94c71b9ccea26a7e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp')
-rw-r--r--src/plugins/platforms/wayland/qwaylandvulkaninstance.cpp20
1 files changed, 20 insertions, 0 deletions
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<QWaylandWindow *>(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<QWaylandWindow *>(window->handle());
+ if (!w) {
+ qWarning() << "Attempted to call endFrame() without a valid platform window";
+ return;
+ }
+ w->endFrame();
+}
+
} // namespace QtWaylandClient
QT_END_NAMESPACE