diff options
Diffstat (limited to 'src/plugins/platforms/vkkhrdisplay/qvkkhrdisplayintegration.h')
-rw-r--r-- | src/plugins/platforms/vkkhrdisplay/qvkkhrdisplayintegration.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/plugins/platforms/vkkhrdisplay/qvkkhrdisplayintegration.h b/src/plugins/platforms/vkkhrdisplay/qvkkhrdisplayintegration.h new file mode 100644 index 0000000000..a80b831226 --- /dev/null +++ b/src/plugins/platforms/vkkhrdisplay/qvkkhrdisplayintegration.h @@ -0,0 +1,52 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QPLATFORMINTEGRATION_VKKHRDISPLAY_H +#define QPLATFORMINTEGRATION_VKKHRDISPLAY_H + +#include <qpa/qplatformintegration.h> +#include <qpa/qplatformnativeinterface.h> +#include <qpa/qplatformscreen.h> + +QT_BEGIN_NAMESPACE + +class QVkKhrDisplayScreen; +class QVkKhrDisplayVulkanInstance; +class QFbVtHandler; + +class QVkKhrDisplayIntegration : public QPlatformIntegration, public QPlatformNativeInterface +{ +public: + explicit QVkKhrDisplayIntegration(const QStringList ¶meters); + ~QVkKhrDisplayIntegration(); + + void initialize() override; + + bool hasCapability(QPlatformIntegration::Capability cap) const override; + QPlatformFontDatabase *fontDatabase() const override; + QPlatformServices *services() const override; + QPlatformInputContext *inputContext() const override; + QPlatformTheme *createPlatformTheme(const QString &name) const override; + QPlatformNativeInterface *nativeInterface() const override; + + QPlatformWindow *createPlatformWindow(QWindow *window) const override; + QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const override; + QAbstractEventDispatcher *createEventDispatcher() const override; + QPlatformVulkanInstance *createPlatformVulkanInstance(QVulkanInstance *instance) const override; + + void *nativeResourceForWindow(const QByteArray &resource, QWindow *window) override; + +private: + static void handleInstanceCreated(QVkKhrDisplayVulkanInstance *, void *); + void createInputHandlers(); + + mutable QPlatformFontDatabase *m_fontDatabase = nullptr; + mutable QPlatformServices *m_services = nullptr; + QPlatformInputContext *m_inputContext = nullptr; + QFbVtHandler *m_vtHandler = nullptr; + QVkKhrDisplayScreen *m_primaryScreen = nullptr; +}; + +QT_END_NAMESPACE + +#endif |