From 8b9b3e2f29e06106ac6b3bc4cc60bc0a13ec0083 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 17 Jan 2018 11:40:45 +0100 Subject: doc: Fix remaining qdoc warmings for Vulkan stuff MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Several uses of #if QT_CONFIG(vulkan) were modified to for classes QVulkanFunctions and QVulkanDeviceFunctions was added to qplatformvulkaninstance.h, because the include file that contains them doesn't exist when vulkan isn't there. Change-Id: I392202ab5fe9bb4c558a991870e6ebf79254aec0 Reviewed-by: Topi Reiniƶ --- src/gui/kernel/qplatformintegration.cpp | 2 +- src/gui/kernel/qplatformintegration.h | 2 +- src/gui/kernel/qwindow.cpp | 2 +- src/gui/kernel/qwindow.h | 5 +-- 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(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 + +#if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) + +#ifndef VK_NO_PROTOTYPES +#define VK_NO_PROTOTYPES +#endif +#include + +#include + +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 d_ptr; + friend class QVulkanInstance; +}; + +class Q_GUI_EXPORT QVulkanDeviceFunctions +{ +public: + ~QVulkanDeviceFunctions(); + +private: + Q_DISABLE_COPY(QVulkanDeviceFunctions) + QVulkanDeviceFunctions(QVulkanInstance *inst, VkDevice device); + + QScopedPointer 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 -- cgit v1.2.3