Magnum::Vk::InstanceExtensionProperties class new in Git master

Instance extension properties.

Provides a searchable container of Vulkan device extensions enumerated with enumerateInstanceExtensionProperties().

Base classes

class ExtensionProperties new in Git master
Extension properties.

Constructors, destructors, conversion operators

InstanceExtensionProperties(NoCreateT) explicit
Construct without populating the contents.
InstanceExtensionProperties(const InstanceExtensionProperties&) deleted
Copying is not allowed.
InstanceExtensionProperties(InstanceExtensionProperties&&) noexcept
Move constructor.

Public functions

auto operator=(const InstanceExtensionProperties&) -> InstanceExtensionProperties& deleted
Copying is not allowed.
auto operator=(InstanceExtensionProperties&&) -> InstanceExtensionProperties& noexcept
Move assignment.
auto isSupported(Containers::StringView extension, UnsignedInt revision = 1) const -> bool
Whether given extension is supported.
auto isSupported(const InstanceExtension& extension, UnsignedInt revision = 1) const -> bool
template<class E>
auto isSupported(UnsignedInt revision = 1) const -> bool
auto revision(UnsignedInt id) const -> UnsignedInt
Extension revision.
auto revision(Containers::StringView extension) const -> UnsignedInt
Revision of a particular extension name.
auto revision(const InstanceExtension& extension) const -> UnsignedInt
template<class E>
auto revision() const -> UnsignedInt

Function documentation

Magnum::Vk::InstanceExtensionProperties::InstanceExtensionProperties(NoCreateT) explicit

Construct without populating the contents.

Equivalent to a moved-from state. Move over the result of enumerateInstanceExtensionProperties() to make it usable.

bool Magnum::Vk::InstanceExtensionProperties::isSupported(Containers::StringView extension, UnsignedInt revision = 1) const

Whether given extension is supported.

Parameters
extension Extension string
revision Minimal required revision. If the extension is present but in an older revision, the function returns false.

Since extension strings are easy to mistype, you're encouraged to use the other overloads such as isSupported(UnsignedInt) const together with extensions from the Extensions namespace.

Search complexity is $ \mathcal{O}(\log n) $ in the total extension count; in contrast extension queries on a created instance are $ \mathcal{O}(1) $ .

bool Magnum::Vk::InstanceExtensionProperties::isSupported(const InstanceExtension& extension, UnsignedInt revision = 1) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class E>
bool Magnum::Vk::InstanceExtensionProperties::isSupported(UnsignedInt revision = 1) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

UnsignedInt Magnum::Vk::InstanceExtensionProperties::revision(UnsignedInt id) const

Extension revision.

Parameters
id Extension index, expected to be smaller than count()

UnsignedInt Magnum::Vk::InstanceExtensionProperties::revision(Containers::StringView extension) const

Revision of a particular extension name.

If the extension is not supported, returns 0, supported extensions always have a non-zero revision. If the extension is implemented by more than one layer, returns revision of the first layer implementing it — use revision(UnsignedInt) const to get revision of a concrete extension in a concrete layer.

UnsignedInt Magnum::Vk::InstanceExtensionProperties::revision(const InstanceExtension& extension) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class E>
UnsignedInt Magnum::Vk::InstanceExtensionProperties::revision() const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.