diff --git a/doc/vulkan-wrapping.dox b/doc/vulkan-wrapping.dox index d74385302..8a4a4a7c2 100644 --- a/doc/vulkan-wrapping.dox +++ b/doc/vulkan-wrapping.dox @@ -26,6 +26,7 @@ namespace Magnum { /** @page vulkan-wrapping Vulkan wrapping layer @brief Overview of the base Vulkan wrapper API +@m_since_latest @tableofcontents @m_footernavigation diff --git a/doc/vulkan.dox b/doc/vulkan.dox index 71035fe46..5416fd05e 100644 --- a/doc/vulkan.dox +++ b/doc/vulkan.dox @@ -27,6 +27,7 @@ namespace Magnum { /** @page vulkan Vuulkan @brief State of Vulkan support, version and extension requirements. +@m_since_latest The following table maps Vulkan function names to Magnum API, useful for developers with existing Vulkan background. Note that, as reverse mapping, each diff --git a/src/Magnum/Vk/Buffer.h b/src/Magnum/Vk/Buffer.h index 85db17d20..0177e9c34 100644 --- a/src/Magnum/Vk/Buffer.h +++ b/src/Magnum/Vk/Buffer.h @@ -52,14 +52,31 @@ Wraps a @type_vk_keyword{BufferUsageFlagBits}. @m_enum_values_as_keywords */ enum class BufferUsage: UnsignedInt { + /** Source of a transfer command */ TransferSource = VK_BUFFER_USAGE_TRANSFER_SRC_BIT, + + /** Destination of a transfer command */ TransferDestination = VK_BUFFER_USAGE_TRANSFER_DST_BIT, + + /** Suitable for creating a uniform texel buffer view */ UniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, + + /** Suitable for creating a storage texel buffer view */ StorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, + + /** Suitable for a uniform buffer */ UniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, + + /** Suitable for a storage buffer */ StorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, + + /** Suitable for an index buffer */ IndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT, + + /** Suitable for a vertex buffer */ VertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, + + /** Suitable for a indirect draw buffer */ IndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, /** @todo VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, 1.2 */ diff --git a/src/Magnum/Vk/DeviceProperties.h b/src/Magnum/Vk/DeviceProperties.h index 101fab0b3..93dce9eec 100644 --- a/src/Magnum/Vk/DeviceProperties.h +++ b/src/Magnum/Vk/DeviceProperties.h @@ -246,8 +246,12 @@ MAGNUM_VK_EXPORT Debug& operator<<(Debug& debug, MemoryHeapFlags value); @m_since_latest Wraps a @type_vk_keyword{PhysicalDevice} along with its (lazy-populated) -properties such as @type_vk_keyword{PhysicalDeviceProperties2} and -@type_vk_keyword{GetPhysicalDeviceQueueFamilyProperties2}. +properties such as @type_vk_keyword{PhysicalDeviceProperties2}, +@type_vk_keyword{PhysicalDeviceQueueFamilyProperties2} and +@type_vk_keyword{PhysicalDeviceMemoryProperties2}, which are a superset +of @type_vk_keyword{PhysicalDeviceProperties}, +@type_vk_keyword{PhysicalDeviceQueueFamilyProperties} and +@type_vk_keyword{PhysicalDeviceMemoryProperties}. See the @ref Vk-Device-usage "Device class docs" for an example of using this class for enumerating available devices and picking one of them. diff --git a/src/Magnum/Vk/ExtensionProperties.h b/src/Magnum/Vk/ExtensionProperties.h index 4935f6e30..28a27b8ee 100644 --- a/src/Magnum/Vk/ExtensionProperties.h +++ b/src/Magnum/Vk/ExtensionProperties.h @@ -266,7 +266,10 @@ Expects that all listed layers are supported. */ MAGNUM_VK_EXPORT InstanceExtensionProperties enumerateInstanceExtensionProperties(Containers::ArrayView layers = {}); -/** @overload */ +/** + * @overload + * @m_since_latest + */ MAGNUM_VK_EXPORT InstanceExtensionProperties enumerateInstanceExtensionProperties(std::initializer_list layers); }} diff --git a/src/Magnum/Vk/Integration.h b/src/Magnum/Vk/Integration.h index 8e9954cab..ce856d36a 100644 --- a/src/Magnum/Vk/Integration.h +++ b/src/Magnum/Vk/Integration.h @@ -32,21 +32,22 @@ Provides conversion for the following types: | Magnum type | Equivalent Vulkan type | | ------------------------------------- | ----------------------------- | -| @ref Magnum::Vector2i "Vector2i" | @type_vk{Offset2D}, @type_vk{Extent2D} | -| @ref Magnum::Vector3i "Vector3i" | @type_vk{Offset3D}, @type_vk{Extent3D} | -| @ref Magnum::Vector2ui "Vector2ui" | @type_vk{Extent2D} | -| @ref Magnum::Vector3ui "Vector3ui" | @type_vk{Extent3D} | -| @ref Magnum::Vector4 "Vector4", @ref Magnum::Color4 "Color4", @ref Magnum::Vector4i "Vector4i", @ref Magnum::Vector4ui "Vector4ui" | @type_vk{ClearColorValue} | +| @ref Magnum::Vector2i "Vector2i" | @type_vk_keyword{Offset2D}, @type_vk_keyword{Extent2D} | +| @ref Magnum::Vector3i "Vector3i" | @type_vk_keyword{Offset3D}, @type_vk_keyword{Extent3D} | +| @ref Magnum::Vector2ui "Vector2ui" | @type_vk_keyword{Extent2D} | +| @ref Magnum::Vector3ui "Vector3ui" | @type_vk_keyword{Extent3D} | +| @ref Magnum::Vector4 "Vector4", @ref Magnum::Color4 "Color4", @ref Magnum::Vector4i "Vector4i", @ref Magnum::Vector4ui "Vector4ui" | @type_vk_keyword{ClearColorValue} | | @ref Magnum::Vector3 "Vector3", @ref Magnum::Color3 "Color3" | @type_vk{ClearColorValue} | -| @ref Magnum::Range3D "Range3D" | @type_vk{Viewport} | -| @ref Magnum::Range2Di "Range2Di" | @type_vk{Rect2D} | -| @ref Magnum::Range3Di "Range3Di" | @type_vk{ClearRect} | +| @ref Magnum::Range3D "Range3D" | @type_vk_keyword{Viewport} | +| @ref Magnum::Range2Di "Range2Di" | @type_vk_keyword{Rect2D} | +| @ref Magnum::Range3Di "Range3Di" | @type_vk_keyword{ClearRect} | @type_vk{ClearColorValue} is an @cpp union @ce, so it's convertible from/to a floating-point type as well as integer types, but you have to ensure the type -is correct for the API call it'll used in. Conversion of @type_vk{ClearColorValue} -to @ref Magnum::Color3 "Color3" is not allowed, as it would lead to loss of the -alpha value. In the other direction, alpha is set to @cpp 1.0f @ce. +is correct for the API call it'll be used in. Conversion of +@type_vk{ClearColorValue} to @ref Magnum::Color3 "Color3" is not allowed, as it +would lead to loss of the alpha value. In the other direction, alpha is set to +@cpp 1.0f @ce. Third dimension of @type_vk{Viewport} is a depth range, third dimension of @type_vk{ClearRect} is an attachment layer range. In both cases you can use diff --git a/src/Magnum/Vk/Result.h b/src/Magnum/Vk/Result.h index 4a82ca287..1b1030874 100644 --- a/src/Magnum/Vk/Result.h +++ b/src/Magnum/Vk/Result.h @@ -42,7 +42,8 @@ namespace Magnum { namespace Vk { Wraps a @type_vk_keyword{Result}. @m_enum_values_as_keywords -@see @ref MAGNUM_VK_INTERNAL_ASSERT_SUCCESS() +@see @ref MAGNUM_VK_INTERNAL_ASSERT_SUCCESS(), + @ref MAGNUM_VK_INTERNAL_ASSERT_SUCCESS_OR_INCOMPLETE() */ enum class Result: Int { /** Command successfully completed */ diff --git a/src/Magnum/Vk/vk-info.cpp b/src/Magnum/Vk/vk-info.cpp index dbad22f64..ff6f71f34 100644 --- a/src/Magnum/Vk/vk-info.cpp +++ b/src/Magnum/Vk/vk-info.cpp @@ -37,6 +37,7 @@ namespace Magnum { /** @page magnum-vk-info Magnum Vulkan Info @brief Displays information about Magnum engine Vulkan capabilities +@m_since_latest @m_footernavigation @m_keywords{magnum-vk-info vk-info}