Make getter const, add const overloads

The supportedApiVersions member is new in Qt 6.1, make it const.

We can't change supportedLayers and supportedExtensions, but we can
add const overloads that call the non-const version for now. This
way, those APIs can also be called on const QVulkanInstance
instances or references.

Addresses header review comment.

Change-Id: Ie99d74f62cad72990b42566e56234b9c686e86de
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit 69dcdbc8daa2c40397dd021fc31c47ad528d9d83)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Volker Hilsheimer 2021-03-25 10:28:26 +01:00 committed by Qt Cherry-pick Bot
parent ee520939c8
commit c55d9c2d90
2 changed files with 17 additions and 2 deletions

View File

@ -428,20 +428,30 @@ QVulkanInstance::~QVulkanInstance()
*/
/*!
\fn QVulkanInfoVector<QVulkanLayer> QVulkanInstance::supportedLayers() const
\return the list of supported instance-level layers.
\note This function can be called before create().
*/
/*!
\internal
*/
QVulkanInfoVector<QVulkanLayer> QVulkanInstance::supportedLayers()
{
return d_ptr->ensureVulkan() ? d_ptr->platformInst->supportedLayers() : QVulkanInfoVector<QVulkanLayer>();
}
/*!
\fn QVulkanInfoVector<QVulkanExtension> QVulkanInstance::supportedExtensions() const
\return the list of supported instance-level extensions.
\note This function can be called before create().
*/
/*!
\internal
*/
QVulkanInfoVector<QVulkanExtension> QVulkanInstance::supportedExtensions()
{
return d_ptr->ensureVulkan() ? d_ptr->platformInst->supportedExtensions() : QVulkanInfoVector<QVulkanExtension>();
@ -464,7 +474,7 @@ QVulkanInfoVector<QVulkanExtension> QVulkanInstance::supportedExtensions()
\sa setApiVersion()
*/
QVersionNumber QVulkanInstance::supportedApiVersion()
QVersionNumber QVulkanInstance::supportedApiVersion() const
{
return d_ptr->ensureVulkan() ? d_ptr->platformInst->supportedApiVersion() : QVersionNumber();
}

View File

@ -174,9 +174,14 @@ public:
};
Q_DECLARE_FLAGS(Flags, Flag)
// ### Qt 7: remove non-const overloads
QVulkanInfoVector<QVulkanLayer> supportedLayers();
inline QVulkanInfoVector<QVulkanLayer> supportedLayers() const
{ return const_cast<QVulkanInstance*>(this)->supportedLayers(); }
QVulkanInfoVector<QVulkanExtension> supportedExtensions();
QVersionNumber supportedApiVersion();
inline QVulkanInfoVector<QVulkanExtension> supportedExtensions() const
{ return const_cast<QVulkanInstance*>(this)->supportedExtensions(); }
QVersionNumber supportedApiVersion() const;
void setVkInstance(VkInstance existingVkInstance);