diff options
-rw-r--r-- | src/gui/kernel/qplatformintegration.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qplatformintegration.h | 2 | ||||
-rw-r--r-- | src/gui/kernel/qwindow.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qwindow.h | 5 | ||||
-rw-r--r-- | src/gui/vulkan/qplatformvulkaninstance.h | 61 |
5 files changed, 67 insertions, 5 deletions
diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp index 873ec3a33b..151151de23 100644 --- a/src/gui/kernel/qplatformintegration.cpp +++ b/src/gui/kernel/qplatformintegration.cpp @@ -629,7 +629,7 @@ void QPlatformIntegration::setApplicationIcon(const QIcon &icon) const Q_UNUSED(icon); } -#if QT_CONFIG(vulkan) +#if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) /*! Factory function for QPlatformVulkanInstance. The \a instance parameter is a diff --git a/src/gui/kernel/qplatformintegration.h b/src/gui/kernel/qplatformintegration.h index eeaa7574f7..a7d9a87502 100644 --- a/src/gui/kernel/qplatformintegration.h +++ b/src/gui/kernel/qplatformintegration.h @@ -192,7 +192,7 @@ public: virtual void beep() const; -#if QT_CONFIG(vulkan) +#if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) virtual QPlatformVulkanInstance *createPlatformVulkanInstance(QVulkanInstance *instance) const; #endif diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 3e5777ad49..2c7e061bcf 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -2841,7 +2841,7 @@ QDebug operator<<(QDebug debug, const QWindow *window) } #endif // !QT_NO_DEBUG_STREAM -#if QT_CONFIG(vulkan) +#if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) /*! Associates this window with the specified Vulkan \a instance. diff --git a/src/gui/kernel/qwindow.h b/src/gui/kernel/qwindow.h index ac5543f884..439e62d0bd 100644 --- a/src/gui/kernel/qwindow.h +++ b/src/gui/kernel/qwindow.h @@ -88,7 +88,7 @@ class QWindowContainer; #ifndef QT_NO_DEBUG_STREAM class QDebug; #endif -#if QT_CONFIG(vulkan) +#if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) class QVulkanInstance; #endif @@ -270,7 +270,7 @@ public: static QWindow *fromWinId(WId id); -#if QT_CONFIG(vulkan) +#if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) void setVulkanInstance(QVulkanInstance *instance); QVulkanInstance *vulkanInstance() const; #endif @@ -378,6 +378,7 @@ private: }; #ifndef Q_QDOC +// should these be seen by clang-qdoc? template <> inline QWindow *qobject_cast<QWindow*>(QObject *o) { if (!o || !o->isWindowType()) return nullptr; diff --git a/src/gui/vulkan/qplatformvulkaninstance.h b/src/gui/vulkan/qplatformvulkaninstance.h index 9470e2d0b4..9f34803f7b 100644 --- a/src/gui/vulkan/qplatformvulkaninstance.h +++ b/src/gui/vulkan/qplatformvulkaninstance.h @@ -88,4 +88,65 @@ QT_END_NAMESPACE #endif // QT_CONFIG(vulkan) +#if defined(Q_CLANG_QDOC) +/* + The following include file did not exist for clang-qdoc running + in macOS, but the classes are documented in qvulkanfunctions.cpp. + clang-qdoc must parse the class declarations in an include file, + or else it can't find a place to put the documentation for the + classes. Apparently these classes are created at build time if + Vulkan is present. + */ +#ifndef QVULKANFUNCTIONS_H +#define QVULKANFUNCTIONS_H + +#include <QtGui/qtguiglobal.h> + +#if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) + +#ifndef VK_NO_PROTOTYPES +#define VK_NO_PROTOTYPES +#endif +#include <vulkan/vulkan.h> + +#include <QtCore/qscopedpointer.h> + +QT_BEGIN_NAMESPACE + +class QVulkanInstance; +class QVulkanFunctionsPrivate; +class QVulkanDeviceFunctionsPrivate; + +class Q_GUI_EXPORT QVulkanFunctions +{ +public: + ~QVulkanFunctions(); + +private: + Q_DISABLE_COPY(QVulkanFunctions) + QVulkanFunctions(QVulkanInstance *inst); + + QScopedPointer<QVulkanFunctionsPrivate> d_ptr; + friend class QVulkanInstance; +}; + +class Q_GUI_EXPORT QVulkanDeviceFunctions +{ +public: + ~QVulkanDeviceFunctions(); + +private: + Q_DISABLE_COPY(QVulkanDeviceFunctions) + QVulkanDeviceFunctions(QVulkanInstance *inst, VkDevice device); + + QScopedPointer<QVulkanDeviceFunctionsPrivate> d_ptr; + friend class QVulkanInstance; +}; + +QT_END_NAMESPACE + +#endif // QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) +#endif // QVULKANFUNCTIONS_H; +#endif // Q_CLANG_QDOC + #endif // QPLATFORMVULKANINSTANCE_H |