Skip to content
Snippets Groups Projects
Verified Commit a7511257 authored by Tobias Frisch's avatar Tobias Frisch
Browse files

Adjusted doxygen comments of event templates and features

parent 2c69a94f
No related branches found
No related tags found
1 merge request!97Resolve "Dokumentation vervollständigen"
......@@ -19,11 +19,21 @@
namespace vkcv {
/**
* @brief Template for a function handle to an event
*
* @tparam T Event parameter type list
*/
template<typename... T>
struct event_handle {
uint32_t id;
};
/**
* @brief Template for an event function
*
* @tparam T Event parameter type list
*/
template<typename... T>
struct event_function {
typedef std::function<void(T...)> type;
......@@ -33,8 +43,9 @@ namespace vkcv {
};
/**
* template for event handling
* @tparam T parameter list
* @brief Template for event handling
*
* @tparam T Event parameter type list
*/
template<typename... T>
struct event {
......@@ -53,8 +64,9 @@ namespace vkcv {
public:
/**
* calls all function handles with the given arguments
* @param arguments of the given function
* @brief Calls all function handles with the given arguments.
*
* @param[in,out] arguments Arguments of the given event
*/
void operator()(T... arguments) {
lock();
......@@ -67,9 +79,10 @@ namespace vkcv {
}
/**
* adds a function handle to the event to be called
* @param callback of the function
* @return handle of the function
* @brief Adds a function handle to the event to be called.
*
* @param[in] callback Event callback
* @return Handle of the function
*/
event_handle<T...> add(typename event_function<T...>::type callback) {
event_function<T...> function;
......@@ -80,8 +93,9 @@ namespace vkcv {
}
/**
* removes a function handle of the event
* @param handle of the function
* @brief Removes a function handle of the event.
*
* @param handle Handle of the function
*/
void remove(event_handle<T...> handle) {
this->m_functions.erase(
......@@ -93,7 +107,8 @@ namespace vkcv {
}
/**
* locks the event so its function handles won't be called
* @brief Locks the event so its function handles won't
* be called until unlocked.
*/
void lock() {
#ifndef __MINGW32__
......@@ -106,8 +121,9 @@ namespace vkcv {
}
/**
* unlocks the event so its function handles can be called after locking
*/
* @brief Unlocks the event so its function handles can
* be called after locking.
*/
void unlock() {
#ifndef __MINGW32__
#ifdef __NO_SEMAPHORES__
......
......@@ -47,8 +47,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -57,8 +57,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDevice16BitStorageFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -67,8 +67,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDevice8BitStorageFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -77,8 +77,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceBufferDeviceAddressFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -87,8 +87,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceDescriptorIndexingFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -97,8 +97,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceHostQueryResetFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -107,8 +107,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceImagelessFramebufferFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -117,8 +117,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceMultiviewFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -127,8 +127,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceProtectedMemoryFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -137,8 +137,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceSamplerYcbcrConversionFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -147,8 +147,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceScalarBlockLayoutFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -157,8 +157,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceSeparateDepthStencilLayoutsFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -167,8 +167,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceShaderAtomicInt64Features.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -177,8 +177,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceShaderFloat16Int8Features.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -187,8 +187,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceShaderSubgroupExtendedTypesFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -197,8 +197,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceTimelineSemaphoreFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -207,8 +207,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceUniformBufferStandardLayoutFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -217,8 +217,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceVariablePointersFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -227,8 +227,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceVulkanMemoryModelFeatures.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -237,8 +237,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceMeshShaderFeaturesNV.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -247,8 +247,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceShaderAtomicFloatFeaturesEXT.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -257,8 +257,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceShaderAtomicFloat2FeaturesEXT.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -267,8 +267,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceVulkan12Features.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -277,8 +277,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceVulkan11Features.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -287,8 +287,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceAccelerationStructureFeaturesKHR.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -297,8 +297,8 @@ namespace vkcv {
/**
* @brief Checks support of the @p vk::PhysicalDeviceRayTracingPipelineFeaturesKHR.
*
* @param features The features
* @param required True, if the @p features are required, else false
* @param[in] features The features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the @p features are supported, else @p false
*/
[[nodiscard]]
......@@ -307,7 +307,7 @@ namespace vkcv {
/**
* @brief Searches for a base structure of a given structure type.
*
* @param type Structure type
* @param[in] type Structure type
* @return Pointer to first matching base structure or nullptr
*/
[[nodiscard]]
......@@ -317,7 +317,7 @@ namespace vkcv {
/**
* @brief Constructor of a feature manager with a given physical device.
*
* @param physicalDevice Physical device
* @param[in,out] physicalDevice Physical device
*/
explicit FeatureManager(vk::PhysicalDevice& physicalDevice);
......@@ -326,7 +326,7 @@ namespace vkcv {
/**
* @brief Move-constructor of a feature manager.
*
* @param other Other feature manager instance
* @param[in,out] other Other feature manager instance
*/
FeatureManager(FeatureManager&& other) noexcept;
......@@ -340,7 +340,7 @@ namespace vkcv {
/**
* @brief Move-operator of a feature manager.
*
* @param other Other feature manager instance
* @param[in,out] other Other feature manager instance
* @return Reference to the feature manager itself
*/
FeatureManager& operator=(FeatureManager&& other) noexcept;
......@@ -348,7 +348,7 @@ namespace vkcv {
/**
* @brief Check if a specific extension is supported by the managers physical device.
*
* @param extension Extension identifier string
* @param[in] extension Extension identifier string
* @return @p True, if the @p extension is supported, else @p false
*/
[[nodiscard]]
......@@ -357,8 +357,8 @@ namespace vkcv {
/**
* @brief Activate a specific extension if supported by the managers physical device.
*
* @param extension Extension identifier string
* @param required True, if the @p extension is required, else false
* @param[in] extension Extension identifier string
* @param[in] required True, if the @p extension is required, else false
* @return @p True, if the @p extension could be activated, else @p false
*/
bool useExtension(const std::string& extension, bool required = true);
......@@ -366,7 +366,7 @@ namespace vkcv {
/**
* @brief Check if a specific extension is activated by the manager.
*
* @param extension Extension identifier string
* @param[in] extension Extension identifier string
* @return @p True, if the @p extension is activated, else @p false
*/
[[nodiscard]]
......@@ -383,8 +383,8 @@ namespace vkcv {
/**
* @brief Request specific features for optional or required usage ( only core Vulkan 1.0 ).
*
* @param featureFunction Function or lambda to request specific features
* @param required True, if the @p features are required, else false
* @param[in] featureFunction Function or lambda to request specific features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the requested features could be activated, else @p false
*/
bool useFeatures(const std::function<void(vk::PhysicalDeviceFeatures&)>& featureFunction, bool required = true);
......@@ -393,8 +393,8 @@ namespace vkcv {
* @brief Request specific features for optional or required usage.
*
* @tparam T Template parameter to use specific base structure types
* @param featureFunction Function or lambda to request specific features
* @param required True, if the @p features are required, else false
* @param[in] featureFunction Function or lambda to request specific features
* @param[in] required True, if the @p features are required, else false
* @return @p True, if the requested features could be activated, else @p false
* @see checkSupport()
*/
......
......@@ -37,21 +37,21 @@ namespace vkcv {
/**
* @brief Constructor of a features instance with a given list of extension identifier strings.
*
* @param list List of extension identifier strings
* @param[in] list List of extension identifier strings
*/
Features(const std::initializer_list<std::string>& list);
/**
* @brief Copy-constructor of a features instance.
*
* @param other Other features instance
* @param[in] other Other features instance
*/
Features(const Features& other) = default;
/**
* @brief Move-constructor of a features instance.
*
* @param other Other features instance
* @param[in,out] other Other features instance
*/
Features(Features&& other) = default;
......@@ -63,7 +63,7 @@ namespace vkcv {
/**
* @brief Copy-operator of a features instance.
*
* @param other Other features instance
* @param[in] other Other features instance
* @return Reference to the features instance itself
*/
Features& operator=(const Features& other) = default;
......@@ -71,7 +71,7 @@ namespace vkcv {
/**
* @brief Move-operator of a features instance.
*
* @param other Other features instance
* @param[in,out] other Other features instance
* @return Reference to the features instance itself
*/
Features& operator=(Features&& other) = default;
......@@ -79,15 +79,15 @@ namespace vkcv {
/**
* @brief Request a specific extension as required.
*
* @param extension Extension identifier string
* @param[in] extension Extension identifier string
*/
void requireExtension(const std::string& extension);
/**
* @brief Request a specific extension and some of its features as required ( only core Vulkan 1.0 ).
*
* @param extension Extension identifier string
* @param featureFunction
* @param[in] extension Extension identifier string
* @param[in] featureFunction
*/
void requireExtensionFeature(const std::string& extension,
const std::function<void(vk::PhysicalDeviceFeatures&)>& featureFunction);
......@@ -96,8 +96,8 @@ namespace vkcv {
* @brief Request a specific extension and some of its features as required.
*
* @tparam T Template parameter to use specific base structure types
* @param extension Extension identifier string
* @param featureFunction Function or lambda to request specific features
* @param[in] extension Extension identifier string
* @param[in] featureFunction Function or lambda to request specific features
*/
template<typename T>
void requireExtensionFeature(const std::string& extension, const std::function<void(T&)>& featureFunction) {
......@@ -113,7 +113,7 @@ namespace vkcv {
/**
* @brief Request a specific set of features as required ( only core Vulkan 1.0 ).
*
* @param featureFunction Function or lambda to request specific features
* @param[in] featureFunction Function or lambda to request specific features
*/
void requireFeature(const std::function<void(vk::PhysicalDeviceFeatures&)>& featureFunction);
......@@ -121,7 +121,7 @@ namespace vkcv {
* @brief Request a specific set of features as required.
*
* @tparam T Template parameter to use specific base structure types
* @param featureFunction Function or lambda to request specific features
* @param[in] featureFunction Function or lambda to request specific features
*/
template<typename T>
void requireFeature(const std::function<void(T&)>& featureFunction) {
......@@ -133,15 +133,15 @@ namespace vkcv {
/**
* @brief Request a specific extension as optional.
*
* @param extension Extension identifier string
* @param[in] extension Extension identifier string
*/
void tryExtension(const std::string& extension);
/**
* @brief Request a specific extension and some of its features as optional ( only core Vulkan 1.0 ).
*
* @param extension Extension identifier string
* @param featureFunction Function or lambda to request specific features
* @param[in] extension Extension identifier string
* @param[in] featureFunction Function or lambda to request specific features
*/
void tryExtensionFeature(const std::string& extension,
const std::function<void(vk::PhysicalDeviceFeatures&)>& featureFunction);
......@@ -150,8 +150,8 @@ namespace vkcv {
* @brief Request a specific extension and some of its features as optional.
*
* @tparam T Template parameter to use specific base structure types
* @param extension Extension identifier string
* @param featureFunction Function or lambda to request specific features
* @param[in] extension Extension identifier string
* @param[in] featureFunction Function or lambda to request specific features
*/
template<typename T>
void tryExtensionFeature(const std::string& extension, const std::function<void(T&)>& featureFunction) {
......@@ -167,7 +167,7 @@ namespace vkcv {
/**
* @brief Request a specific set of features as optional ( only core Vulkan 1.0 ).
*
* @param featureFunction Function or lambda to request specific features
* @param[in] featureFunction Function or lambda to request specific features
*/
void tryFeature(const std::function<void(vk::PhysicalDeviceFeatures&)>& featureFunction);
......@@ -175,7 +175,7 @@ namespace vkcv {
* @brief Request a specific set of features as optional.
*
* @tparam T Template parameter to use specific base structure types
* @param featureFunction Function or lambda to request specific features
* @param[in] featureFunction Function or lambda to request specific features
*/
template<typename T>
void tryFeature(const std::function<void(T&)>& featureFunction) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment