Browse Source

doc: change all "latest" additions/deprecations to 2020.06.

pull/454/head
Vladimír Vondruš 6 years ago
parent
commit
5222cf3478
  1. 2
      src/Magnum/Animation/Track.h
  2. 8
      src/Magnum/Audio/AbstractImporter.h
  3. 2
      src/Magnum/Audio/Buffer.h
  4. 14
      src/Magnum/DebugTools/ColorMap.h
  5. 16
      src/Magnum/DebugTools/FrameProfiler.h
  6. 4
      src/Magnum/DebugTools/Profiler.h
  7. 18
      src/Magnum/GL/AbstractShaderProgram.h
  8. 4
      src/Magnum/GL/AbstractTexture.h
  9. 34
      src/Magnum/GL/Attribute.h
  10. 6
      src/Magnum/GL/Buffer.h
  11. 2
      src/Magnum/GL/BufferTexture.h
  12. 10
      src/Magnum/GL/Mesh.h
  13. 16
      src/Magnum/GL/MeshView.h
  14. 4
      src/Magnum/GL/PipelineStatisticsQuery.h
  15. 4
      src/Magnum/GL/PixelFormat.h
  16. 44
      src/Magnum/GL/Renderer.h
  17. 94
      src/Magnum/Magnum.h
  18. 2
      src/Magnum/Math/DualComplex.h
  19. 4
      src/Magnum/Math/DualQuaternion.h
  20. 14
      src/Magnum/Math/Frustum.h
  21. 4
      src/Magnum/Math/Functions.h
  22. 10
      src/Magnum/Math/FunctionsBatch.h
  23. 62
      src/Magnum/Math/PackingBatch.h
  24. 2
      src/Magnum/Math/Quaternion.h
  25. 8
      src/Magnum/Math/Range.h
  26. 4
      src/Magnum/Math/Tags.h
  27. 6
      src/Magnum/Math/TypeTraits.h
  28. 12
      src/Magnum/Mesh.h
  29. 12
      src/Magnum/MeshTools/Combine.h
  30. 10
      src/Magnum/MeshTools/CombineIndexedArrays.h
  31. 18
      src/Magnum/MeshTools/Compile.h
  32. 24
      src/Magnum/MeshTools/CompressIndices.h
  33. 10
      src/Magnum/MeshTools/Concatenate.h
  34. 14
      src/Magnum/MeshTools/Duplicate.h
  35. 20
      src/Magnum/MeshTools/FlipNormals.h
  36. 24
      src/Magnum/MeshTools/GenerateIndices.h
  37. 4
      src/Magnum/MeshTools/GenerateNormals.h
  38. 22
      src/Magnum/MeshTools/Interleave.h
  39. 10
      src/Magnum/MeshTools/Reference.h
  40. 48
      src/Magnum/MeshTools/RemoveDuplicates.h
  41. 8
      src/Magnum/MeshTools/Subdivide.h
  42. 6
      src/Magnum/MeshTools/Tipsify.h
  43. 2
      src/Magnum/MeshTools/sceneconverter.cpp
  44. 4
      src/Magnum/PixelFormat.h
  45. 2
      src/Magnum/Platform/AbstractXApplication.h
  46. 8
      src/Magnum/Platform/EmscriptenApplication.h
  47. 50
      src/Magnum/Platform/GlfwApplication.h
  48. 2
      src/Magnum/Platform/ScreenedApplication.h
  49. 40
      src/Magnum/Platform/Sdl2Application.h
  50. 8
      src/Magnum/Platform/WindowlessCglApplication.h
  51. 10
      src/Magnum/Platform/WindowlessEglApplication.h
  52. 8
      src/Magnum/Platform/WindowlessGlxApplication.h
  53. 8
      src/Magnum/Platform/WindowlessWglApplication.h
  54. 8
      src/Magnum/Platform/WindowlessWindowsEglApplication.h
  55. 12
      src/Magnum/Primitives/Capsule.h
  56. 20
      src/Magnum/Primitives/Circle.h
  57. 6
      src/Magnum/Primitives/Cone.h
  58. 6
      src/Magnum/Primitives/Cylinder.h
  59. 8
      src/Magnum/Primitives/Grid.h
  60. 2
      src/Magnum/Primitives/Icosphere.h
  61. 12
      src/Magnum/Primitives/Plane.h
  62. 10
      src/Magnum/Primitives/Square.h
  63. 12
      src/Magnum/Primitives/UVSphere.h
  64. 8
      src/Magnum/SceneGraph/AbstractTranslationRotation2D.h
  65. 8
      src/Magnum/SceneGraph/AbstractTranslationRotation3D.h
  66. 4
      src/Magnum/SceneGraph/DualComplexTransformation.h
  67. 4
      src/Magnum/SceneGraph/DualQuaternionTransformation.h
  68. 4
      src/Magnum/SceneGraph/MatrixTransformation2D.h
  69. 2
      src/Magnum/SceneGraph/MatrixTransformation2D.hpp
  70. 4
      src/Magnum/SceneGraph/MatrixTransformation3D.h
  71. 2
      src/Magnum/SceneGraph/MatrixTransformation3D.hpp
  72. 4
      src/Magnum/SceneGraph/RigidMatrixTransformation2D.h
  73. 2
      src/Magnum/SceneGraph/RigidMatrixTransformation2D.hpp
  74. 4
      src/Magnum/SceneGraph/RigidMatrixTransformation3D.h
  75. 2
      src/Magnum/SceneGraph/RigidMatrixTransformation3D.hpp
  76. 10
      src/Magnum/Shaders/DistanceFieldVector.h
  77. 16
      src/Magnum/Shaders/Flat.h
  78. 12
      src/Magnum/Shaders/Generic.h
  79. 46
      src/Magnum/Shaders/MeshVisualizer.h
  80. 18
      src/Magnum/Shaders/Phong.h
  81. 10
      src/Magnum/Shaders/Vector.h
  82. 4
      src/Magnum/Tags.h
  83. 8
      src/Magnum/Text/AbstractFont.h
  84. 8
      src/Magnum/Text/AbstractFontConverter.h
  85. 20
      src/Magnum/Trade/AbstractImageConverter.h
  86. 116
      src/Magnum/Trade/AbstractImporter.h
  87. 16
      src/Magnum/Trade/AbstractSceneConverter.h
  88. 24
      src/Magnum/Trade/AnimationData.h
  89. 4
      src/Magnum/Trade/ArrayAllocator.h
  90. 10
      src/Magnum/Trade/Data.h
  91. 24
      src/Magnum/Trade/ImageData.h
  92. 20
      src/Magnum/Trade/MeshData.h
  93. 6
      src/Magnum/Trade/MeshData2D.h
  94. 6
      src/Magnum/Trade/MeshData3D.h
  95. 36
      src/Magnum/Trade/PhongMaterialData.h
  96. 28
      src/Magnum/VertexFormat.h
  97. 4
      src/Magnum/Vk/Enums.h

2
src/Magnum/Animation/Track.h

@ -493,7 +493,7 @@ template<class K> class TrackViewStorage {
/**
* @brief Type-erased value data
* @m_since_latest
* @m_since{2020,06}
*
* Use @ref TrackView and @ref TrackView::values() to get a typed view,
* alternatively you can cast to a concrete type using

8
src/Magnum/Audio/AbstractImporter.h

@ -38,7 +38,7 @@ namespace Magnum { namespace Audio {
/**
@brief Features supported by an audio importer
@m_since_latest
@m_since{2020,06}
@see @ref ImporterFeatures, @ref AbstractImporter::features()
*/
@ -49,7 +49,7 @@ enum class ImporterFeature: UnsignedByte {
/**
@brief Features supported by an audio importer
@m_since_latest
@m_since{2020,06}
@see @ref AbstractImporter::features()
*/
@ -110,12 +110,12 @@ class MAGNUM_AUDIO_EXPORT AbstractImporter: public PluginManager::AbstractManagi
public:
#ifdef MAGNUM_BUILD_DEPRECATED
/** @brief @copybrief ImporterFeature
* @m_deprecated_since_latest Use @ref ImporterFeature instead.
* @m_deprecated_since{2020,06} Use @ref ImporterFeature instead.
*/
typedef CORRADE_DEPRECATED("use ImporterFeature instead") ImporterFeature Feature;
/** @brief @copybrief ImporterFeatures
* @m_deprecated_since_latest Use @ref ImporterFeatures instead.
* @m_deprecated_since{2020,06} Use @ref ImporterFeatures instead.
*/
typedef CORRADE_DEPRECATED("use ImporterFeatures instead") ImporterFeatures Features;
#endif

2
src/Magnum/Audio/Buffer.h

@ -120,7 +120,7 @@ class MAGNUM_AUDIO_EXPORT Buffer {
/**
* @brief Buffer frequency
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref size(), @ref channels(), @ref bitDepth(),
* @ref sampleCount()

14
src/Magnum/DebugTools/ColorMap.h

@ -27,7 +27,7 @@
/** @file
* @brief Namespace @ref Magnum::DebugTools::ColorMap
* @m_since_latest
* @m_since{2020,06}
*/
#include "Magnum/Magnum.h"
@ -37,7 +37,7 @@ namespace Magnum { namespace DebugTools {
/**
@brief Color maps
@m_since_latest
@m_since{2020,06}
A collection of predefined color maps for visualization of gradient data.
@ -127,7 +127,7 @@ namespace ColorMap {
/**
@brief Turbo colormap
@m_since_latest
@m_since{2020,06}
@image html colormap-turbo.png width=100%
@ -142,7 +142,7 @@ MAGNUM_DEBUGTOOLS_EXPORT Containers::StaticArrayView<256, const Vector3ub> turbo
/**
@brief Magma colormap
@m_since_latest
@m_since{2020,06}
@image html colormap-magma.png width=100%
@ -158,7 +158,7 @@ MAGNUM_DEBUGTOOLS_EXPORT Containers::StaticArrayView<256, const Vector3ub> magma
/**
@brief Plasma colormap
@m_since_latest
@m_since{2020,06}
@image html colormap-plasma.png width=100%
@ -174,7 +174,7 @@ MAGNUM_DEBUGTOOLS_EXPORT Containers::StaticArrayView<256, const Vector3ub> plasm
/**
@brief Inferno colormap
@m_since_latest
@m_since{2020,06}
@image html colormap-inferno.png width=100%
@ -190,7 +190,7 @@ MAGNUM_DEBUGTOOLS_EXPORT Containers::StaticArrayView<256, const Vector3ub> infer
/**
@brief Viridis colormap
@m_since_latest
@m_since{2020,06}
@image html colormap-viridis.png width=100%

16
src/Magnum/DebugTools/FrameProfiler.h

@ -27,7 +27,7 @@
/** @file
* @brief Class @ref Magnum::DebugTools::FrameProfiler, @ref Magnum::DebugTools::GLFrameProfiler
* @m_since_latest
* @m_since{2020,06}
*/
#include <string>
@ -41,7 +41,7 @@ namespace Magnum { namespace DebugTools {
/**
@brief Frame profiler
@m_since_latest
@m_since{2020,06}
A generic implementation of a frame profiler supporting a moving average over
a set of frames as well as delayed measurements to avoid stalls when querying
@ -486,14 +486,14 @@ class MAGNUM_DEBUGTOOLS_EXPORT FrameProfiler::Measurement {
/**
@debugoperatorclassenum{FrameProfiler,FrameProfiler::Units}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_DEBUGTOOLS_EXPORT Debug& operator<<(Debug& debug, FrameProfiler::Units value);
#ifdef MAGNUM_TARGET_GL
/**
@brief OpenGL frame profiler
@m_since_latest
@m_since{2020,06}
A @ref FrameProfiler with OpenGL-specific measurements. Instantiate with a
desired subset of measured values and then continue the same way as described
@ -700,13 +700,13 @@ CORRADE_ENUMSET_OPERATORS(GLFrameProfiler::Values)
/**
@debugoperatorclassenum{GLFrameProfiler,GLFrameProfiler::Value}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_DEBUGTOOLS_EXPORT Debug& operator<<(Debug& debug, GLFrameProfiler::Value value);
/**
@debugoperatorclassenum{GLFrameProfiler,GLFrameProfiler::Values}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_DEBUGTOOLS_EXPORT Debug& operator<<(Debug& debug, GLFrameProfiler::Values value);
#endif
@ -718,7 +718,7 @@ namespace Corrade { namespace Utility {
#ifdef MAGNUM_TARGET_GL
/**
@configurationvalue{Magnum::DebugTools::GLFrameProfiler::Value}
@m_since_latest
@m_since{2020,06}
*/
template<> struct MAGNUM_DEBUGTOOLS_EXPORT ConfigurationValue<Magnum::DebugTools::GLFrameProfiler::Value> {
ConfigurationValue() = delete;
@ -740,7 +740,7 @@ template<> struct MAGNUM_DEBUGTOOLS_EXPORT ConfigurationValue<Magnum::DebugTools
/**
@configurationvalue{Magnum::DebugTools::GLFrameProfiler::Values}
@m_since_latest
@m_since{2020,06}
*/
template<> struct MAGNUM_DEBUGTOOLS_EXPORT ConfigurationValue<Magnum::DebugTools::GLFrameProfiler::Values> {
ConfigurationValue() = delete;

4
src/Magnum/DebugTools/Profiler.h

@ -28,7 +28,7 @@
#ifdef MAGNUM_BUILD_DEPRECATED
/** @file
* @brief Class @ref Magnum::DebugTools::Profiler
* @m_deprecated_since_latest Obsolete, use
* @m_deprecated_since{2020,06} Obsolete, use
* @ref Magnum/DebugTools/FrameProfiler.h and the
* @ref Magnum::DebugTools::FrameProfiler class instead.
*/
@ -54,7 +54,7 @@ namespace Magnum { namespace DebugTools {
/**
@brief Profiler
@m_deprecated_since_latest Obsolete, use @ref FrameProfiler instead.
@m_deprecated_since{2020,06} Obsolete, use @ref FrameProfiler instead.
Measures time passed during specified sections of each frame. It's meant to be
used in rendering and event loops (e.g. @ref Platform::Sdl2Application::drawEvent()),

18
src/Magnum/GL/AbstractShaderProgram.h

@ -464,7 +464,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/**
* @brief Max supported count of vertices emitted by a geometry shader
* @m_since_latest
* @m_since{2020,06}
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If neither @gl_extension{ARB,geometry_shader4} (part of
@ -752,7 +752,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
/**
* @brief Draw a mesh
* @param mesh Mesh to draw
* @m_since_latest
* @m_since{2020,06}
*
* Expects that @p mesh is compatible with this shader and is fully set
* up. If its vertex/index count or instance count is @cpp 0 @ce, no
@ -798,13 +798,13 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
void draw(Mesh&& mesh) { draw(mesh); }
/**
* @brief Draw a mesh view
* @m_since_latest
* @m_since{2020,06}
*
* See @ref draw(Mesh&) for more information.
* @see @ref draw(Containers::ArrayView<const Containers::Reference<MeshView>>),
@ -832,13 +832,13 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
void draw(MeshView&& mesh) { draw(mesh); }
/**
* @brief Draw multiple meshes at once
* @m_since_latest
* @m_since{2020,06}
*
* In OpenGL ES, if @gl_extension{EXT,multi_draw_arrays} is not
* present, the functionality is emulated using a sequence of
@ -866,7 +866,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
void draw(std::initializer_list<Containers::Reference<MeshView>> meshes);
@ -876,7 +876,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @param mesh Mesh to draw
* @param xfb Transform feedback to use for vertex count
* @param stream Transform feedback stream ID
* @m_since_latest
* @m_since{2020,06}
*
* Expects that @p mesh is compatible with this shader, is fully set up
* and that the output buffer(s) from @p xfb are used as vertex buffers
@ -905,7 +905,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
/**
* @brief Draw a mesh view with vertices coming out of transform feedback
* @m_since_latest
* @m_since{2020,06}
*
* Everything set by @ref MeshView::setCount(),
* @ref MeshView::setBaseInstance(), @ref MeshView::setBaseVertex(),

4
src/Magnum/GL/AbstractTexture.h

@ -228,7 +228,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
/**
* @brief Bind textures to given range of texture units
* @m_since_latest
* @m_since{2020,06}
*
* Binds first texture in the list to @p firstTextureUnit, second to
* `firstTextureUnit + 1` etc. If any texture is @cpp nullptr @ce,
@ -291,7 +291,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
/**
* @brief Bind textures to given range of texture units
* @m_since_latest
* @m_since{2020,06}
*
* Binds first level of given texture in the list to @p firstImageUnit,
* second to `firstTextureUnit + 1` etc. 3D, cube map and array

34
src/Magnum/GL/Attribute.h

@ -88,7 +88,7 @@ template<UnsignedInt location, class T> class Attribute {
/**
* Count of vectors in this type.
* @m_since_latest
* @m_since{2020,06}
*
* Is @cpp 1 @ce for non-matrix attributes.
* @see @ref vectorSize()
@ -98,7 +98,7 @@ template<UnsignedInt location, class T> class Attribute {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* Count of vectors in this type,
* @m_deprecated_since_latest Use @ref Vectors instead.
* @m_deprecated_since{2020,06} Use @ref Vectors instead.
*/
VectorCount CORRADE_DEPRECATED_ENUM("use Vectors instead") = Vectors
#endif
@ -195,7 +195,7 @@ template<UnsignedInt location, class T> class Attribute {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Half float. Only for float attribute types.
* @m_since_latest
* @m_since{2020,06}
* @requires_gl30 Extension @gl_extension{ARB,half_float_vertex}
* @requires_gles30 Extension @gl_extension{OES,vertex_half_float}
* in OpenGL ES 2.0
@ -211,7 +211,7 @@ template<UnsignedInt location, class T> class Attribute {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* Half float.
* @m_deprecated_since_latest Use @ref DataType::Half instead.
* @m_deprecated_since{2020,06} Use @ref DataType::Half instead.
*/
HalfFloat CORRADE_DEPRECATED_ENUM("use Half instead") = Half,
#endif
@ -327,7 +327,7 @@ template<UnsignedInt location, class T> class Attribute {
* type used in shader (e.g. @ref DataType::Int for
* @ref Magnum::Vector4i "Vector4i").
* @param dataOptions Data options. Default is no options.
* @m_since_latest
* @m_since{2020,06}
*
* Component count is set to the same value as in type used in shader
* (e.g. @ref Components::Three for @ref Magnum::Vector3 "Vector3").
@ -343,7 +343,7 @@ template<UnsignedInt location, class T> class Attribute {
* type used in shader (e.g. @ref DataType::Int for
* @ref Magnum::Vector4i "Vector4i").
* @param dataOptions Data options. Default is no options.
* @m_since_latest
* @m_since{2020,06}
*/
constexpr Attribute(Components components, UnsignedInt vectorStride, DataType dataType = Implementation::Attribute<T>::DefaultDataType, DataOptions dataOptions = DataOptions()): _components{components}, _vectorStride{vectorStride}, _dataType{dataType}, _dataOptions{dataOptions} {}
@ -355,7 +355,7 @@ template<UnsignedInt location, class T> class Attribute {
/**
* @brief Stride between consecutive vector elements
* @m_since_latest
* @m_since{2020,06}
*
* Used for describing matrix attributes. Implicitly the same as size
* of given vector type (e.g. @cpp 9 @ce for a
@ -368,7 +368,7 @@ template<UnsignedInt location, class T> class Attribute {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief Size of each vector in passed data
* @m_deprecated_since_latest Use @ref vectorStride() instead.
* @m_deprecated_since{2020,06} Use @ref vectorStride() instead.
*
* @see @ref Vectors
*/
@ -515,7 +515,7 @@ class MAGNUM_GL_EXPORT DynamicAttribute {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Half float. Only for float attribute types.
* @m_since_latest
* @m_since{2020,06}
* @requires_gl30 Extension @gl_extension{ARB,half_float_vertex}
* @requires_gles30 Extension @gl_extension{OES,vertex_half_float}
* in OpenGL ES 2.0
@ -531,7 +531,7 @@ class MAGNUM_GL_EXPORT DynamicAttribute {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* Half float.
* @m_deprecated_since_latest Use @ref DataType::Half instead.
* @m_deprecated_since{2020,06} Use @ref DataType::Half instead.
*/
HalfFloat CORRADE_DEPRECATED_ENUM("use Half instead") = Half,
#endif
@ -604,7 +604,7 @@ class MAGNUM_GL_EXPORT DynamicAttribute {
* @param components Component count
* @param vectors Vector count
* @param dataType Type of passed data
* @m_since_latest
* @m_since{2020,06}
*
* Vector stride is set to size of the data type times component count.
*/
@ -619,7 +619,7 @@ class MAGNUM_GL_EXPORT DynamicAttribute {
* @param vectorStride Stride between consecutive matrix column
* vectors
* @param dataType Type of passed data
* @m_since_latest
* @m_since{2020,06}
*/
constexpr explicit DynamicAttribute(Kind kind, UnsignedInt location, Components components, UnsignedInt vectors, UnsignedInt vectorStride, DataType dataType): _kind{kind}, _location{location}, _components{components}, _vectors{vectors}, _vectorStride{vectorStride}, _dataType{dataType} {}
@ -631,7 +631,7 @@ class MAGNUM_GL_EXPORT DynamicAttribute {
/**
* @brief Construct from a generic mesh attribute type
* @m_since_latest
* @m_since{2020,06}
*
* The @p type is expected to be available on given target and be
* compatible with @p kind --- i.e., normalized or floating-point for
@ -643,7 +643,7 @@ class MAGNUM_GL_EXPORT DynamicAttribute {
/**
* @brief Construct from a compile-time attribute with a generic mesh attribute type override
* @m_since_latest
* @m_since{2020,06}
*
* Extracts kind and location from passed @ref Attribute type and calls
* @ref DynamicAttribute(Kind, UnsignedInt, VertexFormat). Expects that
@ -666,7 +666,7 @@ class MAGNUM_GL_EXPORT DynamicAttribute {
/**
* @brief Vector count
* @m_since_latest
* @m_since{2020,06}
*
* Returns @cpp 1 @ce for non-matrix attributes.
*/
@ -674,7 +674,7 @@ class MAGNUM_GL_EXPORT DynamicAttribute {
/**
* @brief Vector stride
* @m_since_latest
* @m_since{2020,06}
*/
constexpr UnsignedInt vectorStride() const { return _vectorStride; }
@ -705,7 +705,7 @@ MAGNUM_GL_EXPORT Debug& operator<<(Debug& debug, DynamicAttribute::DataType);
/**
@brief Check availability of a generic mesh attribute type
@m_since_latest
@m_since{2020,06}
Some OpenGL targets don't support all mesh attribute types (for example OpenGL
ES doesn't support double-precision types). Returns @cpp false @ce if current

6
src/Magnum/GL/Buffer.h

@ -791,7 +791,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* information
* @param data Data
* @param usage Buffer usage
* @m_since_latest
* @m_since{2020,06}
*
* Equivalent to constructing via @ref Buffer(TargetHint) and then
* calling @ref setData().
@ -802,13 +802,13 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
template<class T> explicit Buffer(TargetHint targetHint, std::initializer_list<T> data, BufferUsage usage = BufferUsage::StaticDraw): Buffer{targetHint, Containers::arrayView(data), usage} {}
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*
* Equivalent to calling @ref Buffer(TargetHint, Containers::ArrayView<const void>, BufferUsage)
* with @ref TargetHint::Array. Unlike with

2
src/Magnum/GL/BufferTexture.h

@ -238,7 +238,7 @@ class MAGNUM_GL_EXPORT BufferTexture: public AbstractTexture {
/**
* @brief Remove existing buffer from the texture
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref setBuffer()
*/

10
src/Magnum/GL/Mesh.h

@ -138,7 +138,7 @@ enum class MeshPrimitive: GLenum {
/**
@brief Check availability of a generic mesh primitive
@m_since_latest
@m_since{2020,06}
Returns @cpp false @ce if OpenGL doesn't support such primitive, @cpp true @ce
otherwise. Moreover, returns @cpp true @ce also for all formats that are
@ -956,14 +956,14 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief Draw the mesh
* @m_deprecated_since_latest Use @ref AbstractShaderProgram::draw()
* @m_deprecated_since{2020,06} Use @ref AbstractShaderProgram::draw()
* instead.
*/
CORRADE_DEPRECATED("use AbstractShaderProgram::draw() instead") Mesh& draw(AbstractShaderProgram& shader);
/**
* @overload
* @m_deprecated_since_latest Use @ref AbstractShaderProgram::draw()
* @m_deprecated_since{2020,06} Use @ref AbstractShaderProgram::draw()
* instead.
*/
CORRADE_DEPRECATED("use AbstractShaderProgram::draw() instead") Mesh& draw(AbstractShaderProgram&& shader);
@ -971,14 +971,14 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES
/**
* @brief Draw the mesh with vertices coming out of transform feedback
* @m_deprecated_since_latest Use
* @m_deprecated_since{2020,06} Use
* @ref AbstractShaderProgram::drawTransformFeedback() instead.
*/
CORRADE_DEPRECATED("use AbstractShaderProgram::drawTransformFeedback() instead") Mesh& draw(AbstractShaderProgram& shader, TransformFeedback& xfb, UnsignedInt stream = 0);
/**
* @overload
* @m_deprecated_since_latest Use
* @m_deprecated_since{2020,06} Use
* @ref AbstractShaderProgram::drawTransformFeedback() instead.
*/
CORRADE_DEPRECATED("use AbstractShaderProgram::drawTransformFeedback() instead") Mesh& draw(AbstractShaderProgram&& shader, TransformFeedback& xfb, UnsignedInt stream = 0);

16
src/Magnum/GL/MeshView.h

@ -62,7 +62,7 @@ class MAGNUM_GL_EXPORT MeshView {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief Draw multiple meshes at once
* @m_deprecated_since_latest Use
* @m_deprecated_since{2020,06} Use
* @ref AbstractShaderProgram::draw(Containers::ArrayView<const Containers::Reference<MeshView>>)
* instead.
*/
@ -70,7 +70,7 @@ class MAGNUM_GL_EXPORT MeshView {
/**
* @overload
* @m_deprecated_since_latest Use
* @m_deprecated_since{2020,06} Use
* @ref AbstractShaderProgram::draw(Containers::ArrayView<const Containers::Reference<MeshView>>)
* instead.
*/
@ -78,7 +78,7 @@ class MAGNUM_GL_EXPORT MeshView {
/**
* @overload
* @m_deprecated_since_latest Use
* @m_deprecated_since{2020,06} Use
* @ref AbstractShaderProgram::draw(std::initializer_list<Containers::Reference<MeshView>>)
* instead.
*/
@ -86,7 +86,7 @@ class MAGNUM_GL_EXPORT MeshView {
/**
* @overload
* @m_deprecated_since_latest Use
* @m_deprecated_since{2020,06} Use
* @ref AbstractShaderProgram::draw(std::initializer_list<Containers::Reference<MeshView>>)
* instead.
*/
@ -224,14 +224,14 @@ class MAGNUM_GL_EXPORT MeshView {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief Draw the mesh
* @m_deprecated_since_latest Use @ref AbstractShaderProgram::draw()
* @m_deprecated_since{2020,06} Use @ref AbstractShaderProgram::draw()
* instead.
*/
CORRADE_DEPRECATED("use AbstractShaderProgram::draw() instead") MeshView& draw(AbstractShaderProgram& shader);
/**
* @overload
* @m_deprecated_since_latest Use @ref AbstractShaderProgram::draw()
* @m_deprecated_since{2020,06} Use @ref AbstractShaderProgram::draw()
* instead.
*/
CORRADE_DEPRECATED("use AbstractShaderProgram::draw() instead") MeshView& draw(AbstractShaderProgram&& shader);
@ -239,14 +239,14 @@ class MAGNUM_GL_EXPORT MeshView {
#ifndef MAGNUM_TARGET_GLES
/**
* @brief Draw the mesh with vertices coming out of transform feedback
* @m_deprecated_since_latest Use
* @m_deprecated_since{2020,06} Use
* @ref AbstractShaderProgram::drawTransformFeedback() instead.
*/
CORRADE_DEPRECATED("use AbstractShaderProgram::drawTransformFeedback() instead") MeshView& draw(AbstractShaderProgram& shader, TransformFeedback& xfb, UnsignedInt stream = 0);
/**
* @overload
* @m_deprecated_since_latest Use
* @m_deprecated_since{2020,06} Use
@ref AbstractShaderProgram::drawTransformFeedback() instead.
*/
CORRADE_DEPRECATED("use AbstractShaderProgram::drawTransformFeedback() instead") MeshView& draw(AbstractShaderProgram&& shader, TransformFeedback& xfb, UnsignedInt stream = 0);

4
src/Magnum/GL/PipelineStatisticsQuery.h

@ -28,7 +28,7 @@
#ifndef MAGNUM_TARGET_GLES
/** @file
* @brief Class @ref Magnum::GL::PipelineStatisticsQuery
* @m_since_latest
* @m_since{2020,06}
*/
#endif
@ -39,7 +39,7 @@ namespace Magnum { namespace GL {
/**
@brief Pipeline statistics query
@m_since_latest
@m_since{2020,06}
Provides various data about the rendering pipeline, useful for profiling and
performance measurements.

4
src/Magnum/GL/PixelFormat.h

@ -415,7 +415,7 @@ enum class PixelType: GLenum {
* Each component half float.
* @see @ref Magnum::Half "Half", @ref Math::packHalf(),
* @ref Math::unpackHalf()
* @m_since_latest
* @m_since{2020,06}
* @requires_gl30 Extension @gl_extension{ARB,half_float_pixel}
* @requires_gles30 Extension @gl_extension2{OES,texture_half_float,OES_texture_float}
* to use for texture reading in OpenGL ES 2.0.
@ -439,7 +439,7 @@ enum class PixelType: GLenum {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* Half float.
* @m_deprecated_since_latest Use @ref PixelType::Half instead.
* @m_deprecated_since{2020,06} Use @ref PixelType::Half instead.
*/
HalfFloat CORRADE_DEPRECATED_ENUM("use Half instead") = Half,
#endif

44
src/Magnum/GL/Renderer.h

@ -117,7 +117,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @gl_extension{EXT,clip_cull_distance}
* @requires_webgl_extension WebGL 2.0 and extension
* @webgl_extension{EXT,clip_cull_distance}
* @m_since_latest
* @m_since{2020,06}
*/
#ifndef MAGNUM_TARGET_GLES
ClipDistance0 = GL_CLIP_DISTANCE0,
@ -140,7 +140,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @gl_extension{EXT,clip_cull_distance}
* @requires_webgl_extension WebGL 2.0 and extension
* @webgl_extension{EXT,clip_cull_distance}
* @m_since_latest
* @m_since{2020,06}
*/
#ifndef MAGNUM_TARGET_GLES
ClipDistance1 = GL_CLIP_DISTANCE1,
@ -163,7 +163,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @gl_extension{EXT,clip_cull_distance}
* @requires_webgl_extension WebGL 2.0 and extension
* @webgl_extension{EXT,clip_cull_distance}
* @m_since_latest
* @m_since{2020,06}
*/
#ifndef MAGNUM_TARGET_GLES
ClipDistance2 = GL_CLIP_DISTANCE2,
@ -186,7 +186,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @gl_extension{EXT,clip_cull_distance}
* @requires_webgl_extension WebGL 2.0 and extension
* @webgl_extension{EXT,clip_cull_distance}
* @m_since_latest
* @m_since{2020,06}
*/
#ifndef MAGNUM_TARGET_GLES
ClipDistance3 = GL_CLIP_DISTANCE3,
@ -209,7 +209,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @gl_extension{EXT,clip_cull_distance}
* @requires_webgl_extension WebGL 2.0 and extension
* @webgl_extension{EXT,clip_cull_distance}
* @m_since_latest
* @m_since{2020,06}
*/
#ifndef MAGNUM_TARGET_GLES
ClipDistance4 = GL_CLIP_DISTANCE4,
@ -232,7 +232,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @gl_extension{EXT,clip_cull_distance}
* @requires_webgl_extension WebGL 2.0 and extension
* @webgl_extension{EXT,clip_cull_distance}
* @m_since_latest
* @m_since{2020,06}
*/
#ifndef MAGNUM_TARGET_GLES
ClipDistance5 = GL_CLIP_DISTANCE5,
@ -255,7 +255,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @gl_extension{EXT,clip_cull_distance}
* @requires_webgl_extension WebGL 2.0 and extension
* @webgl_extension{EXT,clip_cull_distance}
* @m_since_latest
* @m_since{2020,06}
*/
#ifndef MAGNUM_TARGET_GLES
ClipDistance6 = GL_CLIP_DISTANCE6,
@ -278,7 +278,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @gl_extension{EXT,clip_cull_distance}
* @requires_webgl_extension WebGL 2.0 and extension
* @webgl_extension{EXT,clip_cull_distance}
* @m_since_latest
* @m_since{2020,06}
*/
#ifndef MAGNUM_TARGET_GLES
ClipDistance7 = GL_CLIP_DISTANCE7,
@ -514,7 +514,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @brief Enable a feature for given draw buffer
* @param feature Feature to enable
* @param drawBuffer Draw buffer index
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref disable(Feature, UnsignedInt),
* @ref setFeature(Feature, UnsignedInt, bool),
@ -540,7 +540,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @brief Disable a feature for given draw buffer
* @param feature Feature to disable
* @param drawBuffer Draw buffer index
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref enable(Feature, UnsignedInt),
* @ref setFeature(Feature, UnsignedInt, bool),
@ -881,7 +881,7 @@ class MAGNUM_GL_EXPORT Renderer {
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/**
* @brief Max supported component patch vertex count
* @m_since_latest
* @m_since{2020,06}
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If neither @gl_extension{ARB,tessellation_shader} (part
@ -896,7 +896,7 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* @brief Set tessellation patch vertex count
* @m_since_latest
* @m_since{2020,06}
*
* Specifies number of vertices that will be used to make up a single
* tessellation patch primitive.
@ -914,7 +914,7 @@ class MAGNUM_GL_EXPORT Renderer {
#ifndef MAGNUM_TARGET_GLES
/**
* @brief Set default patch inner tessellation level
* @m_since_latest
* @m_since{2020,06}
*
* When no tessellation control shader is present, specifies the
* default inner tessellation levels to be used.
@ -928,7 +928,7 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* @brief Set default patch outer tessellation level
* @m_since_latest
* @m_since{2020,06}
*
* When no tessellation control shader is present, specifies the
* default outer tessellation levels to be used.
@ -944,7 +944,7 @@ class MAGNUM_GL_EXPORT Renderer {
#if !(defined(MAGNUM_TARGET_GLES2) && defined(MAGNUM_TARGET_WEBGL))
/**
* @brief Max supported clip distance count
* @m_since_latest
* @m_since{2020,06}
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If neither OpenGL 3.0 nor
@ -961,7 +961,7 @@ class MAGNUM_GL_EXPORT Renderer {
#ifndef MAGNUM_TARGET_GLES2
/**
* @brief Max supported cull distance count
* @m_since_latest
* @m_since{2020,06}
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If neither @gl_extension{ARB,cull_distance} (part of
@ -976,7 +976,7 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* @brief Max supported combined clip and cull distance count
* @m_since_latest
* @m_since{2020,06}
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If neither @gl_extension{ARB,cull_distance} (part of
@ -1181,7 +1181,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @param allowGreen Allow green channel to be written
* @param allowBlue Allow blue channel to be written
* @param allowAlpha Allow alpha channel to be written
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref GL-Framebuffer-usage-multiple-outputs,
* @fn_gl2_keyword{ColorMaski,ColorMask}
@ -1618,7 +1618,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @brief Set blend equation for given draw buffer
* @param drawBuffer Draw buffer index
* @param equation Blend equation
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref GL-Framebuffer-usage-multiple-outputs,
* @fn_gl2_keyword{BlendEquationi,BlendEquation}
@ -1647,7 +1647,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @param drawBuffer Draw buffer index
* @param rgb Blend equation for RGB components
* @param alpha Blend equation for the alpha component
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref GL-Framebuffer-usage-multiple-outputs,
* @fn_gl2_keyword{BlendEquationSeparatei,BlendEquationSeparate}
@ -1696,7 +1696,7 @@ class MAGNUM_GL_EXPORT Renderer {
* from pixel value
* @param destination How the destination blending factor is
* computed from framebuffer
* @m_since_latest
* @m_since{2020,06}
*
* See @ref setBlendFunction(BlendFunction, BlendFunction) for more
* information.
@ -1731,7 +1731,7 @@ class MAGNUM_GL_EXPORT Renderer {
* computed from framebuffer for RGB components
* @param destinationAlpha How the destination blending factor is
* computed from framebuffer for the alpha component
* @m_since_latest
* @m_since{2020,06}
*
* See @ref setBlendFunction(BlendFunction, BlendFunction) for more
* information.

94
src/Magnum/Magnum.h

@ -68,7 +68,7 @@ Defined if built as static libraries. Default are shared libraries.
/**
@brief Static library build with globals unique across shared libraries
@m_since_latest
@m_since{2020,06}
Enabled by default in a static build.
@see @ref building, @ref cmake
@ -281,73 +281,73 @@ typedef Math::Vector4<Float> Vector4;
/**
@brief Two-component unsigned byte vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector2<UnsignedByte> Vector2ub;
/**
@brief Three-component unsigned byte vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector3<UnsignedByte> Vector3ub;
/**
@brief Four-component unsigned byte vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector4<UnsignedByte> Vector4ub;
/**
@brief Two-component signed byte vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector2<Byte> Vector2b;
/**
@brief Three-component signed byte vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector3<Byte> Vector3b;
/**
@brief Four-component signed byte vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector4<Byte> Vector4b;
/**
@brief Two-component unsigned short vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector2<UnsignedShort> Vector2us;
/**
@brief Three-component unsigned short vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector3<UnsignedShort> Vector3us;
/**
@brief Four-component unsigned short vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector4<UnsignedShort> Vector4us;
/**
@brief Two-component signed short vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector2<Short> Vector2s;
/**
@brief Three-component signed short vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector3<Short> Vector3s;
/**
@brief Four-component signed short vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector4<Short> Vector4s;
@ -420,7 +420,7 @@ typedef Math::Color3<UnsignedByte> Color3ub;
/**
@brief Three-component (RGB) unsigned short color
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Color3<UnsignedShort> Color3us;
@ -436,7 +436,7 @@ typedef Math::Color4<UnsignedByte> Color4ub;
/**
@brief Four-component (RGB) unsigned short color
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Color4<UnsignedShort> Color4us;
@ -534,7 +534,7 @@ typedef Math::Matrix4x3<Float> Matrix4x3;
/**
@brief Signed byte matrix with 2 columns and 2 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 8-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -548,7 +548,7 @@ typedef Math::Matrix2x2<Byte> Matrix2x2b;
/**
@brief Signed byte matrix with 2 columns and 3 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 8-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -562,7 +562,7 @@ typedef Math::Matrix2x3<Byte> Matrix2x3b;
/**
@brief Signed byte matrix with 2 columns and 4 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 8-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -572,7 +572,7 @@ typedef Math::Matrix2x4<Byte> Matrix2x4b;
/**
@brief Signed byte matrix with 3 columns and 2 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 8-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -586,7 +586,7 @@ typedef Math::Matrix3x2<Byte> Matrix3x2b;
/**
@brief Signed byte matrix with 3 columns and 3 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 8-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -600,7 +600,7 @@ typedef Math::Matrix3x3<Byte> Matrix3x3b;
/**
@brief Signed byte matrix with 3 columns and 4 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 8-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -610,7 +610,7 @@ typedef Math::Matrix3x4<Byte> Matrix3x4b;
/**
@brief Signed byte matrix with 4 columns and 2 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 8-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -624,7 +624,7 @@ typedef Math::Matrix4x2<Byte> Matrix4x2b;
/**
@brief Signed byte matrix with 4 columns and 3 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 8-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -638,7 +638,7 @@ typedef Math::Matrix4x3<Byte> Matrix4x3b;
/**
@brief Signed byte matrix with 4 columns and 4 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 8-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -648,7 +648,7 @@ typedef Math::Matrix4x4<Byte> Matrix4x4b;
/**
@brief Signed short matrix with 2 columns and 2 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 16-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -658,7 +658,7 @@ typedef Math::Matrix2x2<Short> Matrix2x2s;
/**
@brief Signed short matrix with 2 columns and 3 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 16-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -672,7 +672,7 @@ typedef Math::Matrix2x3<Short> Matrix2x3s;
/**
@brief Signed short matrix with 2 columns and 4 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 16-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -682,7 +682,7 @@ typedef Math::Matrix2x4<Short> Matrix2x4s;
/**
@brief Signed short matrix with 3 columns and 2 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 16-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -692,7 +692,7 @@ typedef Math::Matrix3x2<Short> Matrix3x2s;
/**
@brief Signed short matrix with 3 columns and 3 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 16-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -706,7 +706,7 @@ typedef Math::Matrix3x3<Short> Matrix3x3s;
/**
@brief Signed short matrix with 3 columns and 4 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 16-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -716,7 +716,7 @@ typedef Math::Matrix3x4<Short> Matrix3x4s;
/**
@brief Signed short matrix with 4 columns and 2 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 16-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -726,7 +726,7 @@ typedef Math::Matrix4x2<Short> Matrix4x2s;
/**
@brief Signed short matrix with 4 columns and 3 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 16-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -740,7 +740,7 @@ typedef Math::Matrix4x3<Short> Matrix4x3s;
/**
@brief Signed short matrix with 4 columns and 4 rows
@m_since_latest
@m_since{2020,06}
Storage only, in ordet to support matrices packed into 16-bit types. For
performing arithmetic on this type use @ref Math::unpack() / @ref Math::unpackInto() to convert to a float type first and then @ref Math::pack()
@ -833,43 +833,43 @@ for performing arithmetic on these types use @ref Math::unpackHalf() / @ref Math
/**
@brief Two-component half-float vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector2<Half> Vector2h;
/**
@brief Three-component half-float vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector3<Half> Vector3h;
/**
@brief Four-component half-float vector
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Vector4<Half> Vector4h;
/**
@brief Three-component (RGB) half-float color
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Color3<Half> Color3h;
/**
@brief Four-component (RGBA) half-float color
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Color4<Half> Color4h;
/**
@brief Half-float matrix with 2 columns and 2 rows
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Matrix2x2<Half> Matrix2x2h;
/**
@brief Half-float matrix with 2 columns and 3 rows
@m_since_latest
@m_since{2020,06}
Note that this type doesn't have the columns four-byte aligned, which may
negatively affect performance in some cases. For better alignment use
@ -879,19 +879,19 @@ typedef Math::Matrix2x3<Half> Matrix2x3h;
/**
@brief Half-float matrix with 2 columns and 4 rows
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Matrix2x4<Half> Matrix2x4h;
/**
@brief Half-float matrix with 3 columns and 2 rows
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Matrix3x2<Half> Matrix3x2h;
/**
@brief Half-float matrix with 3 columns and 3 rows
@m_since_latest
@m_since{2020,06}
Note that this type doesn't have the columns four-byte aligned, which may
negatively affect performance in some cases. For better alignment use
@ -901,19 +901,19 @@ typedef Math::Matrix3x3<Half> Matrix3x3h;
/**
@brief Half-float matrix with 3 columns and 4 rows
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Matrix3x4<Half> Matrix3x4h;
/**
@brief Half-float matrix with 4 columns and 2 rows
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Matrix4x2<Half> Matrix4x2h;
/**
@brief Half-float matrix with 4 columns and 3 rows
@m_since_latest
@m_since{2020,06}
Note that this type doesn't have the columns four-byte aligned, which may
negatively affect performance in some cases. For better alignment use
@ -923,7 +923,7 @@ typedef Math::Matrix4x3<Half> Matrix4x3h;
/**
@brief Half-float matrix with 4 columns and 4 rows
@m_since_latest
@m_since{2020,06}
*/
typedef Math::Matrix4x4<Half> Matrix4x4h;

2
src/Magnum/Math/DualComplex.h

@ -341,7 +341,7 @@ template<class T> class DualComplex: public Dual<Complex<T>> {
/**
* @brief Rotate a vector with a dual complex number
* @m_since_latest
* @m_since{2020,06}
*
* Calls @ref Complex::transformVector() on the @ref real() part,
* see its documentation for more information.

4
src/Magnum/Math/DualQuaternion.h

@ -476,7 +476,7 @@ template<class T> class DualQuaternion: public Dual<Quaternion<T>> {
/**
* @brief Rotate a vector with a dual quaternion
* @m_since_latest
* @m_since{2020,06}
*
* Calls @ref Quaternion::transformVector() on the @ref real() part,
* see its documentation for more information.
@ -487,7 +487,7 @@ template<class T> class DualQuaternion: public Dual<Quaternion<T>> {
/**
* @brief Rotate a vector with a normalized dual quaternion
* @m_since_latest
* @m_since{2020,06}
*
* Calls @ref Quaternion::transformVectorNormalized() on the
* @ref real() part, see its documentation for more information.

14
src/Magnum/Math/Frustum.h

@ -146,7 +146,7 @@ template<class T> class Frustum {
/**
* @brief Plane at given index
* @m_since_latest
* @m_since{2020,06}
*
* Expects that @p i is less than @cpp 6 @ce.
*/
@ -206,42 +206,42 @@ template<class T> class Frustum {
/**
* @brief Left plane
* @m_since_latest
* @m_since{2020,06}
*/
Vector4<T>& left() { return _data[0]; }
constexpr Vector4<T> left() const { return _data[0]; } /**< @overload */
/**
* @brief Right plane
* @m_since_latest
* @m_since{2020,06}
*/
Vector4<T>& right() { return _data[1]; }
constexpr Vector4<T> right() const { return _data[1]; } /**< @overload */
/**
* @brief Bottom plane
* @m_since_latest
* @m_since{2020,06}
*/
Vector4<T>& bottom() { return _data[2]; }
constexpr Vector4<T> bottom() const { return _data[2]; } /**< @overload */
/**
* @brief Top plane
* @m_since_latest
* @m_since{2020,06}
*/
Vector4<T>& top() { return _data[3]; }
constexpr Vector4<T> top() const { return _data[3]; } /**< @overload */
/**
* @brief Near plane
* @m_since_latest
* @m_since{2020,06}
*/
Vector4<T>& near() { return _data[4]; }
constexpr Vector4<T> near() const { return _data[4]; } /**< @overload */
/**
* @brief Far plane
* @m_since_latest
* @m_since{2020,06}
*/
Vector4<T>& far() { return _data[5]; }
constexpr Vector4<T> far() const { return _data[5]; } /**< @overload */

4
src/Magnum/Math/Functions.h

@ -663,7 +663,7 @@ template<std::size_t size, class T> inline Vector<size, T> sqrtInverted(const Ve
/**
@brief Reflect a vector
@m_since_latest
@m_since{2020,06}
Reflects the vector off a surface given the surface outward normal. Expects
that the normal vector is normalized. For a vector @f$ \boldsymbol{v} @f$ and a
@ -683,7 +683,7 @@ template<std::size_t size, class T> inline Vector<size, T> reflect(const Vector<
/**
@brief Refract a vector
@m_since_latest
@m_since{2020,06}
Refracts a vector through a medium given the surface outward normal and ratio
of indices of refraction eta. Expects that both @p vector and @p normal is

10
src/Magnum/Math/FunctionsBatch.h

@ -79,7 +79,7 @@ template<class T> auto isInf(const Corrade::Containers::StridedArrayView1D<const
/**
@overload
@m_since_latest
@m_since{2020,06}
Converts @p range to @ref Corrade::Containers::StridedArrayView1D and calls the
above overload. Works with any type that's convertible to
@ -131,7 +131,7 @@ template<class T> inline auto isNan(const Corrade::Containers::StridedArrayView1
/**
@overload
@m_since_latest
@m_since{2020,06}
Converts @p range to @ref Corrade::Containers::StridedArrayView1D and calls the
above overload. Works with any type that's convertible to
@ -211,7 +211,7 @@ template<class T> inline T min(const Corrade::Containers::StridedArrayView1D<con
/**
@overload
@m_since_latest
@m_since{2020,06}
Converts @p range to @ref Corrade::Containers::StridedArrayView1D and calls the
above overload. Works with any type that's convertible to
@ -256,7 +256,7 @@ template<class T> inline T max(const Corrade::Containers::StridedArrayView1D<con
/**
@overload
@m_since_latest
@m_since{2020,06}
Converts @p range to @ref Corrade::Containers::StridedArrayView1D and calls the
above overload. Works with any type that's convertible to
@ -317,7 +317,7 @@ template<class T> inline std::pair<T, T> minmax(const Corrade::Containers::Strid
/**
@overload
@m_since_latest
@m_since{2020,06}
Converts @p range to @ref Corrade::Containers::StridedArrayView1D and calls the
above overload. Works with any type that's convertible to

62
src/Magnum/Math/PackingBatch.h

@ -27,7 +27,7 @@
/** @file
* @brief Functions @ref Magnum::Math::packInto(), @ref Magnum::Math::unpackInto(), @ref Magnum::Math::packHalfInto(), @ref Magnum::Math::unpackHalfInto(), @ref Magnum::Math::castInto()
* @m_since_latest
* @m_since{2020,06}
*/
#include <Corrade/Containers/Containers.h>
@ -48,7 +48,7 @@ vectors or scalars.
@brief Unpack unsigned integral values into a floating-point representation
@param[in] src Source integral values
@param[out] dst Destination floating-point values
@m_since_latest
@m_since{2020,06}
Converts integral values from full range of given *unsigned* integral type to
floating-point values in range @f$ [0, 1] @f$. Second dimension is meant to
@ -62,7 +62,7 @@ MAGNUM_EXPORT void unpackInto(const Corrade::Containers::StridedArrayView2D<cons
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void unpackInto(const Corrade::Containers::StridedArrayView2D<const UnsignedShort>& src, const Corrade::Containers::StridedArrayView2D<Float>& dst);
@ -70,7 +70,7 @@ MAGNUM_EXPORT void unpackInto(const Corrade::Containers::StridedArrayView2D<cons
@brief Unpack signed integral values into a floating-point representation
@param[in] src Source integral values
@param[out] dst Destination floating-point values
@m_since_latest
@m_since{2020,06}
Converts integral values from full range of given *signed* integral type to
floating-point values in range @f$ [-1, 1] @f$. Second dimension is meant to
@ -84,7 +84,7 @@ MAGNUM_EXPORT void unpackInto(const Corrade::Containers::StridedArrayView2D<cons
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void unpackInto(const Corrade::Containers::StridedArrayView2D<const Short>& src, const Corrade::Containers::StridedArrayView2D<Float>& dst);
@ -92,7 +92,7 @@ MAGNUM_EXPORT void unpackInto(const Corrade::Containers::StridedArrayView2D<cons
@brief Pack floating-point values into an integer representation
@param[in] src Source floating-point values
@param[out] dst Destination integral values
@m_since_latest
@m_since{2020,06}
Converts floating-point value in range @f$ [0, 1] @f$ to full range of
given *unsigned* integral type or range @f$ [-1, 1] @f$ to full range of
@ -111,19 +111,19 @@ MAGNUM_EXPORT void packInto(const Corrade::Containers::StridedArrayView2D<const
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void packInto(const Corrade::Containers::StridedArrayView2D<const Float>& src, const Corrade::Containers::StridedArrayView2D<Byte>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void packInto(const Corrade::Containers::StridedArrayView2D<const Float>& src, const Corrade::Containers::StridedArrayView2D<UnsignedShort>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void packInto(const Corrade::Containers::StridedArrayView2D<const Float>& src, const Corrade::Containers::StridedArrayView2D<Short>& dst);
@ -131,7 +131,7 @@ MAGNUM_EXPORT void packInto(const Corrade::Containers::StridedArrayView2D<const
@brief Pack 32-bit float values into 16-bit half-float representation
@param[in] src Source 32-bit float values
@param[out] dst Destination 16-bit half-float values
@m_since_latest
@m_since{2020,06}
See [Wikipedia](https://en.wikipedia.org/wiki/Half-precision_floating-point_format)
for more information about half floats. Unlike @ref packHalf() this function is
@ -150,7 +150,7 @@ MAGNUM_EXPORT void packHalfInto(const Corrade::Containers::StridedArrayView2D<co
@brief Unpack a range of 16-bit half-float values into 32-bit float representation
@param[in] src Source floating-point values
@param[out] dst Destination integral values
@m_since_latest
@m_since{2020,06}
See [Wikipedia](https://en.wikipedia.org/wiki/Half-precision_floating-point_format)
for more information about half floats. Unlike @ref unpackHalf() this function
@ -169,7 +169,7 @@ MAGNUM_EXPORT void unpackHalfInto(const Corrade::Containers::StridedArrayView2D<
@brief Cast integer values into a floating-point representation
@param[in] src Source integral values
@param[out] dst Destination floating-point values
@m_since_latest
@m_since{2020,06}
Unlike @ref packInto(), this function performs only an equivalent of
@cpp Float(a) @ce over the range, so e.g. @cpp 135 @ce becomes @cpp 135.0f @ce.
@ -187,31 +187,31 @@ MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Byte>& src, const Corrade::Containers::StridedArrayView2D<Float>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const UnsignedShort>& src, const Corrade::Containers::StridedArrayView2D<Float>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Short>& src, const Corrade::Containers::StridedArrayView2D<Float>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const UnsignedInt>& src, const Corrade::Containers::StridedArrayView2D<Float>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Int>& src, const Corrade::Containers::StridedArrayView2D<Float>& dst);
@ -219,7 +219,7 @@ MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const
@brief Cast floating-point values into an integer representation
@param[in] src Source floating-point values
@param[out] dst Destination integral values
@m_since_latest
@m_since{2020,06}
Unlike @ref packInto(), this function performs only an equivalent of
@cpp Float(a) @ce over the range, so e.g. @cpp 135 @ce becomes @cpp 135.0f @ce.
@ -237,31 +237,31 @@ MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Float>& src, const Corrade::Containers::StridedArrayView2D<Byte>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Float>& src, const Corrade::Containers::StridedArrayView2D<UnsignedShort>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Float>& src, const Corrade::Containers::StridedArrayView2D<Short>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Float>& src, const Corrade::Containers::StridedArrayView2D<UnsignedInt>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Float>& src, const Corrade::Containers::StridedArrayView2D<Int>& dst);
@ -269,7 +269,7 @@ MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const
@brief Cast integer values into a differently sized type
@param[in] src Source values
@param[out] dst Destination values
@m_since_latest
@m_since{2020,06}
Second dimension is meant to contain vector/matrix components, or have a size
of 1 for scalars. Expects that @p src and @p dst have the same size and that
@ -284,43 +284,43 @@ MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Byte>& src, const Corrade::Containers::StridedArrayView2D<Int>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const UnsignedShort>& src, const Corrade::Containers::StridedArrayView2D<UnsignedInt>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Short>& src, const Corrade::Containers::StridedArrayView2D<Int>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const UnsignedInt>& src, const Corrade::Containers::StridedArrayView2D<UnsignedShort>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Int>& src, const Corrade::Containers::StridedArrayView2D<Short>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const UnsignedInt>& src, const Corrade::Containers::StridedArrayView2D<UnsignedByte>& dst);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_EXPORT void castInto(const Corrade::Containers::StridedArrayView2D<const Int>& src, const Corrade::Containers::StridedArrayView2D<Byte>& dst);

2
src/Magnum/Math/Quaternion.h

@ -432,7 +432,7 @@ template<class T> class Quaternion {
/**
* @brief Convert to an euler vector
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the quaternion is normalized. Returns the angles in an
* XYZ order, you can combine them back to a quaternion like this:

8
src/Magnum/Math/Range.h

@ -380,7 +380,7 @@ template<class T> class Range2D: public Range<2, T> {
/**
* @brief Construct a range from a pair of minimal and maximal coordinates
* @m_since_latest
* @m_since{2020,06}
*
* Useful in combination with e.g. @ref minmax(), here for example to
* calculate texture bounds:
@ -393,7 +393,7 @@ template<class T> class Range2D: public Range<2, T> {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
/*implicit*/ Range2D(const std::pair<Vector<2, T>, Vector<2, T>>& minmax) noexcept: Range<2, T>{minmax.first, minmax.second} {}
@ -534,7 +534,7 @@ template<class T> class Range3D: public Range<3, T> {
/**
* @brief Construct a range from a pair of minimal and maximal coordinates
* @m_since_latest
* @m_since{2020,06}
*
* Useful in combination with e.g. @ref minmax(), here for example to
* calculate bounds of a triangle:
@ -547,7 +547,7 @@ template<class T> class Range3D: public Range<3, T> {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
/*implicit*/ Range3D(const std::pair<Vector<3, T>, Vector<3, T>>& minmax) noexcept: Range<3, T>{minmax.first, minmax.second} {}

4
src/Magnum/Math/Tags.h

@ -42,7 +42,7 @@ namespace Magnum { namespace Math {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief No initialization tag type
@m_deprecated_since_latest Use @ref Magnum::NoInitT instead.
@m_deprecated_since{2020,06} Use @ref Magnum::NoInitT instead.
*/
typedef CORRADE_DEPRECATED("use Magnum::NoInitT instead") Magnum::NoInitT NoInitT;
#endif
@ -78,7 +78,7 @@ struct IdentityInitT {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief No initialization tag
@m_deprecated_since_latest Use @ref Magnum::NoInit instead.
@m_deprecated_since{2020,06} Use @ref Magnum::NoInit instead.
*/
/** @todo when removing, clean up all Magnum::NoInit in Math to be NoInit again */
/* Explicit constructor to avoid ambiguous calls when using {} */

6
src/Magnum/Math/TypeTraits.h

@ -42,7 +42,7 @@
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief Precision when testing floats for equality
@m_deprecated_since_latest Use @ref Magnum::Math::TypeTraits::epsilon()
@m_deprecated_since{2020,06} Use @ref Magnum::Math::TypeTraits::epsilon()
instead.
They have "at least" 6 significant digits of precision, taking one digit less
@ -55,7 +55,7 @@ for more headroom.
/**
@brief Precision when testing doubles for equality
@m_deprecated_since_latest Use @ref Magnum::Math::TypeTraits::epsilon()
@m_deprecated_since{2020,06} Use @ref Magnum::Math::TypeTraits::epsilon()
instead.
They have "at least" 15 significant digits of precision, taking one digit less
@ -69,7 +69,7 @@ for more headroom.
#ifndef CORRADE_TARGET_EMSCRIPTEN
/**
@brief Precision when testing long doubles for equality
@m_deprecated_since_latest Use @ref Magnum::Math::TypeTraits::epsilon()
@m_deprecated_since{2020,06} Use @ref Magnum::Math::TypeTraits::epsilon()
instead.
They have "at least" 18 significant digits of precision, taking one digit less

12
src/Magnum/Mesh.h

@ -143,7 +143,7 @@ enum class MeshPrimitive: UnsignedInt {
/**
* Per-instance data.
* @m_since_latest
* @m_since{2020,06}
*
* Has no direct mapping to GPU APIs, but can be used to annotate
* @ref Trade::MeshData containing per-instance data (such as colors,
@ -154,7 +154,7 @@ enum class MeshPrimitive: UnsignedInt {
/**
* Per-face data.
* @m_since_latest
* @m_since{2020,06}
*
* Can be used to annotate @ref Trade::MeshData containing data that are
* per-face, as opposed to per-vertex. Has no direct mapping to common GPU
@ -168,7 +168,7 @@ enum class MeshPrimitive: UnsignedInt {
/**
* Per-edge data.
* @m_since_latest
* @m_since{2020,06}
*
* Can be used to annotate @ref Trade::MeshData containing data that are
* per-edge, as opposed to per-vertex. This is different from
@ -188,7 +188,7 @@ MAGNUM_EXPORT Debug& operator<<(Debug& debug, MeshPrimitive value);
/**
@brief Whether a @ref MeshPrimitive value wraps an implementation-specific identifier
@m_since_latest
@m_since{2020,06}
Returns @cpp true @ce if value of @p primitive has its highest bit set,
@cpp false @ce otherwise. Use @ref meshPrimitiveWrap() and @ref meshPrimitiveUnwrap()
@ -201,7 +201,7 @@ constexpr bool isMeshPrimitiveImplementationSpecific(MeshPrimitive primitive) {
/**
@brief Wrap an implementation-specific mesh primitive identifier in @ref MeshPrimitive
@m_since_latest
@m_since{2020,06}
Sets the highest bit on @p primitive to mark it as implementation-specific.
Expects that @p primitive fits into the remaining bits. Use
@ -217,7 +217,7 @@ template<class T> constexpr MeshPrimitive meshPrimitiveWrap(T implementationSpec
/**
@brief Unwrap an implementation-specific mesh primitive identifier from @ref MeshPrimitive
@m_since_latest
@m_since{2020,06}
Unsets the highest bit from @p primitive to extract the implementation-specific
value. Expects that @p primitive has it set. Use @ref meshPrimitiveWrap() for

12
src/Magnum/MeshTools/Combine.h

@ -27,7 +27,7 @@
/** @file
* @brief Function @ref Magnum::MeshTools::combineIndexedAttributes(), @ref Magnum::MeshTools::combineFaceAttributes()
* @m_since_latest
* @m_since{2020,06}
*/
#include <initializer_list>
@ -39,7 +39,7 @@ namespace Magnum { namespace MeshTools {
/**
@brief Combine differently indexed attributes into a single mesh
@m_since_latest
@m_since{2020,06}
Assuming each @p data contains only unique vertex data, creates an indexed mesh
that contains all attributes from @p data combined, with duplicate vertices
@ -89,13 +89,13 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData combineIndexedAttributes(const Container
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT Trade::MeshData combineIndexedAttributes(std::initializer_list<Containers::Reference<const Trade::MeshData>> data);
/**
@brief Combine per-face attributes into an existing mesh
@m_since_latest
@m_since{2020,06}
The resulting mesh will have all per-face attributes turned into per-vertex
attributes, leaving only unique combinations and adjusting the index buffer
@ -114,7 +114,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData combineFaceAttributes(const Trade::MeshD
/**
@overload
@m_since_latest
@m_since{2020,06}
Same as above with @p faceAttributes wrapped in a @ref Trade::MeshData with
@ref MeshPrimitive::Faces and no index buffer. Same as in the above case,
@ -126,7 +126,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData combineFaceAttributes(const Trade::MeshD
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT Trade::MeshData combineFaceAttributes(const Trade::MeshData& mesh, std::initializer_list<Trade::MeshAttributeData> faceAttributes);

10
src/Magnum/MeshTools/CombineIndexedArrays.h

@ -28,7 +28,7 @@
#ifdef MAGNUM_BUILD_DEPRECATED
/** @file
* @brief Function @ref Magnum::MeshTools::combineIndexArrays(), @ref Magnum::MeshTools::combineIndexedArrays()
* @m_deprecated_since_latest Use @ref Magnum/MeshTools/Combine.h and
* @m_deprecated_since{2020,06} Use @ref Magnum/MeshTools/Combine.h and
* @ref Magnum::MeshTools::combineIndexedAttributes() instead.
*/
#endif
@ -56,7 +56,7 @@ namespace Magnum { namespace MeshTools {
@param[in,out] arrays Index arrays to combine. These arrays are updated
in-place to contain unique combinations of the original indices.
@return Resulting combined index array
@m_deprecated_since_latest Use @ref combineIndexedAttributes() instead.
@m_deprecated_since{2020,06} Use @ref combineIndexedAttributes() instead.
Creates new combined index array and updates the original ones with translation
to new ones. For example, when you have position and normal array, each indexed
@ -98,13 +98,13 @@ CORRADE_DEPRECATED("use combineIndexedAttributes() instead") MAGNUM_MESHTOOLS_EX
/**
@overload
@m_deprecated_since_latest Use @ref combineIndexedAttributes() instead.
@m_deprecated_since{2020,06} Use @ref combineIndexedAttributes() instead.
*/
CORRADE_DEPRECATED("use combineIndexedAttributes() instead") MAGNUM_MESHTOOLS_EXPORT std::vector<UnsignedInt> combineIndexArrays(std::initializer_list<std::reference_wrapper<std::vector<UnsignedInt>>> arrays);
/**
@brief Combine interleaved index arrays
@m_deprecated_since_latest Use @ref combineIndexedAttributes() instead.
@m_deprecated_since{2020,06} Use @ref combineIndexedAttributes() instead.
Unlike above, this function takes one interleaved array instead of separate
index arrays. Continuing with the above example, you would call this function
@ -157,7 +157,7 @@ template<class T, class ...U> inline void writeCombinedArrays(UnsignedInt stride
@brief Combine indexed arrays
@param[in,out] indexedArrays Index and attribute arrays
@return Array with resulting indices
@m_deprecated_since_latest Use @ref combineIndexedAttributes() instead.
@m_deprecated_since{2020,06} Use @ref combineIndexedAttributes() instead.
Creates new combined index array and reorders original attribute arrays so they
can be indexed with the new single index array.

18
src/Magnum/MeshTools/Compile.h

@ -81,7 +81,7 @@ enum class CompileFlag: UnsignedByte {
* @ref compile(const Trade::MeshData&, GL::Buffer&, GL::Buffer&) or
* handling them in some other way on the application side already, use
* this flag to suppress the warning messages.
* @m_since_latest
* @m_since{2020,06}
*/
NoWarnOnCustomAttributes = 1 << 2
};
@ -98,7 +98,7 @@ CORRADE_ENUMSET_OPERATORS(CompileFlags)
/**
@brief Compile mesh data
@m_since_latest
@m_since{2020,06}
Configures a mesh for a @ref Shaders::Generic shader with a vertex buffer and
possibly also an index buffer, if the mesh is indexed.
@ -142,7 +142,7 @@ MAGNUM_MESHTOOLS_EXPORT GL::Mesh compile(const Trade::MeshData& meshData, Compil
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
/* Separately because this one doesn't rely on duplicate() / interleave() /
generate*Normals() and thus the exe can be smaller when using this function
@ -151,7 +151,7 @@ MAGNUM_MESHTOOLS_EXPORT GL::Mesh compile(const Trade::MeshData& meshData);
/**
@brief Compile mesh data using external buffers
@m_since_latest
@m_since{2020,06}
Assumes the whole vertex / index data are already uploaded to @p indices /
@p vertices and sets up the mesh using those. Can be used to have a single
@ -180,26 +180,26 @@ MAGNUM_MESHTOOLS_EXPORT GL::Mesh compile(const Trade::MeshData& meshData, GL::Bu
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT GL::Mesh compile(const Trade::MeshData& meshData, GL::Buffer& indices, GL::Buffer&& vertices);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT GL::Mesh compile(const Trade::MeshData& meshData, GL::Buffer&& indices, GL::Buffer& vertices);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT GL::Mesh compile(const Trade::MeshData& meshData, GL::Buffer&& indices, GL::Buffer&& vertices);
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief Compile 2D mesh data
@m_deprecated_since_latest Use @ref compile(const Trade::MeshData&, CompileFlags)
@m_deprecated_since{2020,06} Use @ref compile(const Trade::MeshData&, CompileFlags)
instead.
Configures a mesh for @ref Shaders::Generic2D shader with vertex buffer and
@ -238,7 +238,7 @@ CORRADE_IGNORE_DEPRECATED_POP
/**
@brief Compile 3D mesh data
@m_deprecated_since_latest Use @ref compile(const Trade::MeshData&, CompileFlags)
@m_deprecated_since{2020,06} Use @ref compile(const Trade::MeshData&, CompileFlags)
instead.
Configures mesh for @ref Shaders::Generic3D shader with vertex buffer and

24
src/Magnum/MeshTools/CompressIndices.h

@ -50,7 +50,7 @@ namespace Magnum { namespace MeshTools {
@param atLeast Smallest allowed type
@param offset Offset to subtract from each index
@return Compressed index array and corresponding type
@m_since_latest
@m_since{2020,06}
This function compresses @p indices to the smallest possible size. For example
when your indices have the maximum vertex index 463, it's wasteful to store
@ -80,19 +80,19 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<char>, MeshIndexType> compre
/**
@overload
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<char>, MeshIndexType> compressIndices(const Containers::StridedArrayView1D<const UnsignedShort>& indices, MeshIndexType atLeast = MeshIndexType::UnsignedShort, Long offset = 0);
/**
@overload
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<char>, MeshIndexType> compressIndices(const Containers::StridedArrayView1D<const UnsignedByte>& indices, MeshIndexType atLeast = MeshIndexType::UnsignedShort, Long offset = 0);
/**
@overload
@m_since_latest
@m_since{2020,06}
Same as @ref compressIndices(const Containers::StridedArrayView1D<const UnsignedInt>&, MeshIndexType, Long)
with @p atLeast set to @ref MeshIndexType::UnsignedShort.
@ -101,7 +101,7 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<char>, MeshIndexType> compre
/**
@overload
@m_since_latest
@m_since{2020,06}
Same as @ref compressIndices(const Containers::StridedArrayView1D<const UnsignedShort>&, MeshIndexType, Long)
with @p atLeast set to @ref MeshIndexType::UnsignedShort.
@ -110,7 +110,7 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<char>, MeshIndexType> compre
/**
@overload
@m_since_latest
@m_since{2020,06}
Same as @ref compressIndices(const Containers::StridedArrayView1D<const UnsignedByte>&, MeshIndexType, Long)
with @p atLeast set to @ref MeshIndexType::UnsignedShort.
@ -119,7 +119,7 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<char>, MeshIndexType> compre
/**
@brief Compress a type-erased index array
@m_since_latest
@m_since{2020,06}
Expects that the second dimension of @p indices is contiguous and represents
the actual 1/2/4-byte index type. Based on its size then calls one of the
@ -130,7 +130,7 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<char>, MeshIndexType> compre
/**
@overload
@m_since_latest
@m_since{2020,06}
Same as @ref compressIndices(const Containers::StridedArrayView2D<const char>&, MeshIndexType, Long)
with @p atLeast set to @ref MeshIndexType::UnsignedShort.
@ -139,7 +139,7 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<char>, MeshIndexType> compre
/**
@brief Compress mesh data indices
@m_since_latest
@m_since{2020,06}
Does the same as @ref compressIndices(const Containers::StridedArrayView2D<const char>&, MeshIndexType, Long),
but together with adjusting vertex attribute offsets in the passed
@ -151,7 +151,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData compressIndices(const Trade::MeshData& d
/**
@brief Compress mesh data indices
@m_since_latest
@m_since{2020,06}
Compared to @ref compressIndices(const Trade::MeshData&, MeshIndexType) this
function can transfer ownership of @p data vertex buffer (in case it is
@ -166,7 +166,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData compressIndices(Trade::MeshData&& data,
@brief Compress vertex indices
@param indices Index array
@return Index range, type and compressed index array
@m_deprecated_since_latest Use @ref compressIndices(const Containers::StridedArrayView1D<const UnsignedInt>&, MeshIndexType, Long)
@m_deprecated_since{2020,06} Use @ref compressIndices(const Containers::StridedArrayView1D<const UnsignedInt>&, MeshIndexType, Long)
instead. The index range isn't returned anymore, use @ref Math::minmax(const Containers::StridedArrayView1D<const T>&)
to get it if needed.
@ -183,7 +183,7 @@ CORRADE_DEPRECATED("use compressIndices(const Containers::StridedArrayView1D<con
/**
@brief Compress vertex indices as given type
@m_deprecated_since_latest Use @ref compressIndices(const Containers::StridedArrayView1D<const UnsignedInt>&, MeshIndexType, Long)
@m_deprecated_since{2020,06} Use @ref compressIndices(const Containers::StridedArrayView1D<const UnsignedInt>&, MeshIndexType, Long)
instead.
The type can be either @ref Magnum::UnsignedByte "UnsignedByte",

10
src/Magnum/MeshTools/Concatenate.h

@ -27,7 +27,7 @@
/** @file
* @brief Function @ref Magnum::MeshTools::concatenate(), @ref Magnum::MeshTools::concatenateInto()
* @m_since_latest
* @m_since{2020,06}
*/
#include <Corrade/Containers/GrowableArray.h>
@ -45,7 +45,7 @@ namespace Implementation {
/**
@brief Concatenate meshes together
@m_since_latest
@m_since{2020,06}
The returned mesh contains vertices from all meshes concatenated together. If
any mesh is indexed, the resulting mesh is indexed as well, with indices
@ -76,7 +76,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData concatenate(Containers::ArrayView<const
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT Trade::MeshData concatenate(std::initializer_list<Containers::Reference<const Trade::MeshData>> meshes);
@ -86,7 +86,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData concatenate(std::initializer_list<Contai
@param[in,out] destination Destination mesh from which the output arrays as
well as desired attribute layout is taken
@param[in] meshes Meshes to concatenate
@m_since_latest
@m_since{2020,06}
Compared to @ref concatenate(Containers::ArrayView<const Containers::Reference<const Trade::MeshData>>)
this function resizes existing index and vertex buffers in @p destination using
@ -126,7 +126,7 @@ template<template<class> class Allocator = Containers::ArrayAllocator> void conc
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
template<template<class> class Allocator = Containers::ArrayAllocator> void concatenateInto(Trade::MeshData& destination, const std::initializer_list<Containers::Reference<const Trade::MeshData>> meshes) {
concatenateInto<Allocator>(destination, Containers::arrayView(meshes));

14
src/Magnum/MeshTools/Duplicate.h

@ -70,7 +70,7 @@ template<class IndexType, class T> Containers::Array<T> duplicate(const Containe
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief Duplicate data using given index array
@m_deprecated_since_latest Use @ref duplicate(const Containers::StridedArrayView1D<const IndexType>&, const Containers::StridedArrayView1D<const T>&)
@m_deprecated_since{2020,06} Use @ref duplicate(const Containers::StridedArrayView1D<const IndexType>&, const Containers::StridedArrayView1D<const T>&)
or @ref duplicateInto() instead.
*/
template<class T> CORRADE_DEPRECATED("use duplicate() taking a StridedArrayView instead") std::vector<T> duplicate(const std::vector<UnsignedInt>& indices, const std::vector<T>& data) {
@ -98,7 +98,7 @@ template<class IndexType, class T> void duplicateInto(const Containers::StridedA
@param[in] indices Index array to use
@param[in] data Input data
@param[out] out Where to store the output
@m_since_latest
@m_since{2020,06}
Compared to @ref duplicateInto(const Containers::StridedArrayView1D<const IndexType>&, const Containers::StridedArrayView1D<const T>&, const Containers::StridedArrayView1D<T>&)
accepts a 2D view, where the second dimension spans the actual type. Expects
@ -110,19 +110,19 @@ MAGNUM_MESHTOOLS_EXPORT void duplicateInto(const Containers::StridedArrayView1D<
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT void duplicateInto(const Containers::StridedArrayView1D<const UnsignedShort>& indices, const Containers::StridedArrayView2D<const char>& data, const Containers::StridedArrayView2D<char>& out);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT void duplicateInto(const Containers::StridedArrayView1D<const UnsignedByte>& indices, const Containers::StridedArrayView2D<const char>& data, const Containers::StridedArrayView2D<char>& out);
/**
@brief Duplicate type-erased data using a type-erased index array into given output array
@m_since_latest
@m_since{2020,06}
Expects that the second dimension of @p indices is contiguous and represents
the actual 1/2/4-byte index type. Based on its size then calls one of the
@ -133,7 +133,7 @@ MAGNUM_MESHTOOLS_EXPORT void duplicateInto(const Containers::StridedArrayView2D<
/**
@brief Duplicate indexed mesh data
@m_since_latest
@m_since{2020,06}
Returns a copy of @p data that's not indexed and has all attributes interleaved
and duplicated according to @p data's index buffer. The @p extra attributes, if
@ -153,7 +153,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData duplicate(const Trade::MeshData& data, C
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT Trade::MeshData duplicate(const Trade::MeshData& data, std::initializer_list<Trade::MeshAttributeData> extra);

20
src/Magnum/MeshTools/FlipNormals.h

@ -57,19 +57,19 @@ void flipNormalsInPlace(const Containers::StridedArrayView1D<UnsignedInt>& indic
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
void flipNormalsInPlace(const Containers::StridedArrayView1D<UnsignedShort>& indices, const Containers::StridedArrayView1D<Vector3>& normals);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
void flipNormalsInPlace(const Containers::StridedArrayView1D<UnsignedByte>& indices, const Containers::StridedArrayView1D<Vector3>& normals);
/**
@brief Flip mesh normals and face winding in-place on a type-erased index array
@m_since_latest
@m_since{2020,06}
Expects that the second dimension of @p indices is contiguous and represents
the actual 1/2/4-byte index type. Based on its size then calls one of the
@ -81,7 +81,7 @@ void flipNormalsInPlace(const Containers::StridedArrayView2D<char>& indices, con
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief @copybrief flipNormalsInPlace(const Containers::StridedArrayView1D<UnsignedInt>&, const Containers::StridedArrayView1D<Vector3>&)
@m_deprecated_since_latest Use @ref flipNormalsInPlace(const Containers::StridedArrayView1D<UnsignedInt>&, const Containers::StridedArrayView1D<Vector3>&)
@m_deprecated_since{2020,06} Use @ref flipNormalsInPlace(const Containers::StridedArrayView1D<UnsignedInt>&, const Containers::StridedArrayView1D<Vector3>&)
instead.
*/
CORRADE_DEPRECATED("use flipNormalsInPlace() instead") MAGNUM_MESHTOOLS_EXPORT void flipNormals(std::vector<UnsignedInt>& indices, std::vector<Vector3>& normals);
@ -90,7 +90,7 @@ CORRADE_DEPRECATED("use flipNormalsInPlace() instead") MAGNUM_MESHTOOLS_EXPORT v
/**
@brief Flip face winding in-place
@param[in,out] indices Index array to operate on
@m_since_latest
@m_since{2020,06}
Same as @ref flipNormalsInPlace(const Containers::StridedArrayView1D<UnsignedInt>&, const Containers::StridedArrayView1D<Vector3>&),
but flips only face winding. Expects a triangle mesh, thus the index count has
@ -100,19 +100,19 @@ void MAGNUM_MESHTOOLS_EXPORT flipFaceWindingInPlace(const Containers::StridedArr
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
void MAGNUM_MESHTOOLS_EXPORT flipFaceWindingInPlace(const Containers::StridedArrayView1D<UnsignedShort>& indices);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
void MAGNUM_MESHTOOLS_EXPORT flipFaceWindingInPlace(const Containers::StridedArrayView1D<UnsignedByte>& indices);
/**
@brief Flip face winding in-place on a type-erased index array
@m_since_latest
@m_since{2020,06}
Expects that the second dimension of @p indices is contiguous and represents
the actual 1/2/4-byte index type. Based on its size then calls one of the
@ -124,7 +124,7 @@ void MAGNUM_MESHTOOLS_EXPORT flipFaceWindingInPlace(const Containers::StridedArr
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief @copybrief flipFaceWindingInPlace(const Containers::StridedArrayView1D<UnsignedInt>&)
@m_deprecated_since_latest Use @ref flipFaceWindingInPlace(const Containers::StridedArrayView1D<UnsignedInt>&)
@m_deprecated_since{2020,06} Use @ref flipFaceWindingInPlace(const Containers::StridedArrayView1D<UnsignedInt>&)
instead.
*/
CORRADE_DEPRECATED("use flipFaceWindingInPlace() instead") MAGNUM_MESHTOOLS_EXPORT void flipFaceWinding(std::vector<UnsignedInt>& indices);
@ -142,7 +142,7 @@ void MAGNUM_MESHTOOLS_EXPORT flipNormalsInPlace(const Containers::StridedArrayVi
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@copybrief flipNormalsInPlace(const Containers::StridedArrayView1D<Vector3>&)
@m_deprecated_since_latest Use @ref flipNormalsInPlace(const Containers::StridedArrayView1D<Vector3>&)
@m_deprecated_since{2020,06} Use @ref flipNormalsInPlace(const Containers::StridedArrayView1D<Vector3>&)
instead.
*/
CORRADE_DEPRECATED("use flipNormalsInPlace() instead") MAGNUM_MESHTOOLS_EXPORT void flipNormals(std::vector<Vector3>& normals);

24
src/Magnum/MeshTools/GenerateIndices.h

@ -27,7 +27,7 @@
/** @file
* @brief Function @ref Magnum::MeshTools::primitiveCount(), @ref Magnum::MeshTools::generateLineStripIndices(), @ref Magnum::MeshTools::generateLineStripIndicesInto(), @ref Magnum::MeshTools::generateLineLoopIndices(), @ref Magnum::MeshTools::generateLineLoopIndicesInto(), @ref Magnum::MeshTools::generateTriangleStripIndices(), @ref Magnum::MeshTools::generateTriangleStripIndicesInto(), @ref Magnum::MeshTools::generateTriangleFanIndices(), @ref Magnum::MeshTools::generateTriangleFanIndicesInto(), @ref Magnum::MeshTools::generateIndices()
* @m_since_latest
* @m_since{2020,06}
*/
#include "Magnum/Magnum.h"
@ -38,7 +38,7 @@ namespace Magnum { namespace MeshTools {
/**
@brief Actual primitive count for given primitive type and element count
@m_since_latest
@m_since{2020,06}
Returns how many primitives is generated for given @p primitive and
@p elementCount, for example for @ref MeshPrimitive::Triangles returns
@ -50,7 +50,7 @@ MAGNUM_MESHTOOLS_EXPORT UnsignedInt primitiveCount(MeshPrimitive primitive, Unsi
/**
@brief Create index buffer for a line strip primitive
@m_since_latest
@m_since{2020,06}
Can be used to convert a @ref MeshPrimitive::LineStrip mesh to
@ref MeshPrimitive::Lines. The @p vertexCount is expected to be at least
@ -63,7 +63,7 @@ MAGNUM_MESHTOOLS_EXPORT Containers::Array<UnsignedInt> generateLineStripIndices(
/**
@brief Create index buffer for a line strip primitive into an existing array
@m_since_latest
@m_since{2020,06}
A variant of @ref generateLineStripIndicesInto() that fills existing memory
instead of allocating a new array. The @p vertexCount is expected to be at
@ -74,7 +74,7 @@ MAGNUM_MESHTOOLS_EXPORT void generateLineStripIndicesInto(UnsignedInt vertexCoun
/**
@brief Create index buffer for a line loop primitive
@m_since_latest
@m_since{2020,06}
Can be used to convert a @ref MeshPrimitive::LineLoop mesh to
@ref MeshPrimitive::Lines. The @p vertexCount is expected to be at least
@ -87,7 +87,7 @@ MAGNUM_MESHTOOLS_EXPORT Containers::Array<UnsignedInt> generateLineLoopIndices(U
/**
@brief Create index buffer for a line loop primitive into an existing array
@m_since_latest
@m_since{2020,06}
A variant of @ref generateLineLoopIndicesInto() that fills existing memory
instead of allocating a new array. The @p vertexCount is expected to be at
@ -98,7 +98,7 @@ MAGNUM_MESHTOOLS_EXPORT void generateLineLoopIndicesInto(UnsignedInt vertexCount
/**
@brief Create index buffer for a triangle strip primitive
@m_since_latest
@m_since{2020,06}
Can be used to convert a @ref MeshPrimitive::TriangleStrip mesh to
@ref MeshPrimitive::Triangles. The @p vertexCount is expected to be at least
@ -111,7 +111,7 @@ MAGNUM_MESHTOOLS_EXPORT Containers::Array<UnsignedInt> generateTriangleStripIndi
/**
@brief Create index buffer for a triangle strip primitive into an existing array
@m_since_latest
@m_since{2020,06}
A variant of @ref generateTriangleStripIndicesInto() that fills existing memory
instead of allocating a new array. The @p vertexCount is expected to be at
@ -122,7 +122,7 @@ MAGNUM_MESHTOOLS_EXPORT void generateTriangleStripIndicesInto(UnsignedInt vertex
/**
@brief Create index buffer for a triangle fan primitive
@m_since_latest
@m_since{2020,06}
Can be used to convert a @ref MeshPrimitive::TriangleFan mesh to
@ref MeshPrimitive::Triangles. The @p vertexCount is expected to be at least
@ -135,7 +135,7 @@ MAGNUM_MESHTOOLS_EXPORT Containers::Array<UnsignedInt> generateTriangleFanIndice
/**
@brief Create index buffer for a triangle fan primitive into an existing array
@m_since_latest
@m_since{2020,06}
A variant of @ref generateTriangleFanIndicesInto() that fills existing memory
instead of allocating a new array. The @p vertexCount is expected to be at
@ -146,7 +146,7 @@ MAGNUM_MESHTOOLS_EXPORT void generateTriangleFanIndicesInto(UnsignedInt vertexCo
/**
@brief Convert a mesh to plain indexed lines or triangles
@m_since_latest
@m_since{2020,06}
Expects that @p mesh is not indexed and is one of
@ref MeshPrimitive::LineStrip, @ref MeshPrimitive::LineLoop,
@ -164,7 +164,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData generateIndices(const Trade::MeshData& m
/**
@brief Convert a mesh to plain indexed lines or triangles
@m_since_latest
@m_since{2020,06}
Compared to @ref generateIndices(const Trade::MeshData&) this function can
transfer ownership of @p data vertex buffer (in case it is owned) to the

4
src/Magnum/MeshTools/GenerateNormals.h

@ -134,7 +134,7 @@ MAGNUM_MESHTOOLS_EXPORT Containers::Array<Vector3> generateSmoothNormals(const C
/**
@brief Generate smooth normals using a type-erased index array
@m_since_latest
@m_since{2020,06}
Expects that the second dimension of @p indices is contiguous and represents
the actual 1/2/4-byte index type. Based on its size then calls one of the
@ -180,7 +180,7 @@ MAGNUM_MESHTOOLS_EXPORT void generateSmoothNormalsInto(const Containers::Strided
/**
@brief Generate smooth normals into an existing array using a type-erased index array
@m_since_latest
@m_since{2020,06}
Expects that @p normals has the same size as @p positions and that the second
dimension of @p indices is contiguous and represents the actual 1/2/4-byte

22
src/Magnum/MeshTools/Interleave.h

@ -192,7 +192,7 @@ template<class T, class ...U> void interleaveInto(Containers::ArrayView<char> bu
/**
@brief If the mesh data is interleaved
@m_since_latest
@m_since{2020,06}
Returns @cpp true @ce if all attributes have the same stride and the difference
between minimal and maximal offset is not larger than the stride, @cpp false @ce
@ -205,7 +205,7 @@ MAGNUM_MESHTOOLS_EXPORT bool isInterleaved(const Trade::MeshData& data);
/**
@brief Type-erased view on interleaved mesh data
@m_since_latest
@m_since{2020,06}
Returns a 2D view on @ref Trade::MeshData::vertexData() that spans all
interleaved attributes, with the first dimension being the vertex count and the
@ -217,7 +217,7 @@ MAGNUM_MESHTOOLS_EXPORT Containers::StridedArrayView2D<const char> interleavedDa
/**
@brief Mutable type-erased view on interleaved mesh data
@m_since_latest
@m_since{2020,06}
Same as @ref interleavedData(), but returns a mutable view. Expects that the
mesh is interleaved and vertex data is mutable.
@ -227,7 +227,7 @@ MAGNUM_MESHTOOLS_EXPORT Containers::StridedArrayView2D<char> interleavedMutableD
/**
@brief Create an interleaved mesh layout
@m_since_latest
@m_since{2020,06}
Returns a @ref Trade::MeshData instance with its vertex data allocated for
@p vertexCount vertices containing attributes from both @p data and @p extra
@ -260,13 +260,13 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData interleavedLayout(const Trade::MeshData&
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT Trade::MeshData interleavedLayout(const Trade::MeshData& data, UnsignedInt vertexCount, std::initializer_list<Trade::MeshAttributeData> extra);
/**
@brief Create an interleaved mesh layout
@m_since_latest
@m_since{2020,06}
Compared to @ref interleavedLayout(const Trade::MeshData&, UnsignedInt, Containers::ArrayView<const Trade::MeshAttributeData>)
this function can reuse the @ref Trade::MeshAttributeData array from @p data
@ -277,13 +277,13 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData interleavedLayout(Trade::MeshData&& data
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT Trade::MeshData interleavedLayout(Trade::MeshData&& data, UnsignedInt vertexCount, std::initializer_list<Trade::MeshAttributeData> extra);
/**
@brief Interleave mesh data
@m_since_latest
@m_since{2020,06}
Returns a copy of @p data with all attributes interleaved. Indices (if any) are
kept as-is. The @p extra attributes, if any, are interleaved together with
@ -305,13 +305,13 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData interleave(const Trade::MeshData& data,
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT Trade::MeshData interleave(const Trade::MeshData& data, std::initializer_list<Trade::MeshAttributeData> extra);
/**
@brief Interleave mesh data
@m_since_latest
@m_since{2020,06}
Compared to @ref interleave(const Trade::MeshData&, Containers::ArrayView<const Trade::MeshAttributeData>)
this function can transfer ownership of @p data index buffer (in case it is
@ -326,7 +326,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData interleave(Trade::MeshData&& data, Conta
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT Trade::MeshData interleave(Trade::MeshData&& data, std::initializer_list<Trade::MeshAttributeData> extra);

10
src/Magnum/MeshTools/Reference.h

@ -27,7 +27,7 @@
/** @file
* @brief Function @ref Magnum::MeshTools::reference(), @ref Magnum::MeshTools::owned()
* @m_since_latest
* @m_since{2020,06}
*/
#include "Magnum/MeshTools/visibility.h"
@ -37,7 +37,7 @@ namespace Magnum { namespace MeshTools {
/**
@brief Create an immutable reference on a @ref Trade::MeshData
@m_since_latest
@m_since{2020,06}
The returned instance has empty @ref Trade::MeshData::indexDataFlags() and
@ref Trade::MeshData::vertexDataFlags() and references attribute data from the
@ -49,7 +49,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData reference(const Trade::MeshData& data);
/**
@brief Create a mutable reference on a @ref Trade::MeshData
@m_since_latest
@m_since{2020,06}
The returned instance has @ref Trade::MeshData::indexDataFlags() and
@ref Trade::MeshData::vertexDataFlags() set to @ref Trade::DataFlag::Mutable.
@ -61,7 +61,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData mutableReference(Trade::MeshData& data);
/**
@brief Create an owned @ref Trade::MeshData
@m_since_latest
@m_since{2020,06}
The returned instance owns its index, vertex and attribute data --- both
@ref Trade::MeshData::indexDataFlags() and
@ -76,7 +76,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData owned(const Trade::MeshData& data);
/**
@brief Create an owned @ref Trade::MeshData, if not already
@m_since_latest
@m_since{2020,06}
The returned instance owns its index, vertex and attribute data --- both
@ref Trade::MeshData::indexDataFlags() and

48
src/Magnum/MeshTools/RemoveDuplicates.h

@ -50,7 +50,7 @@ namespace Magnum { namespace MeshTools {
preserved
@return The resulting index array and size of unique prefix in the cleaned up
@p data array
@m_since_latest
@m_since{2020,06}
Removes duplicate data from given array by comparing the second dimension of
each item, the second dimension is expected to be contiguous. A plain bit-exact
@ -76,7 +76,7 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<UnsignedInt>, std::size_t> r
preserved
@param[out] indices Where to put the resulting index array
@return Size of unique prefix in the cleaned up @p data array
@m_since_latest
@m_since{2020,06}
Same as above, except that the index array is not allocated but put into
@p indices instead. Expects that @p indices has the same size as @p data.
@ -89,7 +89,7 @@ MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesInPlaceInto(const Containers
@param[in] data Data array
@return The resulting index array and count of unique items in the original
@p data array
@m_since_latest
@m_since{2020,06}
Compared to @ref removeDuplicatesInPlace(const Containers::StridedArrayView2D<char>&)
this function doesn't modify the input data array in any way but instead
@ -102,7 +102,7 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<UnsignedInt>, std::size_t> r
@param[in] data Data array
@param[out] indices Where to put the resulting index array
@return Count of unique items in the original @p data array
@m_since_latest
@m_since{2020,06}
Compared to @ref removeDuplicatesInPlaceInto(const Containers::StridedArrayView2D<char>&, const Containers::StridedArrayView1D<UnsignedInt>&)
this function doesn't modify the input data array in any way but instead
@ -117,7 +117,7 @@ MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesInto(const Containers::Strid
@param[in,out] data Data array, duplicate items will be cut away with order
preserved
@return Size of unique prefix in the cleaned up @p data array
@m_since_latest
@m_since{2020,06}
Compared to @ref removeDuplicatesInPlace(const Containers::StridedArrayView2D<char>&)
this variant is more suited for data that is already indexed as it works on
@ -127,19 +127,19 @@ MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesIndexedInPlace(const Contain
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesIndexedInPlace(const Containers::StridedArrayView1D<UnsignedShort>& indices, const Containers::StridedArrayView2D<char>& data);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesIndexedInPlace(const Containers::StridedArrayView1D<UnsignedByte>& indices, const Containers::StridedArrayView2D<char>& data);
/**
@brief Remove duplicates from indexed data in-place on a type-erased index array
@m_since_latest
@m_since{2020,06}
Expects that the second dimension of @p indices is contiguous and represents
the actual 1/2/4-byte index type. Based on its size then calls one of the
@ -156,7 +156,7 @@ MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesIndexedInPlace(const Contain
melt together
@return Size of unique prefix in the cleaned up @p data array and the resulting
index array
@m_since_latest
@m_since{2020,06}
Removes duplicate data from the array by collapsing them into buckets of size
@p epsilon. First vector in given bucket is used, other ones are thrown away,
@ -177,7 +177,7 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<UnsignedInt>, std::size_t> r
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<UnsignedInt>, std::size_t> removeDuplicatesFuzzyInPlace(const Containers::StridedArrayView2D<Double>& data, Double epsilon = Math::TypeTraits<Double>::epsilon());
@ -189,7 +189,7 @@ MAGNUM_MESHTOOLS_EXPORT std::pair<Containers::Array<UnsignedInt>, std::size_t> r
@param[in] epsilon Epsilon value, data closer than this distance will be
melt together
@return Size of unique prefix in the cleaned up @p data array
@m_since_latest
@m_since{2020,06}
Same as above, except that the index array is not allocated but put into
@p indices instead. Expects that @p indices has the same size as @p data.
@ -198,7 +198,7 @@ MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyInPlaceInto(const Conta
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyInPlaceInto(const Containers::StridedArrayView2D<Double>& data, const Containers::StridedArrayView1D<UnsignedInt>& indices, Double epsilon = Math::TypeTraits<Double>::epsilon());
@ -210,7 +210,7 @@ MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyInPlaceInto(const Conta
@param[in] epsilon Epsilon value, vertices closer than this distance will be
melt together
@return Resulting index array
@m_deprecated_since_latest Use @ref removeDuplicatesFuzzyInPlace() instead.
@m_deprecated_since{2020,06} Use @ref removeDuplicatesFuzzyInPlace() instead.
Similar to the above, except that it's operating on a @ref std::vector, which
gets shrunk as a result (instead of the prefix size being returned). This
@ -233,7 +233,7 @@ template<class Vector> CORRADE_DEPRECATED("use removeDuplicatesInPlace() instead
@param[in] epsilon Epsilon value, vertices closer than this distance will
be melt together
@return Size of unique prefix in the cleaned up @p data array
@m_since_latest
@m_since{2020,06}
Compared to @ref removeDuplicatesFuzzyInPlace(const Containers::StridedArrayView2D<Float>&, Float)
this variant is more suited for data that is already indexed as it works on
@ -243,37 +243,37 @@ MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyIndexedInPlace(const Co
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyIndexedInPlace(const Containers::StridedArrayView1D<UnsignedShort>& indices, const Containers::StridedArrayView2D<Float>& data, Float epsilon = Math::TypeTraits<Float>::epsilon());
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyIndexedInPlace(const Containers::StridedArrayView1D<UnsignedByte>& indices, const Containers::StridedArrayView2D<Float>& data, Float epsilon = Math::TypeTraits<Float>::epsilon());
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyIndexedInPlace(const Containers::StridedArrayView1D<UnsignedInt>& indices, const Containers::StridedArrayView2D<Double>& data, Double epsilon = Math::TypeTraits<Double>::epsilon());
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyIndexedInPlace(const Containers::StridedArrayView1D<UnsignedShort>& indices, const Containers::StridedArrayView2D<Double>& data, Double epsilon = Math::TypeTraits<Double>::epsilon());
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyIndexedInPlace(const Containers::StridedArrayView1D<UnsignedByte>& indices, const Containers::StridedArrayView2D<Double>& data, Double epsilon = Math::TypeTraits<Double>::epsilon());
/**
@brief Remove duplicates from indexed data using fuzzy comparison in-place on a type-erased index array
@m_since_latest
@m_since{2020,06}
Expects that the second dimension of @p indices is contiguous and represents
the actual 1/2/4-byte index type. Based on its size then calls
@ -284,13 +284,13 @@ MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyIndexedInPlace(const Co
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT std::size_t removeDuplicatesFuzzyIndexedInPlace(const Containers::StridedArrayView2D<char>& indices, const Containers::StridedArrayView2D<Double>& data, Double epsilon = Math::TypeTraits<Double>::epsilon());
/**
@brief Remove mesh data duplicates
@m_since_latest
@m_since{2020,06}
Equivalent to calling @ref removeDuplicatesInPlace() (or
@ref removeDuplicatesIndexedInPlace(), in case the mesh is indexed) on a
@ -310,7 +310,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData removeDuplicates(const Trade::MeshData&
/**
@brief Remove mesh data duplicates
@m_since_latest
@m_since{2020,06}
Same as @ref removeDuplicates(const Trade::MeshData&), except that it operates
in-place on the passed instance, avoiding an extra copy of vertex and index
@ -320,7 +320,7 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData removeDuplicates(Trade::MeshData&& data)
/**
@brief Remove mesh data duplicates with fuzzy comparison for floating-point attributes
@m_since_latest
@m_since{2020,06}
Compared to @ref removeDuplicates(const Trade::MeshData&), calls
@ref removeDuplicatesFuzzyInPlace() or @ref removeDuplicatesFuzzyIndexedInPlace()

8
src/Magnum/MeshTools/Subdivide.h

@ -54,7 +54,7 @@ template<class IndexType, class Vertex, class Interpolator> void subdivideInPlac
@param[in,out] vertices Vertex array to operate on
@param interpolator Functor or function pointer which interpolates
two adjacent vertices: @cpp Vertex interpolator(Vertex a, Vertex b) @ce
@m_since_latest
@m_since{2020,06}
Goes through all triangle faces and subdivides them into four new, enlarging
the @p indices and @p vertices arrays as appropriate. Removing duplicate
@ -72,7 +72,7 @@ template<class IndexType, class Vertex, class Interpolator> void subdivide(Conta
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief Subdivide a mesh
@m_deprecated_since_latest Use @ref subdivide(Containers::Array<IndexType>&, Containers::Array<Vertex>&vertices, Interpolator)
@m_deprecated_since{2020,06} Use @ref subdivide(Containers::Array<IndexType>&, Containers::Array<Vertex>&vertices, Interpolator)
or @ref subdivideInPlace() instead.
*/
template<class Vertex, class Interpolator> CORRADE_DEPRECATED("use subdivide(Containers::Array<IndexType>&, Containers::Array<Vertex>&vertices, Interpolator) or subdivideInPlace() instead") void subdivide(std::vector<UnsignedInt>& indices, std::vector<Vertex>& vertices, Interpolator interpolator) {
@ -92,7 +92,7 @@ template<class Vertex, class Interpolator> CORRADE_DEPRECATED("use subdivide(Con
@param[in,out] vertices Vertex array to operate on
@param interpolator Functor or function pointer which interpolates
two adjacent vertices: @cpp Vertex interpolator(Vertex a, Vertex b) @ce
@m_since_latest
@m_since{2020,06}
Assuming the original mesh has @f$ i @f$ indices and @f$ v @f$ vertices,
expects the @p indices array to have a size of @f$ 4i @f$ (as every triangle
@ -162,7 +162,7 @@ template<class IndexType, class Vertex, class Interpolator> void subdivideInPlac
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
template<class IndexType, class Vertex, class Interpolator> void subdivideInPlace(const Containers::ArrayView<IndexType>& indices, const Containers::StridedArrayView1D<Vertex>& vertices, Interpolator interpolator) {
subdivideInPlace(Containers::stridedArrayView(indices), vertices, interpolator);

6
src/Magnum/MeshTools/Tipsify.h

@ -60,20 +60,20 @@ MAGNUM_MESHTOOLS_EXPORT void tipsifyInPlace(const Containers::StridedArrayView1D
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT void tipsifyInPlace(const Containers::StridedArrayView1D<UnsignedShort>& indices, UnsignedInt vertexCount, std::size_t cacheSize);
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
MAGNUM_MESHTOOLS_EXPORT void tipsifyInPlace(const Containers::StridedArrayView1D<UnsignedByte>& indices, UnsignedInt vertexCount, std::size_t cacheSize);
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief @copybrief tipsifyInPlace()
* @m_deprecated_since_latest Use @ref tipsifyInPlace() instead.
* @m_deprecated_since{2020,06} Use @ref tipsifyInPlace() instead.
*/
inline CORRADE_DEPRECATED("use tipsifyInPlace() instead") void tipsify(std::vector<UnsignedInt>& indices, UnsignedInt vertexCount, std::size_t cacheSize) {
tipsifyInPlace(indices, vertexCount, cacheSize);

2
src/Magnum/MeshTools/sceneconverter.cpp

@ -45,7 +45,7 @@ namespace Magnum {
/** @page magnum-sceneconverter Scene conversion utility
@brief Converts scenes of different formats
@m_since_latest
@m_since{2020,06}
@m_footernavigation
@m_keywords{magnum-sceneconverter sceneconverter}

4
src/Magnum/PixelFormat.h

@ -2310,7 +2310,7 @@ namespace Corrade { namespace Utility {
/**
@configurationvalue{Magnum::PixelFormat}
@m_since_latest
@m_since{2020,06}
*/
template<> struct MAGNUM_EXPORT ConfigurationValue<Magnum::PixelFormat> {
ConfigurationValue() = delete;
@ -2332,7 +2332,7 @@ template<> struct MAGNUM_EXPORT ConfigurationValue<Magnum::PixelFormat> {
/**
@configurationvalue{Magnum::CompressedPixelFormat}
@m_since_latest
@m_since{2020,06}
*/
template<> struct MAGNUM_EXPORT ConfigurationValue<Magnum::CompressedPixelFormat> {
ConfigurationValue() = delete;

2
src/Magnum/Platform/AbstractXApplication.h

@ -120,7 +120,7 @@ class AbstractXApplication {
* @brief Run one iteration of application main loop
* @return @cpp false @ce if @ref exit() was called and the application
* should exit, @cpp true @ce otherwise
* @m_since_latest
* @m_since{2020,06}
*
* Called internally from @ref exec(). If you want to have better
* control over how the main loop behaves, you can call this function

8
src/Magnum/Platform/EmscriptenApplication.h

@ -568,7 +568,7 @@ class EmscriptenApplication {
public:
/**
* @brief Cursor type
* @m_since_latest
* @m_since{2020,06}
*
* Value names in this enum don't necessarily match the CSS names in
* order to be compatible with @ref Sdl2Application and
@ -757,7 +757,7 @@ class EmscriptenApplication {
/**
* @brief Set cursor type
* @m_since_latest
* @m_since{2020,06}
*
* Default is @ref Cursor::Arrow.
*/
@ -765,7 +765,7 @@ class EmscriptenApplication {
/**
* @brief Get current cursor type
* @m_since_latest
* @m_since{2020,06}
*/
Cursor cursor();
@ -1705,7 +1705,7 @@ class EmscriptenApplication::KeyEvent: public EmscriptenApplication::InputEvent
/**
* Semicolon (`;`)
* @m_since_latest
* @m_since{2020,06}
*/
Semicolon,

50
src/Magnum/Platform/GlfwApplication.h

@ -253,7 +253,7 @@ class GlfwApplication {
* @brief Run one iteration of application main loop
* @return @cpp false @ce if @ref exit() was called and the application
* should exit, @cpp true @ce otherwise
* @m_since_latest
* @m_since{2020,06}
*
* Called internally from @ref exec(). If you want to have better
* control over how the main loop behaves, you can call this function
@ -380,7 +380,7 @@ class GlfwApplication {
/**
* @brief Set window size
* @param size The size, in screen coordinates
* @m_since_latest
* @m_since{2020,06}
*
* To make the sizing work independently of the display DPI, @p size is
* internally multiplied with @ref dpiScaling() before getting applied.
@ -470,7 +470,7 @@ class GlfwApplication {
#if GLFW_VERSION_MAJOR*100 + GLFW_VERSION_MINOR >= 302 || defined(DOXYGEN_GENERATING_OUTPUT)
/**
* @brief Set window icon
* @m_since_latest
* @m_since{2020,06}
*
* The @p images are expected to be with origin at bottom left (which
* is the default for imported images) and in one of
@ -486,7 +486,7 @@ class GlfwApplication {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
void setWindowIcon(const ImageView2D& image);
#endif
@ -575,7 +575,7 @@ class GlfwApplication {
public:
/**
* @brief Cursor type
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref setCursor()
*/
@ -626,7 +626,7 @@ class GlfwApplication {
/**
* @brief Set cursor type
* @m_since_latest
* @m_since{2020,06}
*
* Default is @ref Cursor::Arrow.
*/
@ -634,13 +634,13 @@ class GlfwApplication {
/**
* @brief Get current cursor type
* @m_since_latest
* @m_since{2020,06}
*/
Cursor cursor();
/**
* @brief Warp mouse cursor to given coordinates
* @m_since_latest
* @m_since{2020,06}
*/
void warpCursor(const Vector2i& position) {
glfwSetCursorPos(_window, Double(position.x()), Double(position.y()));
@ -1019,7 +1019,7 @@ class GlfwApplication::Configuration {
/**
* No window decoration
* @m_since_latest
* @m_since{2020,06}
*/
Borderless = 1 << 1,
@ -1039,7 +1039,7 @@ class GlfwApplication::Configuration {
/**
* Always on top
* @m_since_latest
* @m_since{2020,06}
*/
AlwaysOnTop = 1 << 6,
@ -1146,14 +1146,14 @@ class GlfwApplication::Configuration {
/**
* @brief Cursor mode
*
* @m_deprecated_since_latest Use @ref GlfwApplication::setCursor()
* @m_deprecated_since{2020,06} Use @ref GlfwApplication::setCursor()
* instead.
*/
enum class CORRADE_DEPRECATED_ENUM("use GlfwApplication::setCursor() instead") CursorMode: Int {
/**
* Visible unconstrained cursor
*
* @m_deprecated_since_latest Use @ref GlfwApplication::setCursor()
* @m_deprecated_since{2020,06} Use @ref GlfwApplication::setCursor()
* with @ref Cursor::Arrow (or any other) instead.
*/
Normal CORRADE_DEPRECATED_ENUM("use GlfwApplication::setCursor() with Cursor::Arrow instead") = GLFW_CURSOR_NORMAL,
@ -1161,7 +1161,7 @@ class GlfwApplication::Configuration {
/**
* Hidden cursor
*
* @m_deprecated_since_latest Use @ref GlfwApplication::setCursor()
* @m_deprecated_since{2020,06} Use @ref GlfwApplication::setCursor()
* with @ref Cursor::Hidden instead.
*/
Hidden CORRADE_DEPRECATED_ENUM("use GlfwApplication::setCursor() with Cursor::Hidden instead") = GLFW_CURSOR_HIDDEN,
@ -1169,7 +1169,7 @@ class GlfwApplication::Configuration {
/**
* Cursor hidden and locked window
*
* @m_deprecated_since_latest Use @ref GlfwApplication::setCursor()
* @m_deprecated_since{2020,06} Use @ref GlfwApplication::setCursor()
* with @ref Cursor::HiddenLocked instead.
*/
Disabled CORRADE_DEPRECATED_ENUM("use GlfwApplication::setCursor() with Cursor::HiddenLocked instead") = GLFW_CURSOR_DISABLED
@ -1270,7 +1270,7 @@ class GlfwApplication::Configuration {
/**
* @brief Add window flags
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Unlike @ref setWindowFlags(), ORs the flags with existing instead of
* replacing them. Useful for preserving the defaults.
@ -1284,7 +1284,7 @@ class GlfwApplication::Configuration {
/**
* @brief Clear window flags
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Unlike @ref setWindowFlags(), ANDs the inverse of @p flags with
* existing instead of replacing them. Useful for removing default
@ -1300,7 +1300,7 @@ class GlfwApplication::Configuration {
/**
* @brief Cursor mode
*
* @m_deprecated_since_latest Use @ref GlfwApplication::cursor()
* @m_deprecated_since{2020,06} Use @ref GlfwApplication::cursor()
* instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH
@ -1315,7 +1315,7 @@ class GlfwApplication::Configuration {
*
* Default is @ref CursorMode::Normal.
*
* @m_deprecated_since_latest Use @ref GlfwApplication::setCursor()
* @m_deprecated_since{2020,06} Use @ref GlfwApplication::setCursor()
* instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH
@ -1644,7 +1644,7 @@ class GlfwApplication::KeyEvent: public GlfwApplication::InputEvent {
/**
* Quote (<tt>'</tt>)
* @m_since_latest
* @m_since{2020,06}
*/
Quote = GLFW_KEY_APOSTROPHE,
@ -1669,37 +1669,37 @@ class GlfwApplication::KeyEvent: public GlfwApplication::InputEvent {
/**
* Left bracket (`[`)
* @m_since_latest
* @m_since{2020,06}
*/
LeftBracket = GLFW_KEY_LEFT_BRACKET,
/**
* Right bracket (`]`)
* @m_since_latest
* @m_since{2020,06}
*/
RightBracket = GLFW_KEY_RIGHT_BRACKET,
/**
* Backslash (`\`)
* @m_since_latest
* @m_since{2020,06}
*/
Backslash = GLFW_KEY_BACKSLASH,
/**
* Backquote (<tt>`</tt>)
* @m_since_latest
* @m_since{2020,06}
*/
Backquote = GLFW_KEY_GRAVE_ACCENT,
/**
* Non-US \#1
* @m_since_latest
* @m_since{2020,06}
*/
World1 = GLFW_KEY_WORLD_1,
/**
* Non-US \#2
* @m_since_latest
* @m_since{2020,06}
*/
World2 = GLFW_KEY_WORLD_2,

2
src/Magnum/Platform/ScreenedApplication.h

@ -295,7 +295,7 @@ template<class Application> class BasicScreenedApplication:
/**
* @brief Before draw event
* @m_since_latest
* @m_since{2020,06}
*
* Called *before* all screens' @ref BasicScreen::drawEvent() "drawEvent()".
* Unlike @ref globalDrawEvent() doesn't need to be implemented.

40
src/Magnum/Platform/Sdl2Application.h

@ -680,7 +680,7 @@ class Sdl2Application {
/**
* @brief Set window size
* @param size The size, in screen coordinates
* @m_since_latest
* @m_since{2020,06}
*
* To make the sizing work independently of the display DPI, @p size is
* internally multiplied with @ref dpiScaling() before getting applied.
@ -772,7 +772,7 @@ class Sdl2Application {
#if !defined(CORRADE_TARGET_EMSCRIPTEN) && (SDL_MAJOR_VERSION*1000 + SDL_MINOR_VERSION*100 + SDL_PATCHLEVEL >= 2005 || defined(DOXYGEN_GENERATING_OUTPUT))
/**
* @brief Set window icon
* @m_since_latest
* @m_since{2020,06}
*
* The @p image is expected to be with origin at bottom left (which is
* the default for imported images) and in one of
@ -935,7 +935,7 @@ class Sdl2Application {
public:
/**
* @brief Cursor type
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref setCursor()
*/
@ -967,7 +967,7 @@ class Sdl2Application {
/**
* @brief Set cursor type
* @m_since_latest
* @m_since{2020,06}
*
* Default is @ref Cursor::Arrow.
*/
@ -975,7 +975,7 @@ class Sdl2Application {
/**
* @brief Get current cursor type
* @m_since_latest
* @m_since{2020,06}
*/
Cursor cursor();
@ -994,7 +994,7 @@ class Sdl2Application {
/**
* @brief Whether mouse is locked
*
* @m_deprecated_since_latest Use @ref cursor() together with
* @m_deprecated_since{2020,06} Use @ref cursor() together with
* @ref Cursor::HiddenLocked instead.
*/
CORRADE_DEPRECATED("use cursor() together with Cursor::HiddenLocked instead") bool isMouseLocked() const { return SDL_GetRelativeMouseMode(); }
@ -1002,7 +1002,7 @@ class Sdl2Application {
/**
* @brief Enable or disable mouse locking
*
* @m_deprecated_since_latest Use @ref setCursor() together with
* @m_deprecated_since{2020,06} Use @ref setCursor() together with
* @ref Cursor::HiddenLocked instead.
*/
CORRADE_DEPRECATED("use setCursor() together with Cursor::HiddenLocked instead") void setMouseLocked(bool enabled);
@ -1536,7 +1536,7 @@ class Sdl2Application::Configuration {
/**
* Fullscreen window at the current desktop resolution
* @m_since_latest
* @m_since{2020,06}
*
* @note Not available on @ref CORRADE_TARGET_EMSCRIPTEN "Emscripten".
*/
@ -1599,7 +1599,7 @@ class Sdl2Application::Configuration {
#if SDL_MAJOR_VERSION*1000 + SDL_MINOR_VERSION*100 + SDL_PATCHLEVEL >= 2005 || defined(DOXYGEN_GENERATING_OUTPUT)
/**
* Always on top
* @m_since_latest
* @m_since{2020,06}
*
* @note Available since SDL 2.0.5, not available on
* @ref CORRADE_TARGET_EMSCRIPTEN "Emscripten". According to
@ -1609,7 +1609,7 @@ class Sdl2Application::Configuration {
/**
* Don't add the window to taskbar
* @m_since_latest
* @m_since{2020,06}
*
* @note Available since SDL 2.0.5, not available on
* @ref CORRADE_TARGET_EMSCRIPTEN "Emscripten". According to
@ -1619,7 +1619,7 @@ class Sdl2Application::Configuration {
/**
* Window should be treated as a utility window
* @m_since_latest
* @m_since{2020,06}
*
* @note Available since SDL 2.0.5, not available on
* @ref CORRADE_TARGET_EMSCRIPTEN "Emscripten". According to
@ -1629,7 +1629,7 @@ class Sdl2Application::Configuration {
/**
* Window should be treated as a tooltip
* @m_since_latest
* @m_since{2020,06}
*
* @note Available since SDL 2.0.5, not available on
* @ref CORRADE_TARGET_EMSCRIPTEN "Emscripten". According to
@ -1639,7 +1639,7 @@ class Sdl2Application::Configuration {
/**
* Window should be treated as a popup menu
* @m_since_latest
* @m_since{2020,06}
*
* @note Available since SDL 2.0.5, not available on
* @ref CORRADE_TARGET_EMSCRIPTEN "Emscripten". According to
@ -1869,7 +1869,7 @@ class Sdl2Application::Configuration {
/**
* @brief Add window flags
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Unlike @ref setWindowFlags(), ORs the flags with existing instead of
* replacing them. Useful for preserving the defaults.
@ -1883,7 +1883,7 @@ class Sdl2Application::Configuration {
/**
* @brief Clear window flags
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Unlike @ref setWindowFlags(), ANDs the inverse of @p flags with
* existing instead of replacing them. Useful for removing default
@ -2274,7 +2274,7 @@ class Sdl2Application::KeyEvent: public Sdl2Application::InputEvent {
/**
* Quote (<tt>'</tt>)
* @m_since_latest
* @m_since{2020,06}
*/
Quote = SDLK_QUOTE,
@ -2289,25 +2289,25 @@ class Sdl2Application::KeyEvent: public Sdl2Application::InputEvent {
/**
* Left bracket (`[`)
* @m_since_latest
* @m_since{2020,06}
*/
LeftBracket = SDLK_LEFTBRACKET,
/**
* Right bracket (`]`)
* @m_since_latest
* @m_since{2020,06}
*/
RightBracket = SDLK_RIGHTBRACKET,
/**
* Backslash (`\`)
* @m_since_latest
* @m_since{2020,06}
*/
Backslash = SDLK_BACKSLASH,
/**
* Backquote (<tt>`</tt>)
* @m_since_latest
* @m_since{2020,06}
*/
Backquote = SDLK_BACKQUOTE,

8
src/Magnum/Platform/WindowlessCglApplication.h

@ -128,7 +128,7 @@ class WindowlessCglContext {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call CGL functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the
@ -157,7 +157,7 @@ class WindowlessCglContext::Configuration {
/**
* @brief Create a shared context
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* When set, the created context will share a subset of OpenGL objects
* with @p context, instead of being independent. Many caveats and
@ -174,7 +174,7 @@ class WindowlessCglContext::Configuration {
/**
* @brief Shared context
* @m_since_latest
* @m_since{2020,06}
*/
CGLContextObj sharedContext() const { return _sharedContext; }
@ -329,7 +329,7 @@ class WindowlessCglApplication {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call CGL functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the

10
src/Magnum/Platform/WindowlessEglApplication.h

@ -123,7 +123,7 @@ class WindowlessEglContext {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call EGL functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the
@ -308,7 +308,7 @@ class WindowlessEglContext::Configuration {
/**
* @brief Create a shared context
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* When set, the created context will share a subset of OpenGL objects
* with @p context and its associated @p display, instead of being
@ -325,7 +325,7 @@ class WindowlessEglContext::Configuration {
/**
* @brief Shared display
* @m_since_latest
* @m_since{2020,06}
*
* @requires_gles Context sharing is not available in WebGL.
*/
@ -333,7 +333,7 @@ class WindowlessEglContext::Configuration {
/**
* @brief Shared context
* @m_since_latest
* @m_since{2020,06}
*
* @requires_gles Context sharing is not available in WebGL.
*/
@ -606,7 +606,7 @@ class WindowlessEglApplication {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call EGL functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the

8
src/Magnum/Platform/WindowlessGlxApplication.h

@ -142,7 +142,7 @@ class WindowlessGlxContext {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call GLX functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the
@ -253,7 +253,7 @@ class WindowlessGlxContext::Configuration {
/**
* @brief Create a shared context
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* When set, the created context will share a subset of OpenGL objects
* with @p context, instead of being independent. Many caveats and
@ -270,7 +270,7 @@ class WindowlessGlxContext::Configuration {
/**
* @brief Shared context
* @m_since_latest
* @m_since{2020,06}
*/
GLXContext sharedContext() const { return _sharedContext; }
@ -431,7 +431,7 @@ class WindowlessGlxApplication {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call GLX functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the

8
src/Magnum/Platform/WindowlessWglApplication.h

@ -136,7 +136,7 @@ class WindowlessWglContext {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call WGL functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the
@ -247,7 +247,7 @@ class WindowlessWglContext::Configuration {
/**
* @brief Create a shared context
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* When set, the created context will share a subset of OpenGL objects
* with @p context, instead of being independent. Many caveats and
@ -264,7 +264,7 @@ class WindowlessWglContext::Configuration {
/**
* @brief Shared context
* @m_since_latest
* @m_since{2020,06}
*/
HGLRC sharedContext() const { return _sharedContext; }
@ -423,7 +423,7 @@ class WindowlessWglApplication {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call WGL functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the

8
src/Magnum/Platform/WindowlessWindowsEglApplication.h

@ -121,7 +121,7 @@ class WindowlessWindowsEglContext {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call EGL functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the
@ -217,7 +217,7 @@ class WindowlessWindowsEglContext::Configuration {
/**
* @brief Create a shared context
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* When set, the created context will share a subset of OpenGL objects
* with @p context, instead of being independent. Many caveats and
@ -234,7 +234,7 @@ class WindowlessWindowsEglContext::Configuration {
/**
* @brief Shared context
* @m_since_latest
* @m_since{2020,06}
*/
EGLContext sharedContext() const { return _sharedContext; }
@ -393,7 +393,7 @@ class WindowlessWindowsEglApplication {
/**
* @brief Underlying OpenGL context
* @m_since_latest
* @m_since{2020,06}
*
* Use in case you need to call EGL functionality directly or in order
* to create a shared context. Returns @cpp nullptr @ce in case the

12
src/Magnum/Primitives/Capsule.h

@ -59,7 +59,7 @@ MAGNUM_PRIMITIVES_EXPORT Trade::MeshData capsule2DWireframe(UnsignedInt hemisphe
/**
@brief Capsule flag
@m_since_latest
@m_since{2020,06}
@see @ref CapsuleFlags, @ref capsule3DSolid()
*/
@ -70,14 +70,14 @@ enum class CapsuleFlag: UnsignedByte {
* Generate four-component tangents. The last component can be used to
* reconstruct a bitangent as described in the documentation of
* @ref Trade::MeshAttribute::Tangent.
* @m_since_latest
* @m_since{2020,06}
*/
Tangents = 1 << 1
};
/**
@brief Capsule flags
@m_since_latest
@m_since{2020,06}
@see @ref capsule3DSolid()
*/
@ -95,7 +95,7 @@ CORRADE_ENUMSET_OPERATORS(CapsuleFlags)
@cpp 3 @ce.
@param halfLength Half the length of cylinder part
@param flags Flags
@m_since_latest
@m_since{2020,06}
Cylinder of radius @cpp 1.0f @ce along the Y axis, centered at origin, with
hemispheres instead of caps. @ref MeshPrimitive::Triangles with
@ -118,7 +118,7 @@ MAGNUM_PRIMITIVES_EXPORT Trade::MeshData capsule3DSolid(UnsignedInt hemisphereRi
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief Whether to generate capsule texture coordinates
@m_deprecated_since_latest Use @ref CapsuleFlags instead.
@m_deprecated_since{2020,06} Use @ref CapsuleFlags instead.
*/
enum class CORRADE_DEPRECATED_ENUM("use CapsuleFlags instead") CapsuleTextureCoords: UnsignedByte {
DontGenerate, /**< Don't generate texture coordinates */
@ -127,7 +127,7 @@ enum class CORRADE_DEPRECATED_ENUM("use CapsuleFlags instead") CapsuleTextureCoo
/**
@brief @copybrief capsule3DSolid(UnsignedInt, UnsignedInt, UnsignedInt, Float, CapsuleFlags)
@m_deprecated_since_latest Use @ref capsule3DSolid(UnsignedInt, UnsignedInt, UnsignedInt, Float, CapsuleFlags)
@m_deprecated_since{2020,06} Use @ref capsule3DSolid(UnsignedInt, UnsignedInt, UnsignedInt, Float, CapsuleFlags)
instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH

20
src/Magnum/Primitives/Circle.h

@ -39,7 +39,7 @@ namespace Magnum { namespace Primitives {
/**
@brief 2D circle flag
@m_since_latest
@m_since{2020,06}
@see @ref Circle2DFlags, @ref circle2DSolid()
*/
@ -49,7 +49,7 @@ enum class Circle2DFlag: UnsignedByte {
/**
@brief 2D circle flags
@m_since_latest
@m_since{2020,06}
@see @ref circle2DSolid()
*/
@ -60,7 +60,7 @@ CORRADE_ENUMSET_OPERATORS(Circle2DFlags)
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief Whether to generate circle texture coordinates
@m_deprecated_since_latest Use @ref Circle2DFlags or @ref Circle3DFlags
@m_deprecated_since{2020,06} Use @ref Circle2DFlags or @ref Circle3DFlags
instead.
*/
enum class CORRADE_DEPRECATED_ENUM("use Circle2DFlags or Circle3DFlags instead") CircleTextureCoords: UnsignedByte {
@ -73,7 +73,7 @@ enum class CORRADE_DEPRECATED_ENUM("use Circle2DFlags or Circle3DFlags instead")
@brief Solid 2D circle
@param segments Number of segments. Must be greater or equal to @cpp 3 @ce.
@param flags Flags
@m_since_latest
@m_since{2020,06}
Circle with radius @cpp 1.0f @ce, centered at origin.
@ref MeshPrimitive::TriangleFan with @ref MeshIndexType::UnsignedInt indices,
@ -90,7 +90,7 @@ MAGNUM_PRIMITIVES_EXPORT Trade::MeshData circle2DSolid(UnsignedInt segments, Cir
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief @copybrief circle2DSolid(UnsignedInt, Circle2DFlags)
@m_deprecated_since_latest Use @ref circle2DSolid(UnsignedInt, Circle2DFlags)
@m_deprecated_since{2020,06} Use @ref circle2DSolid(UnsignedInt, Circle2DFlags)
instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH
@ -115,7 +115,7 @@ MAGNUM_PRIMITIVES_EXPORT Trade::MeshData circle2DWireframe(UnsignedInt segments)
/**
@brief 3D circle flag
@m_since_latest
@m_since{2020,06}
@see @ref Circle3DFlags, @ref circle3DSolid()
*/
@ -126,14 +126,14 @@ enum class Circle3DFlag: UnsignedByte {
* Generate four-component tangents. The last component can be used to
* reconstruct a bitangent as described in the documentation of
* @ref Trade::MeshAttribute::Tangent.
* @m_since_latest
* @m_since{2020,06}
*/
Tangents = 1 << 1
};
/**
@brief 3D circle flags
@m_since_latest
@m_since{2020,06}
@see @ref circle3DSolid()
*/
@ -145,7 +145,7 @@ CORRADE_ENUMSET_OPERATORS(Circle3DFlags)
@brief Solid 3D circle
@param segments Number of segments. Must be greater or equal to @cpp 3 @ce.
@param flags Flags
@m_since_latest
@m_since{2020,06}
Circle on the XY plane with radius @cpp 1.0f @ce, centered at origin.
Non-indexed @ref MeshPrimitive::TriangleFan with interleaved
@ -163,7 +163,7 @@ MAGNUM_PRIMITIVES_EXPORT Trade::MeshData circle3DSolid(UnsignedInt segments, Cir
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief @copybrief circle3DSolid(UnsignedInt, Circle3DFlags)
@m_deprecated_since_latest Use @ref circle3DSolid(UnsignedInt, Circle3DFlags)
@m_deprecated_since{2020,06} Use @ref circle3DSolid(UnsignedInt, Circle3DFlags)
instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH

6
src/Magnum/Primitives/Cone.h

@ -46,14 +46,14 @@ namespace Magnum { namespace Primitives {
enum class ConeFlag: UnsignedByte {
/**
* Generate texture coordinates
* @m_since_latest
* @m_since{2020,06}
*/
TextureCoordinates = 1 << 0,
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* Generate texture coordinates
* @m_deprecated_since_latest Use @ref ConeFlag::TextureCoordinates
* @m_deprecated_since{2020,06} Use @ref ConeFlag::TextureCoordinates
* instead.
*/
GenerateTextureCoords CORRADE_DEPRECATED_ENUM("use TextureCoordinates instead") = TextureCoordinates,
@ -63,7 +63,7 @@ enum class ConeFlag: UnsignedByte {
* Generate four-component tangents. The last component can be used to
* reconstruct a bitangent as described in the documentation of
* @ref Trade::MeshAttribute::Tangent.
* @m_since_latest
* @m_since{2020,06}
*/
Tangents = 1 << 1,

6
src/Magnum/Primitives/Cylinder.h

@ -45,14 +45,14 @@ namespace Magnum { namespace Primitives {
enum class CylinderFlag: UnsignedByte {
/**
* Generate texture coordinates
* @m_since_latest
* @m_since{2020,06}
*/
TextureCoordinates = 1 << 0,
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* Generate texture coordinates
* @m_deprecated_since_latest Use @ref CylinderFlag::TextureCoordinates
* @m_deprecated_since{2020,06} Use @ref CylinderFlag::TextureCoordinates
* instead.
*/
GenerateTextureCoords CORRADE_DEPRECATED_ENUM("use TextureCoordinates instead") = TextureCoordinates,
@ -62,7 +62,7 @@ enum class CylinderFlag: UnsignedByte {
* Generate four-component tangents. The last component can be used to
* reconstruct a bitangent as described in the documentation of
* @ref Trade::MeshAttribute::Tangent.
* @m_since_latest
* @m_since{2020,06}
*/
Tangents = 1 << 1,

8
src/Magnum/Primitives/Grid.h

@ -46,14 +46,14 @@ namespace Magnum { namespace Primitives {
enum class GridFlag: UnsignedByte {
/**
* Generate texture coordinates with origin in the bottom left corner
* @m_since_latest
* @m_since{2020,06}
*/
TextureCoordinates = 1 << 0,
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* Generate texture coordinates with origin in the bottom left corner
* @m_deprecated_since_latest Use @ref GridFlag::TextureCoordinates
* @m_deprecated_since{2020,06} Use @ref GridFlag::TextureCoordinates
* instead.
*/
GenerateTextureCoords CORRADE_DEPRECATED_ENUM("use TextureCoordinates instead") = TextureCoordinates,
@ -68,7 +68,7 @@ enum class GridFlag: UnsignedByte {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* Generate normals in positive Z direction.
* @m_deprecated_since_latest Use @ref GridFlag::Normals instead.
* @m_deprecated_since{2020,06} Use @ref GridFlag::Normals instead.
*/
GenerateNormals CORRADE_DEPRECATED_ENUM("use Normals instead") = Normals,
#endif
@ -77,7 +77,7 @@ enum class GridFlag: UnsignedByte {
* Generate four-component tangents. The last component can be used to
* reconstruct a bitangent as described in the documentation of
* @ref Trade::MeshAttribute::Tangent.
* @m_since_latest
* @m_since{2020,06}
*/
Tangents = 1 << 2
};

2
src/Magnum/Primitives/Icosphere.h

@ -57,7 +57,7 @@ MAGNUM_PRIMITIVES_EXPORT Trade::MeshData icosphereSolid(UnsignedInt subdivisions
/**
@brief Wireframe 3D icosphere
@m_since_latest
@m_since{2020,06}
Sphere of radius @cpp 1.0f @ce with 12 vertices and 30 edges, centered at
origin. @ref MeshPrimitive::Lines with @ref MeshIndexType::UnsignedShort

12
src/Magnum/Primitives/Plane.h

@ -39,7 +39,7 @@ namespace Magnum { namespace Primitives {
/**
@brief Plane flag
@m_since_latest
@m_since{2020,06}
@see @ref PlaneFlags, @ref planeSolid()
*/
@ -51,14 +51,14 @@ enum class PlaneFlag: UnsignedByte {
* Generate four-component tangents. The last component can be used to
* reconstruct a bitangent as described in the documentation of
* @ref Trade::MeshAttribute::Tangent.
* @m_since_latest
* @m_since{2020,06}
*/
Tangents = 1 << 1
};
/**
@brief Plane flags
@m_since_latest
@m_since{2020,06}
@see @ref planeSolid()
*/
@ -69,7 +69,7 @@ CORRADE_ENUMSET_OPERATORS(PlaneFlags)
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief Whether to generate plane texture coordinates
@m_deprecated_since_latest Use @ref PlaneFlags instead.
@m_deprecated_since{2020,06} Use @ref PlaneFlags instead.
*/
enum class CORRADE_DEPRECATED_ENUM("use PlaneFlags instead") PlaneTextureCoords: UnsignedByte {
DontGenerate, /**< Don't generate texture coordinates */
@ -82,7 +82,7 @@ enum class CORRADE_DEPRECATED_ENUM("use PlaneFlags instead") PlaneTextureCoords:
/**
@brief Solid 3D plane
@param flags Flags
@m_since_latest
@m_since{2020,06}
2x2 square on the XY plane, centered at origin. Non-indexed
@ref MeshPrimitive::TriangleStrip with @ref VertexFormat::Vector3 positions,
@ -106,7 +106,7 @@ MAGNUM_PRIMITIVES_EXPORT Trade::MeshData planeSolid();
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief @copybrief planeSolid(PlaneFlags)
@m_deprecated_since_latest Use @ref planeSolid(PlaneFlags) instead.
@m_deprecated_since{2020,06} Use @ref planeSolid(PlaneFlags) instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH
MAGNUM_PRIMITIVES_EXPORT CORRADE_DEPRECATED("use planeSolid(PlaneFlags) instead") Trade::MeshData planeSolid(PlaneTextureCoords textureCoords);

10
src/Magnum/Primitives/Square.h

@ -39,7 +39,7 @@ namespace Magnum { namespace Primitives {
/**
@brief Square flag
@m_since_latest
@m_since{2020,06}
@see @ref SquareFlags, @ref squareSolid()
*/
@ -50,7 +50,7 @@ enum class SquareFlag: UnsignedByte {
/**
@brief Square flags
@m_since_latest
@m_since{2020,06}
@see @ref squareSolid()
*/
@ -61,7 +61,7 @@ CORRADE_ENUMSET_OPERATORS(SquareFlags)
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief Whether to generate square texture coordinates
@m_deprecated_since_latest Use @ref SquareFlags instead.
@m_deprecated_since{2020,06} Use @ref SquareFlags instead.
*/
enum class CORRADE_DEPRECATED_ENUM("use SquareFlags instead") SquareTextureCoords: UnsignedByte {
DontGenerate, /**< Don't generate texture coordinates */
@ -74,7 +74,7 @@ enum class CORRADE_DEPRECATED_ENUM("use SquareFlags instead") SquareTextureCoord
/**
@brief Solid 2D square
@param flags Flags
@m_since_latest
@m_since{2020,06}
2x2 square, centered at origin. Non-indexed @ref MeshPrimitive::TriangleStrip
with interleaved @ref VertexFormat::Vector2 positions and optional
@ -91,7 +91,7 @@ MAGNUM_PRIMITIVES_EXPORT Trade::MeshData squareSolid(SquareFlags flags = {});
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief @copybrief planeSolid(PlaneFlags)
@m_deprecated_since_latest Use @ref planeSolid(PlaneFlags) instead.
@m_deprecated_since{2020,06} Use @ref planeSolid(PlaneFlags) instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH
MAGNUM_PRIMITIVES_EXPORT CORRADE_DEPRECATED("use squareSolid(SquareFlags) instead") Trade::MeshData squareSolid(SquareTextureCoords textureCoords);

12
src/Magnum/Primitives/UVSphere.h

@ -39,7 +39,7 @@ namespace Magnum { namespace Primitives {
/**
@brief UV sphere flag
@m_since_latest
@m_since{2020,06}
@see @ref UVSphereFlags, @ref uvSphereSolid()
*/
@ -50,14 +50,14 @@ enum class UVSphereFlag: UnsignedByte {
* Generate four-component tangents. The last component can be used to
* reconstruct a bitangent as described in the documentation of
* @ref Trade::MeshAttribute::Tangent.
* @m_since_latest
* @m_since{2020,06}
*/
Tangents = 1 << 1
};
/**
@brief UV sphere flags
@m_since_latest
@m_since{2020,06}
@see @ref uvSphereSolid()
*/
@ -72,7 +72,7 @@ CORRADE_ENUMSET_OPERATORS(UVSphereFlags)
@param segments Number of (face) segments. Must be larger or
equal to @cpp 3 @ce.
@param flags Flags
@m_since_latest
@m_since{2020,06}
Sphere of radius @cpp 1.0f @ce, centered at origin.
@ref MeshPrimitive::Triangles with @ref MeshIndexType::UnsignedInt indices,
@ -90,7 +90,7 @@ MAGNUM_PRIMITIVES_EXPORT Trade::MeshData uvSphereSolid(UnsignedInt rings, Unsign
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief Whether to generate UV sphere texture coordinates
@m_deprecated_since_latest Use @ref UVSphereFlags instead.
@m_deprecated_since{2020,06} Use @ref UVSphereFlags instead.
*/
enum class CORRADE_DEPRECATED("use UVSphereFlags instead") UVSphereTextureCoords: UnsignedByte {
DontGenerate, /**< Don't generate texture coordinates */
@ -99,7 +99,7 @@ enum class CORRADE_DEPRECATED("use UVSphereFlags instead") UVSphereTextureCoords
/**
@brief @copybrief uvSphereSolid(UnsignedInt, UnsignedInt, UVSphereFlags)
@m_deprecated_since_latest Use @ref uvSphereSolid(UnsignedInt, UnsignedInt, UVSphereFlags)
@m_deprecated_since{2020,06} Use @ref uvSphereSolid(UnsignedInt, UnsignedInt, UVSphereFlags)
instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH

8
src/Magnum/SceneGraph/AbstractTranslationRotation2D.h

@ -50,7 +50,7 @@ template<class T> class AbstractBasicTranslationRotation2D: public AbstractBasic
* @brief Rotate the object using a complex number
* @param complex Normalized complex number
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the complex number is normalized.
* @see @ref rotate(Math::Rad<T>),
@ -63,7 +63,7 @@ template<class T> class AbstractBasicTranslationRotation2D: public AbstractBasic
/**
* @brief Rotate the object using a complex number as a local transformation
* @m_since_latest
* @m_since{2020,06}
*
* Similar to the above, except that the transformation is applied
* before all others.
@ -118,13 +118,13 @@ template<class T> class AbstractBasicTranslationRotation2D: public AbstractBasic
private:
/**
* @brief Polymorphic implementation for @ref rotate(const Math::Complex<T>&)
* @m_since_latest
* @m_since{2020,06}
*/
virtual void doRotate(const Math::Complex<T>&) = 0;
/**
* @brief Polymorphic implementation for @ref rotateLocal(const Math::Complex<T>&)
* @m_since_latest
* @m_since{2020,06}
*/
virtual void doRotateLocal(const Math::Complex<T>&) = 0;

8
src/Magnum/SceneGraph/AbstractTranslationRotation3D.h

@ -51,7 +51,7 @@ template<class T> class AbstractBasicTranslationRotation3D: public AbstractBasic
* @brief Rotate the object using a quaternion
* @param quaternion Normalized quaternion
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the quaternion is normalized.
* @see @ref rotate(Math::Rad<T>, const Math::Vector3<T>&),
@ -65,7 +65,7 @@ template<class T> class AbstractBasicTranslationRotation3D: public AbstractBasic
/**
* @brief Rotate the object using a quaternion as a local transformation
* @m_since_latest
* @m_since{2020,06}
*
* Similar to the above, except that the transformation is applied
* before all others.
@ -208,13 +208,13 @@ template<class T> class AbstractBasicTranslationRotation3D: public AbstractBasic
private:
/**
* @brief Polymorphic implementation for @ref rotate(const Math::Quaternion<T>&)
* @m_since_latest
* @m_since{2020,06}
*/
virtual void doRotate(const Math::Quaternion<T>&) = 0;
/**
* @brief Polymorphic implementation for @ref rotateLocal(const Math::Quaternion<T>&)
* @m_since_latest
* @m_since{2020,06}
*/
virtual void doRotateLocal(const Math::Quaternion<T>&) = 0;

4
src/Magnum/SceneGraph/DualComplexTransformation.h

@ -136,7 +136,7 @@ template<class T> class BasicDualComplexTransformation: public AbstractBasicTran
* @brief Rotate the object using a complex number
* @param complex Normalized complex number
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Same as calling @ref transform() with @p complex. Expects that the
* complex number is normalized.
@ -149,7 +149,7 @@ template<class T> class BasicDualComplexTransformation: public AbstractBasicTran
/**
* @brief Rotate the object using a complex number as a local transformation
* @m_since_latest
* @m_since{2020,06}
*
* Similar to the above, except that the transformation is applied
* before all others.

4
src/Magnum/SceneGraph/DualQuaternionTransformation.h

@ -135,7 +135,7 @@ template<class T> class BasicDualQuaternionTransformation: public AbstractBasicT
* @brief Rotate the object using a quaternion
* @param quaternion Normalized quaternion
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Same as calling @ref transform() with @p quaternion. Expects that
* the quaternion is normalized.
@ -149,7 +149,7 @@ template<class T> class BasicDualQuaternionTransformation: public AbstractBasicT
/**
* @brief Rotate the object using a quaternion as a local transformation
* @m_since_latest
* @m_since{2020,06}
*
* Similar to the above, except that the transformation is applied
* before all others.

4
src/Magnum/SceneGraph/MatrixTransformation2D.h

@ -118,7 +118,7 @@ template<class T> class BasicMatrixTransformation2D: public AbstractBasicTransla
* @brief Rotate the object using a complex number
* @param complex Normalized complex number
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the complex number is normalized.
* @see @ref rotate(Math::Rad<T>),
@ -128,7 +128,7 @@ template<class T> class BasicMatrixTransformation2D: public AbstractBasicTransla
/**
* @brief Rotate the object using a complex number as a local transformation
* @m_since_latest
* @m_since{2020,06}
*
* Similar to the above, except that the transformation is applied
* before all others.

2
src/Magnum/SceneGraph/MatrixTransformation2D.hpp

@ -27,7 +27,7 @@
/** @file
* @brief @ref compilation-speedup-hpp "Template implementation" for @ref MatrixTransformation2D.h
* @m_since_latest
* @m_since{2020,06}
*/
#include "MatrixTransformation2D.h"

4
src/Magnum/SceneGraph/MatrixTransformation3D.h

@ -118,7 +118,7 @@ template<class T> class BasicMatrixTransformation3D: public AbstractBasicTransla
* @brief Rotate the object using a quaternion
* @param quaternion Normalized quaternion
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the quaternion is normalized.
* @see @ref rotate(Math::Rad<T>, const Math::Vector3<T>&),
@ -129,7 +129,7 @@ template<class T> class BasicMatrixTransformation3D: public AbstractBasicTransla
/**
* @brief Rotate the object using a quaternion as a local transformation
* @m_since_latest
* @m_since{2020,06}
*
* Similar to the above, except that the transformation is applied
* before all others.

2
src/Magnum/SceneGraph/MatrixTransformation3D.hpp

@ -27,7 +27,7 @@
/** @file
* @brief @ref compilation-speedup-hpp "Template implementation" for @ref MatrixTransformation3D.h
* @m_since_latest
* @m_since{2020,06}
*/
#include "MatrixTransformation3D.h"

4
src/Magnum/SceneGraph/RigidMatrixTransformation2D.h

@ -141,7 +141,7 @@ template<class T> class BasicRigidMatrixTransformation2D: public AbstractBasicTr
* @brief Rotate the object using a complex number
* @param complex Normalized complex number
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the complex number is normalized.
* @see @ref rotate(Math::Rad<T>),
@ -151,7 +151,7 @@ template<class T> class BasicRigidMatrixTransformation2D: public AbstractBasicTr
/**
* @brief Rotate the object using a complex number as a local transformation
* @m_since_latest
* @m_since{2020,06}
*
* Similar to the above, except that the transformation is applied
* before all others.

2
src/Magnum/SceneGraph/RigidMatrixTransformation2D.hpp

@ -27,7 +27,7 @@
/** @file
* @brief @ref compilation-speedup-hpp "Template implementation" for @ref RigidMatrixTransformation2D.h
* @m_since_latest
* @m_since{2020,06}
*/
#include "RigidMatrixTransformation2D.h"

4
src/Magnum/SceneGraph/RigidMatrixTransformation3D.h

@ -140,7 +140,7 @@ template<class T> class BasicRigidMatrixTransformation3D: public AbstractBasicTr
* @brief Rotate the object using a quaternion
* @param quaternion Normalized quaternion
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the quaternion is normalized.
* @see @ref rotate(Math::Rad<T>, const Math::Vector3<T>&),
@ -151,7 +151,7 @@ template<class T> class BasicRigidMatrixTransformation3D: public AbstractBasicTr
/**
* @brief Rotate the object using a quaternion as a local transformation
* @m_since_latest
* @m_since{2020,06}
*
* Similar to the above, except that the transformation is applied
* before all others.

2
src/Magnum/SceneGraph/RigidMatrixTransformation3D.hpp

@ -27,7 +27,7 @@
/** @file
* @brief @ref compilation-speedup-hpp "Template implementation" for @ref RigidMatrixTransformation3D.hpp
* @m_since_latest
* @m_since{2020,06}
*/
#include "RigidMatrixTransformation3D.h"

10
src/Magnum/Shaders/DistanceFieldVector.h

@ -82,7 +82,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT DistanceFieldVector
#ifdef DOXYGEN_GENERATING_OUTPUT
/**
* @brief Flag
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref Flags, @ref flags()
*/
@ -90,14 +90,14 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT DistanceFieldVector
/**
* Enable texture coordinate transformation.
* @see @ref setTextureMatrix()
* @m_since_latest
* @m_since{2020,06}
*/
TextureTransformation = 1 << 0
};
/**
* @brief Flags
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref flags()
*/
@ -148,7 +148,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT DistanceFieldVector
/**
* @brief Flags
* @m_since_latest
* @m_since{2020,06}
*/
Flags flags() const { return _flags; }
@ -163,7 +163,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT DistanceFieldVector
/**
* @brief Set texture coordinate transformation matrix
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the shader was created with
* @ref Flag::TextureTransformation enabled. Initial value is an

16
src/Magnum/Shaders/Flat.h

@ -194,7 +194,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Flat: public GL::Ab
#ifndef MAGNUM_TARGET_GLES2
/**
* @brief (Instanced) object ID
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute", @ref Magnum::UnsignedInt.
* Used only if @ref Flag::InstancedObjectId is set.
@ -207,7 +207,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Flat: public GL::Ab
/**
* @brief (Instanced) transformation matrix
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute", @ref Magnum::Matrix3 in
* 2D, @ref Magnum::Matrix4 in 3D. Used only if
@ -223,7 +223,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Flat: public GL::Ab
/**
* @brief (Instanced) texture offset
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute", @ref Magnum::Vector2. Used
* only if @ref Flag::InstancedTextureOffset is set.
@ -298,7 +298,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Flat: public GL::Ab
* Enable texture coordinate transformation. If this flag is set,
* the shader expects that @ref Flag::Textured is enabled as well.
* @see @ref setTextureMatrix()
* @m_since_latest
* @m_since{2020,06}
*/
TextureTransformation = 1 << 3,
@ -324,7 +324,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Flat: public GL::Ab
* @requires_gles30 Object ID output requires integer support in
* shaders, which is not available in OpenGL ES 2.0 or WebGL
* 1.0.
* @m_since_latest
* @m_since{2020,06}
*/
InstancedObjectId = (1 << 5)|ObjectId,
#endif
@ -342,7 +342,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Flat: public GL::Ab
* @gl_extension{NV,instanced_arrays} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0.
* @m_since_latest
* @m_since{2020,06}
*/
InstancedTransformation = 1 << 6,
@ -361,7 +361,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Flat: public GL::Ab
* @gl_extension{NV,instanced_arrays} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0.
* @m_since_latest
* @m_since{2020,06}
*/
InstancedTextureOffset = (1 << 7)|TextureTransformation
};
@ -425,7 +425,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Flat: public GL::Ab
/**
* @brief Set texture coordinate transformation matrix
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the shader was created with
* @ref Flag::TextureTransformation enabled. Initial value is an

12
src/Magnum/Shaders/Generic.h

@ -322,7 +322,7 @@ template<UnsignedInt dimensions> struct Generic {
/**
* @brief Vertex tangent with a bitangent sign
* @m_since_latest
* @m_since{2020,06}
*
* @ref Magnum::Vector4 "Vector4", defined only in 3D. The last component
* is a sign value (@cpp -1.0f @ce or @cpp +1.0f @ce) defining handedness
@ -338,7 +338,7 @@ template<UnsignedInt dimensions> struct Generic {
/**
* @brief Vertex bitangent
* @m_since_latest
* @m_since{2020,06}
*
* @ref Magnum::Vector3 "Vector3", defined only in 3D. For better storage
* efficiency, the bitangent can be also reconstructed from the normal and
@ -354,7 +354,7 @@ template<UnsignedInt dimensions> struct Generic {
#ifndef MAGNUM_TARGET_GLES2
/**
* @brief (Instanced) object ID
* @m_since_latest
* @m_since{2020,06}
*
* @ref Magnum::UnsignedInt "UnsignedInt". Corresponds to
* @ref Trade::MeshAttribute::ObjectId.
@ -385,7 +385,7 @@ template<UnsignedInt dimensions> struct Generic {
/**
* @brief (Instanced) transformation matrix
* @m_since_latest
* @m_since{2020,06}
*
* @ref Magnum::Matrix3 "Matrix3" in 2D and @ref Magnum::Matrix4 "Matrix4"
* in 3D. Currently doesn't have a corresponding @ref Trade::MeshAttribute.
@ -402,7 +402,7 @@ template<UnsignedInt dimensions> struct Generic {
/**
* @brief (Instanced) normal matrix
* @m_since_latest
* @m_since{2020,06}
*
* @ref Magnum::Matrix3 "Matrix3x3", defined only in 3D. Currently doesn't
* have a corresponding @ref Trade::MeshAttribute.
@ -419,7 +419,7 @@ template<UnsignedInt dimensions> struct Generic {
/**
* @brief (Instanced) texture offset
* @m_since_latest
* @m_since{2020,06}
*
* @ref Magnum::Vector2 "Vector2". Currently doesn't have a corresponding
* @ref Trade::MeshAttribute.

46
src/Magnum/Shaders/MeshVisualizer.h

@ -95,7 +95,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizerBase: public GL::AbstractShaderProgram
/**
@brief 2D mesh visualization shader
@m_since_latest
@m_since{2020,06}
Visualizes wireframe, per-vertex/per-instance object ID or primitive ID of 2D
meshes. You need to provide the @ref Position attribute in your triangle mesh.
@ -141,7 +141,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer2D: public Implementation::MeshVisuali
#ifndef MAGNUM_TARGET_GLES2
/**
* @brief (Instanced) object ID
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute", @ref Magnum::UnsignedInt.
* Used only if @ref Flag::InstancedObjectId is set.
@ -501,7 +501,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
/**
* @brief Tangent direction
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute",
* @ref Magnum::Vector3 "Vector3". Use either this or the @ref Tangent4
@ -511,7 +511,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
/**
* @brief Tangent direction with a bitangent sign
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute",
* @ref Magnum::Vector4 "Vector4". Use either this or the @ref Tangent
@ -522,7 +522,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
/**
* @brief Bitangent direction
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute",
* @ref Magnum::Vector4 "Vector4". Use either this or the @ref Tangent4
@ -532,7 +532,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
/**
* @brief Normal direction
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute",
* @ref Magnum::Vector3 "Vector3". Used only if
@ -561,7 +561,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
#ifndef MAGNUM_TARGET_GLES2
/**
* @brief (Instanced) object ID
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute", @ref Magnum::UnsignedInt.
* Used only if @ref Flag::InstancedObjectId is set.
@ -619,7 +619,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
* @requires_gles30 Object ID output requires integer support in
* shaders, which is not available in OpenGL ES 2.0 or WebGL
* 1.0.
* @m_since_latest
* @m_since{2020,06}
*/
InstancedObjectId = 1 << 2,
@ -634,7 +634,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
* @requires_gles30 The `gl_VertexID` shader variable is not
* available on OpenGL ES 2.0.
* @requires_webgl20 `gl_VertexID` is not available in WebGL 1.0.
* @m_since_latest
* @m_since{2020,06}
*/
VertexId = 1 << 3,
@ -651,7 +651,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
* @requires_gles32 The `gl_PrimitiveID` shader variable is not
* available on OpenGL ES 3.1 and lower.
* @requires_gles `gl_PrimitiveID` is not available in WebGL.
* @m_since_latest
* @m_since{2020,06}
*/
PrimitiveId = 1 << 4,
#endif
@ -668,7 +668,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
* @requires_gles30 The `gl_VertexID` shader variable is not
* available on OpenGL ES 2.0.
* @requires_webgl20 `gl_VertexID` is not available in WebGL 1.0.
* @m_since_latest
* @m_since{2020,06}
*/
#ifndef MAGNUM_TARGET_WEBGL
PrimitiveIdFromVertexId = (1 << 5)|PrimitiveId,
@ -689,7 +689,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
* @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
* @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
* @m_since_latest
* @m_since{2020,06}
*/
TangentDirection = 1 << 6,
@ -706,7 +706,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
* @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
* @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
* @m_since_latest
* @m_since{2020,06}
*/
BitangentFromTangentDirection = 1 << 7,
@ -723,7 +723,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
* @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
* @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
* @m_since_latest
* @m_since{2020,06}
*/
BitangentDirection = 1 << 8,
@ -737,7 +737,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
* @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
* @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
* @m_since_latest
* @m_since{2020,06}
*/
NormalDirection = 1 << 9
#endif
@ -760,7 +760,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief Constructor
* @m_deprecated_since_latest Use @ref MeshVisualizer3D(Flags) instead.
* @m_deprecated_since{2020,06} Use @ref MeshVisualizer3D(Flags) instead.
*/
explicit CORRADE_DEPRECATED("use MeshVisualizer3D(Flags) instead") MeshVisualizer3D(): MeshVisualizer3D{{}} {}
#endif
@ -799,7 +799,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief Set transformation and projection matrix
* @m_deprecated_since_latest Use @ref setTransformationMatrix() and
* @m_deprecated_since{2020,06} Use @ref setTransformationMatrix() and
* @ref setProjectionMatrix() instead.
*/
CORRADE_DEPRECATED("use setTransformationMatrix() and setProjectionMatrix() instead") MeshVisualizer3D& setTransformationProjectionMatrix(const Matrix4& matrix) {
@ -831,7 +831,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
/**
* @brief Set transformation matrix
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that @ref Flag::TangentDirection,
* @ref Flag::BitangentDirection or @ref Flag::NormalDirection is
@ -899,7 +899,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
/**
* @brief Set color map transformation
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Offset and scale applied to the input value coming either from the
* @ref ObjectId attribute or @glsl gl_PrimitiveID @ce, resulting value
@ -932,7 +932,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
/**
* @brief Bind a color map texture
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* See also @ref setColorMapTransformation(). Expects that either
* @ref Flag::InstancedObjectId or @ref Flag::PrimitiveId /
@ -955,7 +955,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
/**
* @brief Set line width
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Value is in screen space (depending on @ref setViewportSize()),
* initial value is @cpp 1.0f @ce. Expects that
@ -974,7 +974,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
/**
* @brief Set line length
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Value is in object space, initial value is @cpp 1.0f @ce. Expects
* that @ref Flag::TangentDirection,
@ -1016,7 +1016,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizer3D: public Implementation::MeshVisuali
#ifdef MAGNUM_BUILD_DEPRECATED
/**
@brief 3D mesh visualizer shader
@m_deprecated_since_latest Use @ref MeshVisualizer3D instead.
@m_deprecated_since{2020,06} Use @ref MeshVisualizer3D instead.
*/
typedef CORRADE_DEPRECATED("use MeshVisualizer3D instead") MeshVisualizer3D MeshVisualizer;
#endif

18
src/Magnum/Shaders/Phong.h

@ -210,7 +210,7 @@ class MAGNUM_SHADERS_EXPORT Phong: public GL::AbstractShaderProgram {
#ifndef MAGNUM_TARGET_GLES2
/**
* @brief (Instanced) object ID
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute", @ref Magnum::UnsignedInt.
* Used only if @ref Flag::InstancedObjectId is set.
@ -223,7 +223,7 @@ class MAGNUM_SHADERS_EXPORT Phong: public GL::AbstractShaderProgram {
/**
* @brief (Instanced) transformation matrix
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute", @ref Magnum::Matrix4.
* Used only if @ref Flag::InstancedTransformation is set.
@ -238,7 +238,7 @@ class MAGNUM_SHADERS_EXPORT Phong: public GL::AbstractShaderProgram {
/**
* @brief (Instanced) normal matrix
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute", @ref Magnum::Matrix3x3.
* Used only if @ref Flag::InstancedTransformation is set.
@ -253,7 +253,7 @@ class MAGNUM_SHADERS_EXPORT Phong: public GL::AbstractShaderProgram {
/**
* @brief (Instanced) texture offset
* @m_since_latest
* @m_since{2020,06}
*
* @ref shaders-generic "Generic attribute", @ref Magnum::Vector2. Used
* only if @ref Flag::InstancedTextureOffset is set.
@ -350,7 +350,7 @@ class MAGNUM_SHADERS_EXPORT Phong: public GL::AbstractShaderProgram {
* @ref Flag::SpecularTexture or @ref Flag::NormalTexture is
* enabled as well.
* @see @ref setTextureMatrix()
* @m_since_latest
* @m_since{2020,06}
*/
TextureTransformation = 1 << 6,
@ -376,7 +376,7 @@ class MAGNUM_SHADERS_EXPORT Phong: public GL::AbstractShaderProgram {
* @requires_gles30 Object ID output requires integer support in
* shaders, which is not available in OpenGL ES 2.0 or WebGL
* 1.0.
* @m_since_latest
* @m_since{2020,06}
*/
InstancedObjectId = (1 << 8)|ObjectId,
#endif
@ -395,7 +395,7 @@ class MAGNUM_SHADERS_EXPORT Phong: public GL::AbstractShaderProgram {
* @gl_extension{NV,instanced_arrays} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0.
* @m_since_latest
* @m_since{2020,06}
*/
InstancedTransformation = 1 << 9,
@ -414,7 +414,7 @@ class MAGNUM_SHADERS_EXPORT Phong: public GL::AbstractShaderProgram {
* @gl_extension{NV,instanced_arrays} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0.
* @m_since_latest
* @m_since{2020,06}
*/
InstancedTextureOffset = (1 << 10)|TextureTransformation
};
@ -639,7 +639,7 @@ class MAGNUM_SHADERS_EXPORT Phong: public GL::AbstractShaderProgram {
/**
* @brief Set texture coordinate transformation matrix
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the shader was created with
* @ref Flag::TextureTransformation enabled. Initial value is an

10
src/Magnum/Shaders/Vector.h

@ -78,7 +78,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Vector: public Abst
#ifdef DOXYGEN_GENERATING_OUTPUT
/**
* @brief Flag
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref Flags, @ref flags()
*/
@ -86,14 +86,14 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Vector: public Abst
/**
* Enable texture coordinate transformation.
* @see @ref setTextureMatrix()
* @m_since_latest
* @m_since{2020,06}
*/
TextureTransformation = 1 << 0
};
/**
* @brief Flags
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref flags()
*/
@ -144,7 +144,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Vector: public Abst
/**
* @brief Flags
* @m_since_latest
* @m_since{2020,06}
*/
Flags flags() const { return _flags; }
@ -159,7 +159,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHADERS_EXPORT Vector: public Abst
/**
* @brief Set texture coordinate transformation matrix
* @return Reference to self (for method chaining)
* @m_since_latest
* @m_since{2020,06}
*
* Expects that the shader was created with
* @ref Flag::TextureTransformation enabled. Initial value is an

4
src/Magnum/Tags.h

@ -37,7 +37,7 @@ namespace Magnum {
/**
@brief No initialization tag type
@m_since_latest
@m_since{2020,06}
Used to distinguish construction with no initialization at all.
@see @ref NoInit
@ -61,7 +61,7 @@ struct NoCreateT {
/**
@brief No initialization tag
@m_since_latest
@m_since{2020,06}
Use for construction with no initialization at all.
*/

8
src/Magnum/Text/AbstractFont.h

@ -46,7 +46,7 @@ namespace Magnum { namespace Text {
/**
@brief Features supported by a font implementation
@m_since_latest
@m_since{2020,06}
@see @ref FontFeatures, @ref AbstractFont::features()
*/
@ -87,7 +87,7 @@ enum class FontFeature: UnsignedByte {
/**
@brief Set of features supported by a font implementation
@m_since_latest
@m_since{2020,06}
@see @ref AbstractFont::features()
*/
@ -175,12 +175,12 @@ class MAGNUM_TEXT_EXPORT AbstractFont: public PluginManager::AbstractPlugin {
public:
#ifdef MAGNUM_BUILD_DEPRECATED
/** @brief @copybrief FontFeature
* @m_deprecated_since_latest Use @ref FontFeature instead.
* @m_deprecated_since{2020,06} Use @ref FontFeature instead.
*/
typedef CORRADE_DEPRECATED("use FontFeature instead") FontFeature Feature;
/** @brief @copybrief FontFeatures
* @m_deprecated_since_latest Use @ref FontFeatures instead.
* @m_deprecated_since{2020,06} Use @ref FontFeatures instead.
*/
typedef CORRADE_DEPRECATED("use FontFeatures instead") FontFeatures Features;
#endif

8
src/Magnum/Text/AbstractFontConverter.h

@ -51,7 +51,7 @@ namespace Magnum { namespace Text {
/**
@brief Features supported by a font converter
@m_since_latest
@m_since{2020,06}
@see @ref FontConverterFeatures, @ref AbstractFontConverter::features()
*/
@ -105,7 +105,7 @@ enum class FontConverterFeature: UnsignedByte {
/**
@brief Features supported by a font converter
@m_since_latest
@m_since{2020,06}
@see @ref AbstractFontConverter::features()
*/
@ -159,12 +159,12 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
public:
#ifdef MAGNUM_BUILD_DEPRECATED
/** @brief @copybrief FontConverterFeature
* @m_deprecated_since_latest Use @ref FontConverterFeature instead.
* @m_deprecated_since{2020,06} Use @ref FontConverterFeature instead.
*/
typedef CORRADE_DEPRECATED("use FontConverterFeature instead") FontConverterFeature Feature;
/** @brief @copybrief FontConverterFeatures
* @m_deprecated_since_latest Use @ref FontConverterFeatures instead.
* @m_deprecated_since{2020,06} Use @ref FontConverterFeatures instead.
*/
typedef CORRADE_DEPRECATED("use FontConverterFeatures instead") FontConverterFeatures Features;
#endif

20
src/Magnum/Trade/AbstractImageConverter.h

@ -39,7 +39,7 @@ namespace Magnum { namespace Trade {
/**
@brief Features supported by an image converter
@m_since_latest
@m_since{2020,06}
@see @ref ImageConverterFeatures, @ref AbstractImageConverter::features()
*/
@ -85,7 +85,7 @@ enum class ImageConverterFeature: UnsignedByte {
/**
@brief Features supported by an image converter
@m_since_latest
@m_since{2020,06}
@see @ref AbstractImageConverter::features()
*/
@ -101,7 +101,7 @@ MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, ImageConverterFeatures value
/**
@brief Image converter flag
@m_since_latest
@m_since{2020,06}
@see @ref ImageConverterFlags, @ref AbstractImageConverter::setFlags()
*/
@ -118,7 +118,7 @@ enum class ImageConverterFlag: UnsignedByte {
/**
@brief Image converter flags
@m_since_latest
@m_since{2020,06}
@see @ref AbstractImporter::setFlags()
*/
@ -128,13 +128,13 @@ CORRADE_ENUMSET_OPERATORS(ImageConverterFlags)
/**
@debugoperatorenum{ImageConverterFlag}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, ImageConverterFlag value);
/**
@debugoperatorenum{ImageConverterFlags}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, ImageConverterFlags value);
@ -193,12 +193,12 @@ class MAGNUM_TRADE_EXPORT AbstractImageConverter: public PluginManager::Abstract
public:
#ifdef MAGNUM_BUILD_DEPRECATED
/** @brief @copybrief ImageConverterFeature
* @m_deprecated_since_latest Use @ref ImageConverterFeature instead.
* @m_deprecated_since{2020,06} Use @ref ImageConverterFeature instead.
*/
typedef CORRADE_DEPRECATED("use ImageConverterFeature instead") ImageConverterFeature Feature;
/** @brief @copybrief ImageConverterFeatures
* @m_deprecated_since_latest Use @ref ImageConverterFeatures instead.
* @m_deprecated_since{2020,06} Use @ref ImageConverterFeatures instead.
*/
typedef CORRADE_DEPRECATED("use ImageConverterFeatures instead") ImageConverterFeatures Features;
#endif
@ -243,13 +243,13 @@ class MAGNUM_TRADE_EXPORT AbstractImageConverter: public PluginManager::Abstract
/**
* @brief Converter flags
* @m_since_latest
* @m_since{2020,06}
*/
ImageConverterFlags flags() const { return _flags; }
/**
* @brief Set converter flags
* @m_since_latest
* @m_since{2020,06}
*
* Some flags can be set only if the converter supports particular
* features, see documentation of each @ref ImageConverterFlag for more

116
src/Magnum/Trade/AbstractImporter.h

@ -46,7 +46,7 @@ namespace Magnum { namespace Trade {
/**
@brief Features supported by an importer
@m_since_latest
@m_since{2020,06}
@see @ref ImporterFeatures, @ref AbstractImporter::features()
*/
@ -71,7 +71,7 @@ enum class ImporterFeature: UnsignedByte {
/**
@brief Set of features supported by an importer
@m_since_latest
@m_since{2020,06}
@see @ref AbstractImporter::features()
*/
@ -94,7 +94,7 @@ typedef CORRADE_DEPRECATED("use InputFileCallbackPolicy instead") InputFileCallb
/**
@brief Importer flag
@m_since_latest
@m_since{2020,06}
@see @ref ImporterFlags, @ref AbstractImporter::setFlags()
*/
@ -111,7 +111,7 @@ enum class ImporterFlag: UnsignedByte {
/**
@brief Importer flags
@m_since_latest
@m_since{2020,06}
@see @ref AbstractImporter::setFlags()
*/
@ -121,13 +121,13 @@ CORRADE_ENUMSET_OPERATORS(ImporterFlags)
/**
@debugoperatorenum{ImporterFlag}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, ImporterFlag value);
/**
@debugoperatorenum{ImporterFlags}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, ImporterFlags value);
@ -313,12 +313,12 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
public:
#ifdef MAGNUM_BUILD_DEPRECATED
/** @brief @copybrief ImporterFeature
* @m_deprecated_since_latest Use @ref ImporterFeature instead.
* @m_deprecated_since{2020,06} Use @ref ImporterFeature instead.
*/
typedef CORRADE_DEPRECATED("use ImporterFeature instead") ImporterFeature Feature;
/** @brief @copybrief ImporterFeatures
* @m_deprecated_since_latest Use @ref ImporterFeatures instead.
* @m_deprecated_since{2020,06} Use @ref ImporterFeatures instead.
*/
typedef CORRADE_DEPRECATED("use ImporterFeature instead") ImporterFeatures Features;
#endif
@ -363,13 +363,13 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Importer flags
* @m_since_latest
* @m_since{2020,06}
*/
ImporterFlags flags() const { return _flags; }
/**
* @brief Set importer flags
* @m_since_latest
* @m_since{2020,06}
*
* It's expected that this function is called *before* a file is
* opened. Some flags can be set only if the importer supports
@ -570,7 +570,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Scene for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref sceneForName() and
* @ref scene(UnsignedInt). If @ref sceneForName() returns @cpp -1 @ce,
@ -617,7 +617,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Animation for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref animationForName() and
* @ref animation(UnsignedInt). If @ref animationForName() returns
@ -664,7 +664,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Light for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref lightForName() and
* @ref light(UnsignedInt). If @ref lightForName() returns @cpp -1 @ce,
@ -711,7 +711,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Camera for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref cameraForName() and
* @ref camera(UnsignedInt). If @ref cameraForName() returns
@ -758,7 +758,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Two-dimensional object for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref object2DForName() and
* @ref object2D(UnsignedInt). If @ref object2DForName() returns
@ -805,7 +805,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Three-dimensional object for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref object3DForName() and
* @ref object3D(UnsignedInt). If @ref object3DForName() returns
@ -817,7 +817,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Mesh count
* @m_since_latest
* @m_since{2020,06}
*
* Expects that a file is opened.
* @see @ref meshLevelCount()
@ -827,7 +827,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Mesh level count
* @param id Mesh ID, from range [0, @ref meshCount()).
* @m_since_latest
* @m_since{2020,06}
*
* Always returns at least one level, import failures are deferred to
* @ref mesh(). Expects that a file is opened.
@ -836,7 +836,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Mesh ID for given name
* @m_since_latest
* @m_since{2020,06}
*
* If no mesh for given name exists, returns @cpp -1 @ce. Expects that
* a file is opened.
@ -847,7 +847,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Mesh name
* @param id Mesh ID, from range [0, @ref meshCount()).
* @m_since_latest
* @m_since{2020,06}
*
* Expects that a file is opened.
* @see @ref meshForName()
@ -858,7 +858,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
* @brief Mesh
* @param id Mesh ID, from range [0, @ref meshCount()).
* @param level Mesh level, from range [0, @ref meshLevelCount())
* @m_since_latest
* @m_since{2020,06}
*
* Returns given mesh or @ref Containers::NullOpt if importing failed.
* The @p level parameter allows access to additional data and is
@ -873,7 +873,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Mesh for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref meshForName() and
* @ref mesh(UnsignedInt, UnsignedInt). If @ref meshForName() returns
@ -885,7 +885,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Mesh attribute for given name
* @m_since_latest
* @m_since{2020,06}
*
* If the name is not recognized, returns a zero (invalid)
* @ref MeshAttribute, otherwise returns a custom mesh attribute. Note
@ -898,7 +898,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief String name for given custom mesh attribute
* @m_since_latest
* @m_since{2020,06}
*
* Given a custom @p name returned by @ref mesh() in a @ref MeshData,
* returns a string identifier. If a string representation is not
@ -916,7 +916,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
* @brief Two-dimensional mesh count
*
* Expects that a file is opened.
* @m_deprecated_since_latest Use @ref meshCount() instead.
* @m_deprecated_since{2020,06} Use @ref meshCount() instead.
*/
CORRADE_DEPRECATED("use meshCount() instead") UnsignedInt mesh2DCount() const;
@ -925,7 +925,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
*
* If no mesh for given name exists, returns @cpp -1 @ce. Expects that
* a file is opened.
* @m_deprecated_since_latest Use @ref meshForName() instead.
* @m_deprecated_since{2020,06} Use @ref meshForName() instead.
* @see @ref mesh2DName()
*/
CORRADE_DEPRECATED("use meshForName() instead") Int mesh2DForName(const std::string& name);
@ -935,7 +935,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
* @param id Mesh ID, from range [0, @ref mesh2DCount()).
*
* Expects that a file is opened.
* @m_deprecated_since_latest Use @ref meshName() instead.
* @m_deprecated_since{2020,06} Use @ref meshName() instead.
* @see @ref mesh2DForName()
*/
CORRADE_DEPRECATED("use meshName() instead") std::string mesh2DName(UnsignedInt id);
@ -946,7 +946,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
*
* Returns given mesh or @ref Containers::NullOpt if importing failed.
* Expects that a file is opened.
* @m_deprecated_since_latest Use @ref mesh() instead.
* @m_deprecated_since{2020,06} Use @ref mesh() instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH /* Clang doesn't warn, but GCC does */
CORRADE_DEPRECATED("use mesh() instead") Containers::Optional<MeshData2D> mesh2D(UnsignedInt id);
@ -956,7 +956,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
* @brief Three-dimensional mesh count
*
* Expects that a file is opened.
* @m_deprecated_since_latest Use @ref meshCount() instead.
* @m_deprecated_since{2020,06} Use @ref meshCount() instead.
*/
CORRADE_DEPRECATED("use meshCount() instead") UnsignedInt mesh3DCount() const;
@ -965,7 +965,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
*
* If no mesh for given name exists, returns @cpp -1 @ce. Expects that
* a file is opened.
* @m_deprecated_since_latest Use @ref meshForName() instead.
* @m_deprecated_since{2020,06} Use @ref meshForName() instead.
* @see @ref mesh3DName()
*/
CORRADE_DEPRECATED("use meshForName() instead") Int mesh3DForName(const std::string& name);
@ -975,7 +975,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
* @param id Mesh ID, from range [0, @ref mesh3DCount()).
*
* Expects that a file is opened.
* @m_deprecated_since_latest Use @ref meshName() instead.
* @m_deprecated_since{2020,06} Use @ref meshName() instead.
* @see @ref mesh3DForName()
*/
CORRADE_DEPRECATED("use meshName() instead") std::string mesh3DName(UnsignedInt id);
@ -986,7 +986,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
*
* Returns given mesh or @ref Containers::NullOpt if importing failed.
* Expects that a file is opened.
* @m_deprecated_since_latest Use @ref meshName() instead.
* @m_deprecated_since{2020,06} Use @ref meshName() instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH /* Clang doesn't warn, but GCC does */
CORRADE_DEPRECATED("use mesh() instead") Containers::Optional<MeshData3D> mesh3D(UnsignedInt id);
@ -1030,7 +1030,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Material for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref materialForName() and
* @ref material(UnsignedInt). If @ref materialForName() returns
@ -1077,7 +1077,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Texture for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref textureForName() and
* @ref texture(UnsignedInt). If @ref textureForName() returns
@ -1098,7 +1098,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief One-dimensional image mip level count
* @param id Image ID, from range [0, @ref image1DCount())
* @m_since_latest
* @m_since{2020,06}
*
* Always returns at least one level, import failures are deferred to
* @ref image1D(). Expects that a file is opened.
@ -1136,7 +1136,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief One-dimensional image for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref image1DForName() and
* @ref image1D(UnsignedInt, UnsignedInt). If @ref image1DForName()
@ -1158,7 +1158,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Two-dimensional image mip level count
* @param id Image ID, from range [0, @ref image2DCount()).
* @m_since_latest
* @m_since{2020,06}
*
* Always returns at least one level, import failures are deferred to
* @ref image2D(). Expects that a file is opened.
@ -1196,7 +1196,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Two-dimensional image for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref image2DForName() and
* @ref image2D(UnsignedInt, UnsignedInt). If @ref image2DForName()
@ -1218,7 +1218,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Three-dimensional image mip level count
* @param id Image ID, from range [0, @ref image3DCount())
* @m_since_latest
* @m_since{2020,06}
*
* Always returns at least one level, import failures are deferred to
* @ref image3D(). Expects that a file is opened.
@ -1256,7 +1256,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Three-dimensional image for given name
* @m_since_latest
* @m_since{2020,06}
*
* A convenience API combining @ref image3DForName() and
* @ref image3D(UnsignedInt, UnsignedInt). If @ref image3DForName()
@ -1503,7 +1503,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Implementation for @ref meshCount()
* @m_since_latest
* @m_since{2020,06}
*
* Default implementation returns @cpp 0 @ce.
*/
@ -1511,7 +1511,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Implementation for @ref meshLevelCount()
* @m_since_latest
* @m_since{2020,06}
*
* Default implementation returns @cpp 1 @ce. Similarly to all other
* `*Count()` functions, this function isn't expected to fail --- if an
@ -1525,7 +1525,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Implementation for @ref meshForName()
* @m_since_latest
* @m_since{2020,06}
*
* Default implementation returns @cpp -1 @ce.
*/
@ -1533,7 +1533,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Implementation for @ref meshName()
* @m_since_latest
* @m_since{2020,06}
*
* Default implementation returns an empty string.
*/
@ -1541,13 +1541,13 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Implementation for @ref mesh()
* @m_since_latest
* @m_since{2020,06}
*/
virtual Containers::Optional<MeshData> doMesh(UnsignedInt id, UnsignedInt level);
/**
* @brief Implementation for @ref meshAttributeForName()
* @m_since_latest
* @m_since{2020,06}
*
* Default implementation returns an invalid (zero) value.
*/
@ -1555,7 +1555,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Implementation for @ref meshAttributeName()
* @m_since_latest
* @m_since{2020,06}
*
* Receives the custom ID extracted via @ref meshAttributeCustom(MeshAttribute).
* Default implementation returns an empty string.
@ -1570,7 +1570,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
* importers in existence known to implement 2D mesh import, so unlike
* @ref doMesh3DCount() this function doesn't delegate to
* @ref doMeshCount().
* @m_deprecated_since_latest Implement @ref doMeshCount() instead.
* @m_deprecated_since{2020,06} Implement @ref doMeshCount() instead.
*/
/* MSVC warns when overriding such methods and there's no way to
suppress that warning, making the RT build (which treats deprecation
@ -1588,7 +1588,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
* importers in existence known to implement 2D mesh import, so unlike
* @ref doMesh3DForName() this function doesn't delegate to
* @ref doMeshForName().
* @m_deprecated_since_latest Implement @ref doMeshForName() instead.
* @m_deprecated_since{2020,06} Implement @ref doMeshForName() instead.
*/
#if !(defined(CORRADE_TARGET_MSVC) && !defined(CORRADE_TARGET_CLANG))
CORRADE_DEPRECATED("implement doMeshForName() instead")
@ -1602,7 +1602,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
* importers in existence known to implement 2D mesh import, so unlike
* @ref doMesh3DName() this function doesn't delegate to
* @ref doMeshName().
* @m_deprecated_since_latest Implement @ref doMeshName() instead.
* @m_deprecated_since{2020,06} Implement @ref doMeshName() instead.
*/
#if !(defined(CORRADE_TARGET_MSVC) && !defined(CORRADE_TARGET_CLANG))
CORRADE_DEPRECATED("implement doMeshName() instead")
@ -1615,7 +1615,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
* There weren't any importers in existence known to implement 2D mesh
* import, so unlike @ref doMesh3D() this function doesn't
* delegate to @ref doMesh().
* @m_deprecated_since_latest Implement @ref doMesh() instead.
* @m_deprecated_since{2020,06} Implement @ref doMesh() instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH /* Clang doesn't warn, but GCC does */
#if !(defined(CORRADE_TARGET_MSVC) && !defined(CORRADE_TARGET_CLANG))
@ -1629,7 +1629,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
*
* Default implementation returns @ref doMeshCount() for backwards
* compatibility.
* @m_deprecated_since_latest Implement @ref doMeshCount() instead.
* @m_deprecated_since{2020,06} Implement @ref doMeshCount() instead.
*/
#if !(defined(CORRADE_TARGET_MSVC) && !defined(CORRADE_TARGET_CLANG))
CORRADE_DEPRECATED("implement doMeshCount() instead")
@ -1641,7 +1641,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
*
* Default implementation returns @ref doMeshForName() for backwards
* compatibility.
* @m_deprecated_since_latest Implement @ref doMeshForName() instead.
* @m_deprecated_since{2020,06} Implement @ref doMeshForName() instead.
*/
#if !(defined(CORRADE_TARGET_MSVC) && !defined(CORRADE_TARGET_CLANG))
CORRADE_DEPRECATED("implement doMeshForName() instead")
@ -1653,7 +1653,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
*
* Default implementation returns @ref doMeshName() for backwards
* compatibility.
* @m_deprecated_since_latest Implement @ref doMeshName() instead.
* @m_deprecated_since{2020,06} Implement @ref doMeshName() instead.
*/
#if !(defined(CORRADE_TARGET_MSVC) && !defined(CORRADE_TARGET_CLANG))
CORRADE_DEPRECATED("implement doMeshName() instead")
@ -1665,7 +1665,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
*
* Default implementation returns @ref doMesh() converted to
* @cpp MeshData3D @ce for backwards compatibility.
* @m_deprecated_since_latest Implement @ref doMesh() instead.
* @m_deprecated_since{2020,06} Implement @ref doMesh() instead.
*/
CORRADE_IGNORE_DEPRECATED_PUSH /* Clang doesn't warn, but GCC does */
#if !(defined(CORRADE_TARGET_MSVC) && !defined(CORRADE_TARGET_CLANG))
@ -1732,7 +1732,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Implementation for @ref image1DLevelCount()
* @m_since_latest
* @m_since{2020,06}
*
* Default implementation returns @cpp 1 @ce. See
* @ref doImage2DLevelCount() for expected implementation behavior.
@ -1765,7 +1765,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Implementation for @ref image2DLevelCount()
* @m_since_latest
* @m_since{2020,06}
*
* Default implementation returns @cpp 1 @ce. Similarly to all other
* `*Count()` functions, this function isn't expected to fail --- if an
@ -1806,7 +1806,7 @@ class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagi
/**
* @brief Implementation for @ref image3DLevelCount()
* @m_since_latest
* @m_since{2020,06}
*
* Default implementation returns @cpp 1 @ce. See
* @ref doImage2DLevelCount() for expected implementation behavior.

16
src/Magnum/Trade/AbstractSceneConverter.h

@ -27,7 +27,7 @@
/** @file
* @brief Class @ref Magnum::Trade::AbstractSceneConverter, enum @ref Magnum::Trade::SceneConverterFeature, enum set @ref Magnum::Trade::SceneConverterFeatures
* @m_since_latest
* @m_since{2020,06}
*/
#include <Corrade/PluginManager/AbstractManagingPlugin.h>
@ -40,7 +40,7 @@ namespace Magnum { namespace Trade {
/**
@brief Features supported by a scene converter
@m_since_latest
@m_since{2020,06}
@see @ref SceneConverterFeatures, @ref AbstractSceneConverter::features()
*/
@ -73,7 +73,7 @@ enum class SceneConverterFeature: UnsignedByte {
/**
@brief Features supported by a scene converter
@m_since_latest
@m_since{2020,06}
@see @ref AbstractSceneConverter::features()
*/
@ -89,7 +89,7 @@ MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, SceneConverterFeatures value
/**
@brief Scene converter flag
@m_since_latest
@m_since{2020,06}
@see @ref SceneConverterFlags, @ref AbstractSceneConverter::setFlags()
*/
@ -106,7 +106,7 @@ enum class SceneConverterFlag: UnsignedByte {
/**
@brief Scene converter flags
@m_since_latest
@m_since{2020,06}
@see @ref AbstractImporter::setFlags()
*/
@ -116,19 +116,19 @@ CORRADE_ENUMSET_OPERATORS(SceneConverterFlags)
/**
@debugoperatorenum{SceneConverterFlag}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, SceneConverterFlag value);
/**
@debugoperatorenum{SceneConverterFlags}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, SceneConverterFlags value);
/**
@brief Base for scene converter plugins
@m_since_latest
@m_since{2020,06}
Provides functionality for converting meshes and other scene data between
various formats or performing optimizations and other operations on them. See

24
src/Magnum/Trade/AnimationData.h

@ -252,7 +252,7 @@ class AnimationTrackData {
* @param targetType Track target type
* @param target Track target
* @param view @ref Animation::TrackView instance
* @m_since_latest
* @m_since{2020,06}
*
* Detects @ref AnimationTrackType from @p view type and delegates to
* @ref AnimationTrackData(AnimationTrackType, AnimationTrackType, AnimationTrackTargetType, UnsignedInt, Animation::TrackViewStorage<const Float>).
@ -329,7 +329,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
/* Not noexcept because allocation happens inside */
explicit AnimationData(Containers::Array<char>&& data, std::initializer_list<AnimationTrackData> tracks, const void* importerState = nullptr);
@ -341,7 +341,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
* for this animation clip
* @param tracks Track data
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref AnimationData(Containers::Array<char>&&, Containers::Array<AnimationTrackData>&&, const void*)
* creates an instance that doesn't own the passed data. The
@ -353,7 +353,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
/* Not noexcept because allocation happens inside */
explicit AnimationData(DataFlags dataFlags, Containers::ArrayView<const void> data, std::initializer_list<AnimationTrackData> tracks, const void* importerState = nullptr);
@ -378,7 +378,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
/* Not noexcept because allocation happens inside */
explicit AnimationData(Containers::Array<char>&& data, std::initializer_list<AnimationTrackData> tracks, const Range1D& duration, const void* importerState = nullptr);
@ -391,7 +391,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
* @param tracks Track data
* @param duration Animation track duration
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref AnimationData(Containers::Array<char>&&, Containers::Array<AnimationTrackData>&&, const Range1D&, const void*)
* creates an instance that doesn't own the passed data. The
@ -403,7 +403,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
/**
* @overload
* @m_since_latest
* @m_since{2020,06}
*/
/* Not noexcept because allocation happens inside */
explicit AnimationData(DataFlags dataFlags, Containers::ArrayView<const void> data, std::initializer_list<AnimationTrackData> tracks, const Range1D& duration, const void* importerState = nullptr);
@ -424,7 +424,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
/**
* @brief Data flags
* @m_since_latest
* @m_since{2020,06}
*
* @see @ref release(), @ref mutableData(), @ref mutableTrack()
*/
@ -443,7 +443,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
/**
* @brief Mutable raw data
* @m_since_latest
* @m_since{2020,06}
*
* Like @ref data(), but returns a non-const view. Expects that the
* animation is mutable.
@ -453,7 +453,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
/**
* @brief Taking a view to a r-value instance is not allowed
* @m_since_latest
* @m_since{2020,06}
*/
Containers::ArrayView<char> mutableData() && = delete;
@ -526,7 +526,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
/**
* @brief Mutable track data storage
* @m_since_latest
* @m_since{2020,06}
*
* Like @ref track(), but returns a mutable view. Expects that the
* animation is mutable.
@ -550,7 +550,7 @@ class MAGNUM_TRADE_EXPORT AnimationData {
/**
* @brief Mutable track data
* @m_since_latest
* @m_since{2020,06}
*
* Like @ref track(), but returns a mutable view. Expects that the
* animation is mutable.

4
src/Magnum/Trade/ArrayAllocator.h

@ -27,7 +27,7 @@
/** @file
* @brief Class @ref Magnum::Trade::ArrayAllocator
* @m_since_latest
* @m_since{2020,06}
*/
#include <Corrade/Containers/GrowableArray.h>
@ -39,7 +39,7 @@ namespace Magnum { namespace Trade {
/**
@brief Growable array allocator to be used in importer plugins
@m_since_latest
@m_since{2020,06}
Compared to @ref Corrade::Containers::ArrayMallocAllocator ensures that the
@ref Array deleter function pointer is defined in the @ref Trade library and

10
src/Magnum/Trade/Data.h

@ -27,7 +27,7 @@
/** @file
* @brief Enum @ref Magnum::Trade::DataFlag, enum set @ref Magnum::Trade::DataFlags
* @m_since_latest
* @m_since{2020,06}
*/
#include <Corrade/Containers/EnumSet.h>
@ -39,7 +39,7 @@ namespace Magnum { namespace Trade {
/**
@brief Data flag
@m_since_latest
@m_since{2020,06}
@see @ref DataFlags, @ref AnimationData::dataFlags(),
@ref ImageData::dataFlags(), @ref MeshData::indexDataFlags(),
@ -64,13 +64,13 @@ enum class DataFlag: UnsignedByte {
/**
@debugoperatorenum{DataFlag}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, DataFlag value);
/**
@brief Data flags
@m_since_latest
@m_since{2020,06}
@see @ref AnimationData::dataFlags(), @ref ImageData::dataFlags(),
@ref MeshData::indexDataFlags(), @ref MeshData::vertexDataFlags()
@ -81,7 +81,7 @@ CORRADE_ENUMSET_OPERATORS(DataFlags)
/**
@debugoperatorenum{DataFlags}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, DataFlags value);

24
src/Magnum/Trade/ImageData.h

@ -135,7 +135,7 @@ template<UnsignedInt dimensions> class ImageData {
* @param dataFlags Data flags
* @param data View on image data
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref ImageData(PixelStorage, PixelFormat, const VectorTypeFor<dimensions, Int>&, Containers::Array<char>&&, const void*)
* creates an instance that doesn't own the passed data. The
@ -164,7 +164,7 @@ template<UnsignedInt dimensions> class ImageData {
* @param dataFlags Data flags
* @param data View on image data
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref ImageData(PixelFormat, const VectorTypeFor<dimensions, Int>&, Containers::Array<char>&&, const void*)
* creates an instance that doesn't own the passed data. The
@ -216,7 +216,7 @@ template<UnsignedInt dimensions> class ImageData {
* @param dataFlags Data flags
* @param data View on image data
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref ImageData(PixelStorage, UnsignedInt, UnsignedInt, UnsignedInt, const VectorTypeFor<dimensions, Int>&, Containers::Array<char>&&, const void*)
* creates an instance that doesn't own the passed data. The
@ -227,7 +227,7 @@ template<UnsignedInt dimensions> class ImageData {
explicit ImageData(PixelStorage storage, UnsignedInt format, UnsignedInt formatExtra, UnsignedInt pixelSize, const VectorTypeFor<dimensions, Int>& size, DataFlags dataFlags, Containers::ArrayView<const void> data, const void* importerState = nullptr) noexcept;
/** @overload
* @m_since_latest
* @m_since{2020,06}
*
* Equivalent to the above for @p format already wrapped with
* @ref pixelFormatWrap().
@ -258,7 +258,7 @@ template<UnsignedInt dimensions> class ImageData {
* @param dataFlags Data flags
* @param data View on image data
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref ImageData(PixelStorage, T, U, const VectorTypeFor<dimensions, Int>&, Containers::Array<char>&&, const void*)
* creates an instance that doesn't own the passed data. The
@ -290,7 +290,7 @@ template<UnsignedInt dimensions> class ImageData {
* @param dataFlags Data flags
* @param data view on image data
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref ImageData(PixelStorage, T, const VectorTypeFor<dimensions, Int>&, Containers::Array<char>&&, const void*)
* creates an instance that doesn't own the passed data. The
@ -318,7 +318,7 @@ template<UnsignedInt dimensions> class ImageData {
* @param dataFlags Data flags
* @param data View on image data
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref ImageData(CompressedPixelStorage, CompressedPixelFormat, const VectorTypeFor<dimensions, Int>&, Containers::Array<char>&&, const void*)
* creates an instance that doesn't own the passed data. The
@ -347,7 +347,7 @@ template<UnsignedInt dimensions> class ImageData {
* @param dataFlags Data flags
* @param data View on image data
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref ImageData(CompressedPixelFormat, const VectorTypeFor<dimensions, Int>&, Containers::Array<char>&&, const void*)
* creates an instance that doesn't own the passed data. The
@ -378,7 +378,7 @@ template<UnsignedInt dimensions> class ImageData {
* @param dataFlags Data flags
* @param data View on image data
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* Compared to @ref ImageData(CompressedPixelStorage, T, const VectorTypeFor<dimensions, Int>&, Containers::Array<char>&&, const void*)
* creates an instance that doesn't own the passed data. The
@ -413,7 +413,7 @@ template<UnsignedInt dimensions> class ImageData {
/**
* @brief Data flags
* @m_since_latest
* @m_since{2020,06}
*/
DataFlags dataFlags() const { return _dataFlags; }
@ -567,7 +567,7 @@ template<UnsignedInt dimensions> class ImageData {
/**
* @brief Mutable image data
* @m_since_latest
* @m_since{2020,06}
*
* Like @ref data(), but returns a non-const view. Expects that the
* image is mutable.
@ -613,7 +613,7 @@ template<UnsignedInt dimensions> class ImageData {
/**
* @brief Mutable view on pixel data
* @m_since_latest
* @m_since{2020,06}
*
* Like @ref pixels() const, but returns a non-const view. Expects that
* the image is mutable.

20
src/Magnum/Trade/MeshData.h

@ -27,7 +27,7 @@
/** @file
* @brief Class @ref Magnum::Trade::MeshData, @ref Magnum::Trade::MeshIndexData, @ref Magnum::Trade::MeshAttributeData, enum @ref Magnum::Trade::MeshAttribute, function @ref Magnum::Trade::isMeshAttributeCustom(), @ref Magnum::Trade::meshAttributeCustom()
* @m_since_latest
* @m_since{2020,06}
*/
#include <Corrade/Containers/Array.h>
@ -42,7 +42,7 @@ namespace Magnum { namespace Trade {
/**
@brief Mesh attribute name
@m_since_latest
@m_since{2020,06}
@see @ref MeshData, @ref MeshAttributeData, @ref VertexFormat,
@ref AbstractImporter::meshAttributeForName(),
@ -159,13 +159,13 @@ enum class MeshAttribute: UnsignedShort {
/**
@debugoperatorenum{MeshAttribute}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, MeshAttribute value);
/**
@brief Whether a mesh attribute is custom
@m_since_latest
@m_since{2020,06}
Returns @cpp true @ce if @p name has a value larger or equal to
@ref MeshAttribute::Custom, @cpp false @ce otherwise.
@ -178,7 +178,7 @@ constexpr bool isMeshAttributeCustom(MeshAttribute name) {
/**
@brief Create a custom mesh attribute
@m_since_latest
@m_since{2020,06}
Returns a custom mesh attribute with index @p id. The index is expected to be
less than the value of @ref MeshAttribute::Custom. Use
@ -194,7 +194,7 @@ constexpr MeshAttribute meshAttributeCustom(UnsignedShort id) {
/**
@brief Get index of a custom mesh attribute
@m_since_latest
@m_since{2020,06}
Inverse to @ref meshAttributeCustom(UnsignedShort). Expects that the attribute
is custom.
@ -208,7 +208,7 @@ constexpr UnsignedShort meshAttributeCustom(MeshAttribute name) {
/**
@brief Mesh index data
@m_since_latest
@m_since{2020,06}
Convenience type for populating @ref MeshData, see its documentation for an
introduction.
@ -285,7 +285,7 @@ class MAGNUM_TRADE_EXPORT MeshIndexData {
/**
@brief Mesh attribute data
@m_since_latest
@m_since{2020,06}
Convenience type for populating @ref MeshData, see its documentation for an
introduction. Additionally usable in various @ref MeshTools algorithms such as
@ -575,7 +575,7 @@ class MAGNUM_TRADE_EXPORT MeshAttributeData {
/** @relatesalso MeshAttributeData
@brief Create a non-owning array of @ref MeshAttributeData items
@m_since_latest
@m_since{2020,06}
Useful when you have the attribute definitions statically defined (for example
when the vertex data themselves are already defined at compile time) and don't
@ -585,7 +585,7 @@ Containers::Array<MeshAttributeData> MAGNUM_TRADE_EXPORT meshAttributeDataNonOwn
/**
@brief Mesh data
@m_since_latest
@m_since{2020,06}
Provides access to mesh vertex and index data, together with additional
information such as primitive type. Populated instances of this class are

6
src/Magnum/Trade/MeshData2D.h

@ -28,7 +28,7 @@
#ifdef MAGNUM_BUILD_DEPRECATED
/** @file
* @brief Class @ref Magnum::Trade::MeshData2D
* @m_deprecated_since_latest Use @ref Magnum/Trade/MeshData.h and the
* @m_deprecated_since{2020,06} Use @ref Magnum/Trade/MeshData.h and the
* @ref Magnum::Trade::MeshData "MeshData" class instead.
*/
#endif
@ -59,7 +59,7 @@ directly to vertex positions:
@snippet MagnumTrade.cpp MeshData2D-transform
@m_deprecated_since_latest Use @ref MeshData instead.
@m_deprecated_since{2020,06} Use @ref MeshData instead.
@see @ref AbstractImporter::mesh2D(), @ref MeshData3D
*/
@ -82,7 +82,7 @@ class CORRADE_DEPRECATED("use MeshData instead") MAGNUM_TRADE_EXPORT MeshData2D
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief Construct from @ref MeshData
* @m_deprecated_since_latest Use @ref MeshData directly instead.
* @m_deprecated_since{2020,06} Use @ref MeshData directly instead.
*/
/* No data moving can take place because std::vector is damn shitty
regarding memory ownership transfer, so it can well be a copy. */

6
src/Magnum/Trade/MeshData3D.h

@ -28,7 +28,7 @@
#ifdef MAGNUM_BUILD_DEPRECATED
/** @file
* @brief Class @ref Magnum::Trade::MeshData3D
* @m_deprecated_since_latest Use @ref Magnum/Trade/MeshData.h and the
* @m_deprecated_since{2020,06} Use @ref Magnum/Trade/MeshData.h and the
* @ref Magnum::Trade::MeshData "MeshData" class instead.
*/
#endif
@ -59,7 +59,7 @@ to positions and normals:
@snippet MagnumTrade.cpp MeshData3D-transform
@m_deprecated_since_latest Use @ref MeshData instead.
@m_deprecated_since{2020,06} Use @ref MeshData instead.
@see @ref AbstractImporter::mesh3D(), @ref MeshData2D
*/
@ -83,7 +83,7 @@ class CORRADE_DEPRECATED("use MeshData instead") MAGNUM_TRADE_EXPORT MeshData3D
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief Construct from @ref MeshData
* @m_deprecated_since_latest Use @ref MeshData directly instead.
* @m_deprecated_since{2020,06} Use @ref MeshData directly instead.
*/
/* No data moving can take place because std::vector is damn shitty
regarding memory ownership transfer, so it can well be a copy. */

36
src/Magnum/Trade/PhongMaterialData.h

@ -65,19 +65,19 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
/**
* The material has a normal texture
* @m_since_latest
* @m_since{2020,06}
*/
NormalTexture = 1 << 4,
/**
* The material has a texture coordinate transformation
* @m_since_latest
* @m_since{2020,06}
*/
TextureTransformation = 1 << 5,
/**
* The material uses non-default texture coordinate sets
* @m_since_latest
* @m_since{2020,06}
*/
TextureCoordinateSets = 1 << 6
};
@ -119,7 +119,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
* @param shininess Shininess. Use @cpp 80.0f @ce for a default
* value.
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* All `*CoordinateSet` accessors are implicitly zero with this
* constructor. If @p textureMatrix is not default-constructed, expects
@ -164,7 +164,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
* @param shininess Shininess. Use @cpp 80.0f @ce for a
* default value.
* @param importerState Importer-specific state
* @m_since_latest
* @m_since{2020,06}
*
* If @p textureMatrix is not default-constructed, expects
* @ref Flag::TextureTransformation to be enabled as well. If any
@ -176,7 +176,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @brief Constructor
* @m_deprecated_since_latest Use @ref PhongMaterialData(Flags, const Color4&, UnsignedInt, const Color4&, UnsignedInt, const Color4&, UnsignedInt, UnsignedInt, const Matrix3&, MaterialAlphaMode, Float, Float, const void*)
* @m_deprecated_since{2020,06} Use @ref PhongMaterialData(Flags, const Color4&, UnsignedInt, const Color4&, UnsignedInt, const Color4&, UnsignedInt, UnsignedInt, const Matrix3&, MaterialAlphaMode, Float, Float, const void*)
* instead.
*/
explicit CORRADE_DEPRECATED("use PhongMaterialData(Flags, const Color4&, UnsignedInt, const Color4&, UnsignedInt, const Color4&, UnsignedInt, UnsignedInt, const Matrix3&, MaterialAlphaMode, Float, Float, const void*) instead") PhongMaterialData(Flags flags, MaterialAlphaMode alphaMode, Float alphaMask, Float shininess, const void* importerState = nullptr) noexcept;
@ -221,7 +221,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @m_deprecated_since_latest Use the constructor to populate all
* @m_deprecated_since{2020,06} Use the constructor to populate all
* values instead.
*/
/* Not marked with CORRADE_DEPRECATED() because the compiler picks this
@ -242,7 +242,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @m_deprecated_since_latest Use the constructor to populate all
* @m_deprecated_since{2020,06} Use the constructor to populate all
* values instead of modifying the instance afterwards.
*/
/* Not using CORRADE_DEPRECATED(), see why above */
@ -251,7 +251,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
/**
* @brief Ambient texture coordinate set
* @m_since_latest
* @m_since{2020,06}
*
* Available only if the material has @ref Flag::AmbientTexture.
* @see @ref flags(), @ref AbstractImporter::texture()
@ -269,7 +269,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @m_deprecated_since_latest Use the constructor to populate all
* @m_deprecated_since{2020,06} Use the constructor to populate all
* values instead of modifying the instance afterwards.
*/
/* Not using CORRADE_DEPRECATED(), see why above */
@ -287,7 +287,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @m_deprecated_since_latest Use the constructor to populate all
* @m_deprecated_since{2020,06} Use the constructor to populate all
* values instead of modifying the instance afterwards.
*/
/* Not using CORRADE_DEPRECATED(), see why above */
@ -296,7 +296,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
/**
* @brief Diffuse texture coordinate set
* @m_since_latest
* @m_since{2020,06}
*
* Available only if the material has @ref Flag::DiffuseTexture.
* @see @ref flags(), @ref AbstractImporter::texture()
@ -314,7 +314,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @m_deprecated_since_latest Use the constructor to populate all
* @m_deprecated_since{2020,06} Use the constructor to populate all
* values instead of modifying the instance afterwards.
*/
/* Not using CORRADE_DEPRECATED(), see why above */
@ -332,7 +332,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
#ifdef MAGNUM_BUILD_DEPRECATED
/**
* @m_deprecated_since_latest Use the constructor to populate all
* @m_deprecated_since{2020,06} Use the constructor to populate all
* values instead of modifying the instance afterwards.
*/
/* Not using CORRADE_DEPRECATED(), see why above */
@ -341,7 +341,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
/**
* @brief Specular texture coordinate set
* @m_since_latest
* @m_since{2020,06}
*
* Available only if the material has @ref Flag::SpecularTexture.
* @see @ref flags(), @ref AbstractImporter::texture()
@ -350,7 +350,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
/**
* @brief Normal texture ID
* @m_since_latest
* @m_since{2020,06}
*
* Available only if the material has @ref Flag::NormalTexture.
* @see @ref flags(), @ref AbstractImporter::texture()
@ -359,7 +359,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
/**
* @brief Normal texture coordinate set
* @m_since_latest
* @m_since{2020,06}
*
* Available only if the material has @ref Flag::NormalTexture.
* @see @ref flags(), @ref AbstractImporter::texture()
@ -368,7 +368,7 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
/**
* @brief Texture coordinate transformation matrix
* @m_since_latest
* @m_since{2020,06}
*
* If the material doesn't have @ref Flag::TextureTransformation,
* returns an identity matrix.

28
src/Magnum/VertexFormat.h

@ -39,7 +39,7 @@ namespace Magnum {
/**
@brief Vertex format
@m_since_latest
@m_since{2020,06}
Like @ref PixelFormat, but for mesh attributes --- including double-precision
types and matrices. Can act also as a wrapper for implementation-specific mesh
@ -1321,13 +1321,13 @@ enum class VertexFormat: UnsignedInt {
/**
@debugoperatorenum{VertexFormat}
@m_since_latest
@m_since{2020,06}
*/
MAGNUM_EXPORT Debug& operator<<(Debug& debug, VertexFormat value);
/**
@brief Whether a @ref VertexFormat value wraps an implementation-specific identifier
@m_since_latest
@m_since{2020,06}
Returns @cpp true @ce if value of @p format has its highest bit set,
@cpp false @ce otherwise. Use @ref vertexFormatWrap() and @ref vertexFormatUnwrap()
@ -1340,7 +1340,7 @@ constexpr bool isVertexFormatImplementationSpecific(VertexFormat format) {
/**
@brief Wrap an implementation-specific vertex format identifier in @ref VertexFormat
@m_since_latest
@m_since{2020,06}
Sets the highest bit on @p type to mark it as implementation-specific. Expects
that @p type fits into the remaining bits. Use @ref vertexFormatUnwrap()
@ -1356,7 +1356,7 @@ template<class T> constexpr VertexFormat vertexFormatWrap(T implementationSpecif
/**
@brief Unwrap an implementation-specific vertex format identifier from @ref VertexFormat
@m_since_latest
@m_since{2020,06}
Unsets the highest bit from @p type to extract the implementation-specific
value. Expects that @p type has it set. Use @ref vertexFormatWrap() for
@ -1371,7 +1371,7 @@ template<class T = UnsignedInt> constexpr T vertexFormatUnwrap(VertexFormat form
/**
@brief Size of given vertex format
@m_since_latest
@m_since{2020,06}
To get size of a single component, call this function on a result of
@ref vertexFormatComponentFormat().
@ -1380,7 +1380,7 @@ MAGNUM_EXPORT UnsignedInt vertexFormatSize(VertexFormat format);
/**
@brief Component format of given vertex format
@m_since_latest
@m_since{2020,06}
The function also removes the normalization aspect from the type --- use
@ref isVertexFormatNormalized() to query that. Returns for example
@ -1395,7 +1395,7 @@ MAGNUM_EXPORT VertexFormat vertexFormatComponentFormat(VertexFormat format);
/**
@brief Component count of given vertex format
@m_since_latest
@m_since{2020,06}
Returns @cpp 1 @ce for scalar types and e.g. @cpp 3 @ce for
@ref VertexFormat::Vector3ub.
@ -1405,7 +1405,7 @@ MAGNUM_EXPORT UnsignedInt vertexFormatComponentCount(VertexFormat format);
/**
@brief Vector count of given vertex format
@m_since_latest
@m_since{2020,06}
Returns @cpp 1 @ce for scalar and vector types and e.g. @cpp 3 @ce for
@ref VertexFormat::Matrix3x2d.
@ -1414,7 +1414,7 @@ MAGNUM_EXPORT UnsignedInt vertexFormatVectorCount(VertexFormat format);
/**
@brief Vector stride of given vertex format
@m_since_latest
@m_since{2020,06}
Returns type size for scalar and vector types and e.g. @cpp 8 @ce for
@ref VertexFormat::Matrix2x3hAligned (but @cpp 6 @ce for
@ -1424,7 +1424,7 @@ MAGNUM_EXPORT UnsignedInt vertexFormatVectorStride(VertexFormat format);
/**
@brief Component count of given vertex format
@m_since_latest
@m_since{2020,06}
Returns @cpp true @ce for `*Normalized` types, @cpp false @ce otherwise. In
particular, floating-point types are *not* treated as normalized, even though
@ -1436,7 +1436,7 @@ MAGNUM_EXPORT bool isVertexFormatNormalized(VertexFormat format);
/**
@brief Assemble a vertex format from parts
@m_since_latest
@m_since{2020,06}
Converts @p format to a new format of desired component count and
normalization. Expects that @p componentCount is not larger than @cpp 4 @ce and
@ -1449,7 +1449,7 @@ MAGNUM_EXPORT VertexFormat vertexFormat(VertexFormat format, UnsignedInt compone
/**
@brief Assemble a matrix vertex format from parts
@m_since_latest
@m_since{2020,06}
Converts @p format to a new format of desired component and vertex count and
normalization. Expects that both @p vectorCount and @p componentCount is either
@ -1469,7 +1469,7 @@ namespace Corrade { namespace Utility {
/**
@configurationvalue{Magnum::VertexFormat}
@m_since_latest
@m_since{2020,06}
*/
template<> struct MAGNUM_EXPORT ConfigurationValue<Magnum::VertexFormat> {
ConfigurationValue() = delete;

4
src/Magnum/Vk/Enums.h

@ -89,7 +89,7 @@ MAGNUM_VK_EXPORT VkIndexType vkIndexType(Magnum::MeshIndexType type);
/**
@brief Check availability of a generic vertex format
@m_since_latest
@m_since{2020,06}
Some Vulkan targets don't support all generic vertex formats. Returns
@cpp false @ce if current target can't support such format, @cpp true @ce
@ -144,7 +144,7 @@ MAGNUM_VK_EXPORT bool hasVkFormat(Magnum::CompressedPixelFormat format);
/**
@brief Convert a generic vertex format to Vulkan format
@m_since_latest
@m_since{2020,06}
In case @ref isVertexFormatImplementationSpecific() returns @cpp false @ce for
@p format, maps it to a corresponding Vulkan format. In case

Loading…
Cancel
Save