5#ifndef QPLATFORMVULKANINSTANCE_H
6#define QPLATFORMVULKANINSTANCE_H
17#include <QtGui/qtguiglobal.h>
19#if QT_CONFIG(vulkan) || defined(Q_QDOC)
21#include <qvulkaninstance.h>
25class QPlatformVulkanInstancePrivate;
27class Q_GUI_EXPORT QPlatformVulkanInstance
29 Q_DECLARE_PRIVATE(QPlatformVulkanInstance)
32 QPlatformVulkanInstance();
33 virtual ~QPlatformVulkanInstance();
35 virtual QVulkanInfoVector<QVulkanLayer> supportedLayers()
const = 0;
36 virtual QVulkanInfoVector<QVulkanExtension> supportedExtensions()
const = 0;
37 virtual QVersionNumber supportedApiVersion()
const = 0;
38 virtual void createOrAdoptInstance() = 0;
39 virtual bool isValid()
const = 0;
40 virtual VkResult errorCode()
const = 0;
41 virtual VkInstance vkInstance()
const = 0;
42 virtual QByteArrayList enabledLayers()
const = 0;
43 virtual QByteArrayList enabledExtensions()
const = 0;
44 virtual PFN_vkVoidFunction getInstanceProcAddr(
const char *name) = 0;
45 virtual bool supportsPresent(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, QWindow *window) = 0;
46 virtual void presentAboutToBeQueued(QWindow *window);
47 virtual void presentQueued(QWindow *window);
48 virtual void setDebugFilters(
const QList<QVulkanInstance::DebugFilter> &filters);
49 virtual void setDebugUtilsFilters(
const QList<QVulkanInstance::DebugUtilsFilter> &filters);
50 virtual void beginFrame(QWindow *window);
51 virtual void endFrame(QWindow *window);
54 QScopedPointer<QPlatformVulkanInstancePrivate> d_ptr;
55 Q_DISABLE_COPY(QPlatformVulkanInstance)
64
65
66
67
68
69
70
71#ifndef QVULKANFUNCTIONS_H
72#define QVULKANFUNCTIONS_H
74#include <QtGui/qtguiglobal.h>
76#if QT_CONFIG(vulkan) || defined(Q_QDOC)
78#ifndef VK_NO_PROTOTYPES
79#define VK_NO_PROTOTYPES
81#include <vulkan/vulkan.h>
83#include <QtCore/qscopedpointer.h>
88class QVulkanFunctionsPrivate;
89class QVulkanDeviceFunctionsPrivate;
91class Q_GUI_EXPORT QVulkanFunctions
97 Q_DISABLE_COPY(QVulkanFunctions)
98 QVulkanFunctions(QVulkanInstance *inst);
100 QScopedPointer<QVulkanFunctionsPrivate> d_ptr;
101 friend class QVulkanInstance;
104class Q_GUI_EXPORT QVulkanDeviceFunctions
107 ~QVulkanDeviceFunctions();
110 Q_DISABLE_COPY(QVulkanDeviceFunctions)
111 QVulkanDeviceFunctions(QVulkanInstance *inst, VkDevice device);
113 QScopedPointer<QVulkanDeviceFunctionsPrivate> d_ptr;
114 friend class QVulkanInstance;