4#ifndef QPLATFORMVULKANINSTANCE_H
5#define QPLATFORMVULKANINSTANCE_H
16#include <QtGui/qtguiglobal.h>
18#if QT_CONFIG(vulkan) || defined(Q_QDOC)
20#include <qvulkaninstance.h>
24class QPlatformVulkanInstancePrivate;
26class Q_GUI_EXPORT QPlatformVulkanInstance
28 Q_DECLARE_PRIVATE(QPlatformVulkanInstance)
31 QPlatformVulkanInstance();
32 virtual ~QPlatformVulkanInstance();
34 virtual QVulkanInfoVector<QVulkanLayer> supportedLayers()
const = 0;
35 virtual QVulkanInfoVector<QVulkanExtension> supportedExtensions()
const = 0;
36 virtual QVersionNumber supportedApiVersion()
const = 0;
37 virtual void createOrAdoptInstance() = 0;
38 virtual bool isValid()
const = 0;
39 virtual VkResult errorCode()
const = 0;
40 virtual VkInstance vkInstance()
const = 0;
41 virtual QByteArrayList enabledLayers()
const = 0;
42 virtual QByteArrayList enabledExtensions()
const = 0;
43 virtual PFN_vkVoidFunction getInstanceProcAddr(
const char *name) = 0;
44 virtual bool supportsPresent(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, QWindow *window) = 0;
45 virtual void presentAboutToBeQueued(QWindow *window);
46 virtual void presentQueued(QWindow *window);
47 virtual void setDebugFilters(
const QList<QVulkanInstance::DebugFilter> &filters);
48 virtual void setDebugUtilsFilters(
const QList<QVulkanInstance::DebugUtilsFilter> &filters);
49 virtual void beginFrame(QWindow *window);
50 virtual void endFrame(QWindow *window);
53 QScopedPointer<QPlatformVulkanInstancePrivate> d_ptr;
54 Q_DISABLE_COPY(QPlatformVulkanInstance)
63
64
65
66
67
68
69
70#ifndef QVULKANFUNCTIONS_H
71#define QVULKANFUNCTIONS_H
73#include <QtGui/qtguiglobal.h>
75#if QT_CONFIG(vulkan) || defined(Q_QDOC)
77#ifndef VK_NO_PROTOTYPES
78#define VK_NO_PROTOTYPES
80#include <vulkan/vulkan.h>
82#include <QtCore/qscopedpointer.h>
87class QVulkanFunctionsPrivate;
88class QVulkanDeviceFunctionsPrivate;
90class Q_GUI_EXPORT QVulkanFunctions
96 Q_DISABLE_COPY(QVulkanFunctions)
97 QVulkanFunctions(QVulkanInstance *inst);
99 QScopedPointer<QVulkanFunctionsPrivate> d_ptr;
100 friend class QVulkanInstance;
103class Q_GUI_EXPORT QVulkanDeviceFunctions
106 ~QVulkanDeviceFunctions();
109 Q_DISABLE_COPY(QVulkanDeviceFunctions)
110 QVulkanDeviceFunctions(QVulkanInstance *inst, VkDevice device);
112 QScopedPointer<QVulkanDeviceFunctionsPrivate> d_ptr;
113 friend class QVulkanInstance;