summaryrefslogtreecommitdiffstats
path: root/src/core/compositor/compositor.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/compositor/compositor.h')
-rw-r--r--src/core/compositor/compositor.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/core/compositor/compositor.h b/src/core/compositor/compositor.h
index 9cadab4d4..7c6590134 100644
--- a/src/core/compositor/compositor.h
+++ b/src/core/compositor/compositor.h
@@ -4,10 +4,16 @@
#ifndef COMPOSITOR_H
#define COMPOSITOR_H
+#include <QtGui/qtguiglobal.h>
#include <QtWebEngineCore/private/qtwebenginecoreglobal_p.h>
+#if QT_CONFIG(webengine_vulkan)
+#include <QVulkanInstance>
+#endif
+
QT_BEGIN_NAMESPACE
class QImage;
+class QQuickWindow;
class QSize;
QT_END_NAMESPACE
@@ -31,6 +37,7 @@ public:
enum class Type {
Software,
OpenGL,
+ Vulkan,
};
// Identifies a compositor.
@@ -139,6 +146,17 @@ public:
// (OpenGL) Texture of the frame.
virtual int textureId();
+#if QT_CONFIG(webengine_vulkan)
+ // (Vulkan) VkImage of the frame.
+ virtual VkImage vkImage(QQuickWindow *win);
+
+ // (Vulkan) Layout for vkImage().
+ virtual VkImageLayout vkImageLayout();
+
+ // (Vulkan) Release Vulkan resources created by Qt's Vulkan instance.
+ virtual void releaseVulkanResources(QQuickWindow *win);
+#endif
+
protected:
Compositor(Type type) : m_type(type) { }
virtual ~Compositor() { if (m_binding) unbind(); }