diff options
author | JiDe Zhang <zhangjide@uniontech.com> | 2022-05-01 22:55:58 +0800 |
---|---|---|
committer | JiDe Zhang <zhangjide@uniontech.com> | 2022-05-04 20:14:49 +0800 |
commit | 84491e555134ee7a5ae0d8cfec4b2e7a0cfe56cc (patch) | |
tree | 6671a0bb3a20f1122ee1cfe43b4de9c7c213d20c /src/gui/vulkan/qvulkaninstance.cpp | |
parent | 953512ec84f04e7a8c7c8ac2410ba6c6f34de2b8 (diff) |
Export the QVulkanInstancePrivate class
When needs by the QVulkanInstance::setVkInstance to use a existing
VkInstance to a QQuickWindow, the VkInstance maybe is from a non Qt
render system, in the case, the QPlatformVulkanInstance object of
QVulkanInstance is can't create from the QPA, the all vulkan information
is need get from the VkInstance owner(eg, getInstanceProcAddr). But
providing it with a public interface is not a good idea, so by exporting
a private class, you can use a private interface where needed to achieve
the above purpose.
Task-number: QTBUG-103021
Change-Id: I0312adcf55cfd7d49889ed112ab237c0b3ab3ef6
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/gui/vulkan/qvulkaninstance.cpp')
-rw-r--r-- | src/gui/vulkan/qvulkaninstance.cpp | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/src/gui/vulkan/qvulkaninstance.cpp b/src/gui/vulkan/qvulkaninstance.cpp index aaa8691273..05353e36c2 100644 --- a/src/gui/vulkan/qvulkaninstance.cpp +++ b/src/gui/vulkan/qvulkaninstance.cpp @@ -37,8 +37,7 @@ ** ****************************************************************************/ -#include "qvulkaninstance.h" -#include <private/qvulkanfunctions_p.h> +#include "qvulkaninstance_p.h" #include <qpa/qplatformvulkaninstance.h> #include <qpa/qplatformintegration.h> #include <qpa/qplatformnativeinterface.h> @@ -245,32 +244,6 @@ QT_BEGIN_NAMESPACE \value NoDebugOutputRedirect Disables Vulkan debug output (\c{VK_EXT_debug_report}) redirection to qDebug. */ -class QVulkanInstancePrivate -{ -public: - QVulkanInstancePrivate(QVulkanInstance *q) - : q_ptr(q), - vkInst(VK_NULL_HANDLE), - errorCode(VK_SUCCESS) - { } - ~QVulkanInstancePrivate() { reset(); } - - 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; -}; - bool QVulkanInstancePrivate::ensureVulkan() { if (!platformInst) { |