blob: 27dc5383cf64d9193706dbe51f035681ba18580a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
// Copyright (C) 2022 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 QVULKANINSTANCE_P_H
#define QVULKANINSTANCE_P_H
#include <QtGui/private/qtguiglobal_p.h>
#if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC)
#include "qvulkaninstance.h"
#include <private/qvulkanfunctions_p.h>
#include <QtCore/QHash>
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists for the convenience
// of a number of Qt sources files. This header file may change from
// version to version without notice, or even be removed.
//
// We mean it.
//
QT_BEGIN_NAMESPACE
class Q_GUI_EXPORT QVulkanInstancePrivate
{
public:
QVulkanInstancePrivate(QVulkanInstance *q)
: q_ptr(q),
vkInst(VK_NULL_HANDLE),
errorCode(VK_SUCCESS)
{ }
~QVulkanInstancePrivate() { reset(); }
static QVulkanInstancePrivate *get(QVulkanInstance *q) { return q->d_ptr.data(); }
bool ensureVulkan();
void reset();
QVulkanInstance *q_ptr;
QScopedPointer<QPlatformVulkanInstance> platformInst;
VkInstance vkInst;
QVulkanInstance::Flags flags;
QByteArrayList layers;
QByteArrayList extensions;
QVersionNumber apiVersion;
VkResult errorCode;
QScopedPointer<QVulkanFunctions> funcs;
QHash<VkDevice, QVulkanDeviceFunctions *> deviceFuncs;
QList<QVulkanInstance::DebugFilter> debugFilters;
};
QT_END_NAMESPACE
#endif // QT_CONFIG(vulkan)
#endif // QVULKANINSTANCE_P_H
|