diff --git a/doc/changelog.dox b/doc/changelog.dox index 5bda5ae29..32d7776e7 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -474,7 +474,7 @@ See also: - @ref MeshTools::interleavedLayout(const Trade::MeshData&, UnsignedInt, Containers::ArrayView, InterleaveFlags), @ref MeshTools::interleave(const Trade::MeshData&, Containers::ArrayView, InterleaveFlags) and - @ref MeshTools::concatenate(Containers::Iterable, InterleaveFlags) + @ref MeshTools::concatenate(const Containers::Iterable&, InterleaveFlags) optionally take a @ref MeshTools::InterleaveFlags parameter affecting the output, in particular whether to preserve the original interleaved layout. diff --git a/src/Magnum/GL/AbstractShaderProgram.cpp b/src/Magnum/GL/AbstractShaderProgram.cpp index 25acacc37..5e9054d30 100644 --- a/src/Magnum/GL/AbstractShaderProgram.cpp +++ b/src/Magnum/GL/AbstractShaderProgram.cpp @@ -537,7 +537,7 @@ void AbstractShaderProgram::attachShader(Shader& shader) { glAttachShader(_id, shader.id()); } -void AbstractShaderProgram::attachShaders(Containers::Iterable shaders) { +void AbstractShaderProgram::attachShaders(const Containers::Iterable& shaders) { for(Shader& s: shaders) attachShader(s); } @@ -596,7 +596,7 @@ void AbstractShaderProgram::submitLink() { glLinkProgram(_id); } -bool AbstractShaderProgram::checkLink(const Containers::Iterable shaders) { +bool AbstractShaderProgram::checkLink(const Containers::Iterable& shaders) { /* If any compilation failed, abort without even checking the link status. The checkCompile() API is called always, to print also compilation warnings even in case everything still manages to link well. */ diff --git a/src/Magnum/GL/AbstractShaderProgram.h b/src/Magnum/GL/AbstractShaderProgram.h index ee98bb08f..da3b3c953 100644 --- a/src/Magnum/GL/AbstractShaderProgram.h +++ b/src/Magnum/GL/AbstractShaderProgram.h @@ -1415,7 +1415,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject { * than one shader at once. Other than that there is no other * (performance) difference when using this function. */ - void attachShaders(Containers::Iterable shaders); + void attachShaders(const Containers::Iterable& shaders); /** * @brief Bind an attribute to given location @@ -1584,7 +1584,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject { */ /* No default argument is provided in order to *really* encourage apps to pass the shaders here */ - bool checkLink(Containers::Iterable shaders); + bool checkLink(const Containers::Iterable& shaders); /** * @brief Get uniform location diff --git a/src/Magnum/MeshTools/Combine.cpp b/src/Magnum/MeshTools/Combine.cpp index 0accd4459..7721ac396 100644 --- a/src/Magnum/MeshTools/Combine.cpp +++ b/src/Magnum/MeshTools/Combine.cpp @@ -43,7 +43,7 @@ Trade::MeshData combineIndexedImplementation( #ifndef CORRADE_NO_ASSERT const char* assertPrefix, #endif - const MeshPrimitive primitive, Containers::Array& combinedIndices, const UnsignedInt indexCount, const UnsignedInt indexStride, const Containers::Iterable data) + const MeshPrimitive primitive, Containers::Array& combinedIndices, const UnsignedInt indexCount, const UnsignedInt indexStride, const Containers::Iterable& data) { /* Calculate attribute count and vertex stride */ UnsignedInt attributeCount = 0; @@ -110,7 +110,7 @@ Trade::MeshData combineIndexedImplementation( } -Trade::MeshData combineIndexedAttributes(const Containers::Iterable data) { +Trade::MeshData combineIndexedAttributes(const Containers::Iterable& data) { CORRADE_ASSERT(!data.isEmpty(), "MeshTools::combineIndexedAttributes(): no meshes passed", (Trade::MeshData{MeshPrimitive{}, 0})); diff --git a/src/Magnum/MeshTools/Combine.h b/src/Magnum/MeshTools/Combine.h index fb0341802..4e37bb30a 100644 --- a/src/Magnum/MeshTools/Combine.h +++ b/src/Magnum/MeshTools/Combine.h @@ -95,7 +95,7 @@ implementation-specific format. @see @ref isMeshIndexTypeImplementationSpecific(), @ref isVertexFormatImplementationSpecific() */ -MAGNUM_MESHTOOLS_EXPORT Trade::MeshData combineIndexedAttributes(const Containers::Iterable data); +MAGNUM_MESHTOOLS_EXPORT Trade::MeshData combineIndexedAttributes(const Containers::Iterable& data); /** @brief Combine per-face attributes into an existing mesh diff --git a/src/Magnum/MeshTools/Concatenate.cpp b/src/Magnum/MeshTools/Concatenate.cpp index 67517cc7f..36e913091 100644 --- a/src/Magnum/MeshTools/Concatenate.cpp +++ b/src/Magnum/MeshTools/Concatenate.cpp @@ -33,7 +33,7 @@ namespace Magnum { namespace MeshTools { namespace Implementation { -std::pair concatenateIndexVertexCount(Containers::Iterable meshes) { +std::pair concatenateIndexVertexCount(const Containers::Iterable& meshes) { UnsignedInt indexCount = 0; UnsignedInt vertexCount = 0; for(const Trade::MeshData& mesh: meshes) { @@ -62,7 +62,7 @@ struct MeshAttributeHash: std::hash&& indexData, const UnsignedInt vertexCount, Containers::Array&& vertexData, Containers::Array&& attributeData, const Containers::Iterable meshes, const char* const assertPrefix) { +Trade::MeshData concatenate(Containers::Array&& indexData, const UnsignedInt vertexCount, Containers::Array&& vertexData, Containers::Array&& attributeData, const Containers::Iterable& meshes, const char* const assertPrefix) { #ifdef CORRADE_NO_ASSERT static_cast(assertPrefix); #endif @@ -189,7 +189,7 @@ Trade::MeshData concatenate(Containers::Array&& indexData, const UnsignedI } -Trade::MeshData concatenate(const Containers::Iterable meshes, const InterleaveFlags flags) { +Trade::MeshData concatenate(const Containers::Iterable& meshes, const InterleaveFlags flags) { CORRADE_ASSERT(!meshes.isEmpty(), "MeshTools::concatenate(): expected at least one mesh", (Trade::MeshData{MeshPrimitive::Points, 0})); diff --git a/src/Magnum/MeshTools/Concatenate.h b/src/Magnum/MeshTools/Concatenate.h index 3f5323baf..dac8b01d8 100644 --- a/src/Magnum/MeshTools/Concatenate.h +++ b/src/Magnum/MeshTools/Concatenate.h @@ -39,8 +39,8 @@ namespace Magnum { namespace MeshTools { namespace Implementation { - MAGNUM_MESHTOOLS_EXPORT std::pair concatenateIndexVertexCount(Containers::Iterable meshes); - MAGNUM_MESHTOOLS_EXPORT Trade::MeshData concatenate(Containers::Array&& indexData, UnsignedInt vertexCount, Containers::Array&& vertexData, Containers::Array&& attributeData, Containers::Iterable meshes, const char* assertPrefix); + MAGNUM_MESHTOOLS_EXPORT std::pair concatenateIndexVertexCount(const Containers::Iterable& meshes); + MAGNUM_MESHTOOLS_EXPORT Trade::MeshData concatenate(Containers::Array&& indexData, UnsignedInt vertexCount, Containers::Array&& vertexData, Containers::Array&& attributeData, const Containers::Iterable& meshes, const char* assertPrefix); } /** @@ -82,7 +82,7 @@ to compress it to a smaller type, if desired. @ref SceneTools::flattenMeshHierarchy2D(), @ref SceneTools::flattenMeshHierarchy3D() */ -MAGNUM_MESHTOOLS_EXPORT Trade::MeshData concatenate(Containers::Iterable meshes, InterleaveFlags flags = InterleaveFlag::PreserveInterleavedAttributes); +MAGNUM_MESHTOOLS_EXPORT Trade::MeshData concatenate(const Containers::Iterable& meshes, InterleaveFlags flags = InterleaveFlag::PreserveInterleavedAttributes); /** @brief Concatenate a list of meshes into a pre-existing destination, enlarging it if necessary @@ -93,14 +93,14 @@ MAGNUM_MESHTOOLS_EXPORT Trade::MeshData concatenate(Containers::Iterable, InterleaveFlags) +Compared to @ref concatenate(const Containers::Iterable&, InterleaveFlags) this function resizes existing index and vertex buffers in @p destination using @ref Containers::arrayResize() and given @p allocator, and reuses its atttribute data array instead of always allocating new ones. Only the attribute layout from @p destination is used, all vertex/index data are taken from @p meshes. Expects that @p meshes contains at least one item. */ -template class Allocator = Containers::ArrayAllocator> void concatenateInto(Trade::MeshData& destination, Containers::Iterable meshes, InterleaveFlags flags = InterleaveFlag::PreserveInterleavedAttributes) { +template class Allocator = Containers::ArrayAllocator> void concatenateInto(Trade::MeshData& destination, const Containers::Iterable& meshes, InterleaveFlags flags = InterleaveFlag::PreserveInterleavedAttributes) { CORRADE_ASSERT(!meshes.isEmpty(), "MeshTools::concatenateInto(): no meshes passed", ); #ifndef CORRADE_NO_ASSERT diff --git a/src/Magnum/MeshTools/InterleaveFlags.h b/src/Magnum/MeshTools/InterleaveFlags.h index d9437980a..295a9b53e 100644 --- a/src/Magnum/MeshTools/InterleaveFlags.h +++ b/src/Magnum/MeshTools/InterleaveFlags.h @@ -43,7 +43,7 @@ namespace Magnum { namespace MeshTools { @see @ref InterleaveFlags, @ref interleavedLayout(const Trade::MeshData&, UnsignedInt, Containers::ArrayView, InterleaveFlags), @ref interleave(const Trade::MeshData&, Containers::ArrayView, InterleaveFlags), - @ref concatenate(Containers::Iterable, InterleaveFlags) + @ref concatenate(const Containers::Iterable&, InterleaveFlags) */ enum class InterleaveFlag: UnsignedInt { /** @@ -72,7 +72,7 @@ enum class InterleaveFlag: UnsignedInt { * * Has no effect when passed to @ref interleavedLayout(const Trade::MeshData&, UnsignedInt, Containers::ArrayView, InterleaveFlags) "interleavedLayout()" * as that function doesn't preserve the index buffer. Has no effect when - * passed to @ref concatenate(Containers::Iterable, InterleaveFlags) "concatenate()" + * passed to @ref concatenate(const Containers::Iterable&, InterleaveFlags) "concatenate()" * as that function allocates a new combined index buffer anyway. * @see @ref isMeshIndexTypeImplementationSpecific() */ @@ -85,7 +85,7 @@ enum class InterleaveFlag: UnsignedInt { @see @ref interleavedLayout(const Trade::MeshData&, UnsignedInt, Containers::ArrayView, InterleaveFlags), @ref interleave(const Trade::MeshData&, Containers::ArrayView, InterleaveFlags), - @ref concatenate(Containers::Iterable, InterleaveFlags) + @ref concatenate(const Containers::Iterable&, InterleaveFlags) */ typedef Containers::EnumSet InterleaveFlags; diff --git a/src/Magnum/Trade/AbstractSceneConverter.cpp b/src/Magnum/Trade/AbstractSceneConverter.cpp index 4cd235c14..2f316647d 100644 --- a/src/Magnum/Trade/AbstractSceneConverter.cpp +++ b/src/Magnum/Trade/AbstractSceneConverter.cpp @@ -209,7 +209,7 @@ struct AbstractSceneConverter::State { Containers::StringView AbstractSceneConverter::pluginInterface() { return /* [interface] */ -"cz.mosra.magnum.Trade.AbstractSceneConverter/0.2"_s +"cz.mosra.magnum.Trade.AbstractSceneConverter/0.2.1"_s /* [interface] */ ; } @@ -824,7 +824,7 @@ bool AbstractSceneConverter::doAdd(const UnsignedInt id, const MeshData& mesh, c return doAdd(id, Containers::Iterable{mesh}, name); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable meshLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& meshLevels, const Containers::StringView name) { CORRADE_ASSERT(features() >= (SceneConverterFeature::AddMeshes|SceneConverterFeature::MeshLevels), "Trade::AbstractSceneConverter::add(): multi-level mesh conversion not supported", {}); CORRADE_ASSERT(_state, @@ -837,11 +837,11 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return {}; } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable meshLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& meshLevels) { return add(meshLevels, {}); } -bool AbstractSceneConverter::doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) { +bool AbstractSceneConverter::doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) { CORRADE_ASSERT_UNREACHABLE("Trade::AbstractSceneConverter::add(): multi-level mesh conversion advertised but not implemented", {}); } @@ -924,7 +924,7 @@ template bool checkImageValidity(const char* const messa return true; } -template bool checkImageValidity(const char* const messagePrefix, const Containers::Iterable> imageLevels) { +template bool checkImageValidity(const char* const messagePrefix, const Containers::Iterable>& imageLevels) { CORRADE_ASSERT(!imageLevels.isEmpty(), messagePrefix << "at least one image level has to be specified", false); @@ -1009,7 +1009,7 @@ Containers::Optional AbstractSceneConverter::add(const CompressedIm return add(image, {}); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels, const Containers::StringView name) { #ifndef CORRADE_NO_ASSERT /* Explicitly return if checks fail for CORRADE_GRACEFUL_ASSERT builds. Has to be first so we can safely ask for the first item in asserts @@ -1027,15 +1027,15 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return {}; } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels) { return add(imageLevels, {}); } -bool AbstractSceneConverter::doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) { +bool AbstractSceneConverter::doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) { CORRADE_ASSERT_UNREACHABLE("Trade::AbstractSceneConverter::add(): multi-level 1D image conversion advertised but not implemented", {}); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels, const Containers::StringView name) { Containers::Array data{NoInit, imageLevels.size()}; for(std::size_t i = 0; i != imageLevels.size(); ++i) { const ImageView1D& image = imageLevels[i]; @@ -1045,11 +1045,11 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return add(data, name); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels) { return add(imageLevels, {}); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels, const Containers::StringView name) { Containers::Array data{NoInit, imageLevels.size()}; for(std::size_t i = 0; i != imageLevels.size(); ++i) { const CompressedImageView1D& image = imageLevels[i]; @@ -1059,7 +1059,7 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return add(data, name); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels) { return add(imageLevels, {}); } @@ -1110,7 +1110,7 @@ Containers::Optional AbstractSceneConverter::add(const CompressedIm return add(image, {}); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels, const Containers::StringView name) { #ifndef CORRADE_NO_ASSERT /* Explicitly return if checks fail for CORRADE_GRACEFUL_ASSERT builds. Has to be first so we can safely ask for the first item in asserts @@ -1128,15 +1128,15 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return {}; } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels) { return add(imageLevels, {}); } -bool AbstractSceneConverter::doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) { +bool AbstractSceneConverter::doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) { CORRADE_ASSERT_UNREACHABLE("Trade::AbstractSceneConverter::add(): multi-level 2D image conversion advertised but not implemented", {}); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels, const Containers::StringView name) { Containers::Array data{NoInit, imageLevels.size()}; for(std::size_t i = 0; i != imageLevels.size(); ++i) { const ImageView2D& image = imageLevels[i]; @@ -1146,11 +1146,11 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return add(data, name); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels) { return add(imageLevels, {}); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels, const Containers::StringView name) { Containers::Array data{NoInit, imageLevels.size()}; for(std::size_t i = 0; i != imageLevels.size(); ++i) { const CompressedImageView2D& image = imageLevels[i]; @@ -1160,7 +1160,7 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return add(data, name); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels) { return add(imageLevels, {}); } @@ -1211,7 +1211,7 @@ Containers::Optional AbstractSceneConverter::add(const CompressedIm return add(image, {}); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels, const Containers::StringView name) { #ifndef CORRADE_NO_ASSERT /* Explicitly return if checks fail for CORRADE_GRACEFUL_ASSERT builds. Has to be first so we can safely ask for the first item in asserts @@ -1229,15 +1229,15 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return {}; } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels) { return add(imageLevels, {}); } -bool AbstractSceneConverter::doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) { +bool AbstractSceneConverter::doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) { CORRADE_ASSERT_UNREACHABLE("Trade::AbstractSceneConverter::add(): multi-level 3D image conversion advertised but not implemented", {}); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels, const Containers::StringView name) { Containers::Array data{NoInit, imageLevels.size()}; for(std::size_t i = 0; i != imageLevels.size(); ++i) { const ImageView3D& image = imageLevels[i]; @@ -1247,11 +1247,11 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return add(data, name); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels) { return add(imageLevels, {}); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels, const Containers::StringView name) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels, const Containers::StringView name) { Containers::Array data{NoInit, imageLevels.size()}; for(std::size_t i = 0; i != imageLevels.size(); ++i) { const CompressedImageView3D& image = imageLevels[i]; @@ -1261,7 +1261,7 @@ Containers::Optional AbstractSceneConverter::add(const Containers:: return add(data, name); } -Containers::Optional AbstractSceneConverter::add(const Containers::Iterable imageLevels) { +Containers::Optional AbstractSceneConverter::add(const Containers::Iterable& imageLevels) { return add(imageLevels, {}); } diff --git a/src/Magnum/Trade/AbstractSceneConverter.h b/src/Magnum/Trade/AbstractSceneConverter.h index 81a17bb76..d7e2bb61c 100644 --- a/src/Magnum/Trade/AbstractSceneConverter.h +++ b/src/Magnum/Trade/AbstractSceneConverter.h @@ -241,7 +241,7 @@ enum class SceneConverterFeature: UnsignedInt { /** * Add multiple mesh levels with - * @ref AbstractSceneConverter::add(Containers::Iterable, Containers::StringView) + * @ref AbstractSceneConverter::add(const Containers::Iterable&, Containers::StringView) * if @ref SceneConverterFeature::AddMeshes is also supported. * @m_since_latest */ @@ -249,13 +249,13 @@ enum class SceneConverterFeature: UnsignedInt { /** * Add multiple image levels with - * @ref AbstractSceneConverter::add(Containers::Iterable, Containers::StringView) + * @ref AbstractSceneConverter::add(const Containers::Iterable&, Containers::StringView) * if @ref SceneConverterFeature::AddImages1D or * @relativeref{SceneConverterFeature,AddCompressedImages1D} is also - * supported; with @ref AbstractSceneConverter::add(Containers::Iterable, Containers::StringView) + * supported; with @ref AbstractSceneConverter::add(const Containers::Iterable&, Containers::StringView) * if @ref SceneConverterFeature::AddImages2D or * @relativeref{SceneConverterFeature,AddCompressedImages2D} is also - * supported; or with @ref AbstractSceneConverter::add(Containers::Iterable, Containers::StringView) + * supported; or with @ref AbstractSceneConverter::add(const Containers::Iterable&, Containers::StringView) * if @ref SceneConverterFeature::AddImages3D or * @relativeref{SceneConverterFeature,AddCompressedImages3D} is also * supported. @@ -429,7 +429,7 @@ enum class SceneContent: UnsignedInt { /** * Multiple mesh levels. For every mesh gathers @ref MeshData from all * @ref AbstractImporter::meshLevelCount() and passes them to - * @ref AbstractSceneConverter::add(Containers::Iterable, Containers::StringView) + * @ref AbstractSceneConverter::add(const Containers::Iterable&, Containers::StringView) * instead of passing just the first level to * @ref AbstractSceneConverter::add(const MeshData&, Containers::StringView). * @see @ref SceneContent::Meshes @@ -442,9 +442,9 @@ enum class SceneContent: UnsignedInt { * @ref AbstractImporter::image1DLevelCount() / * @relativeref{AbstractImporter,image2DLevelCount()} / * @relativeref{AbstractImporter,image3DLevelCount()} and passes them to - * @ref AbstractSceneConverter::add(Containers::Iterable, Containers::StringView) / - * @ref AbstractSceneConverter::add(Containers::Iterable, Containers::StringView) "add(Containers::Iterable, Containers::StringView)" / - * @ref AbstractSceneConverter::add(Containers::Iterable, Containers::StringView) "add(Containers::Iterable, Containers::StringView)" + * @ref AbstractSceneConverter::add(const Containers::Iterable&, Containers::StringView) / + * @ref AbstractSceneConverter::add(const Containers::Iterable&, Containers::StringView) "add(const Containers::Iterable&, Containers::StringView)" / + * @ref AbstractSceneConverter::add(const Containers::Iterable&, Containers::StringView) "add(const Containers::Iterable&, Containers::StringView)" * instead of just passing the first level to * * @ref AbstractSceneConverter::add(const ImageData1D&, Containers::StringView) / @@ -744,7 +744,7 @@ checked by the implementation: (if any) was aborted with @ref doAbort(). - The @ref doAdd() and various `doSet*()` functions are called only if a corresponding @ref SceneConverterFeature is supported. -- The @ref doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) +- The @ref doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) function is called only if the list has at least one mesh - All @ref doAdd() functions taking a single image are called only if the image has a non-zero size in all dimensions and the data is not @@ -1389,7 +1389,7 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * * Count of meshes successfully added with * @ref add(const MeshData&, Containers::StringView) or - * @ref add(Containers::Iterable, Containers::StringView) + * @ref add(const Containers::Iterable&, Containers::StringView) * since the initial @ref begin(), @ref beginData() or @ref beginFile() * call. Expects that a conversion is currently in progress. If * @ref SceneConverterFeature::AddMeshes is not supported and only the @@ -1460,10 +1460,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * @ref setMeshAttributeName() */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable meshLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& meshLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable meshLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable meshLevels); + Containers::Optional add(const Containers::Iterable& meshLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& meshLevels); #endif /** @@ -1577,7 +1577,7 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * * Count of images successfully added with * @ref add(const ImageData1D&, Containers::StringView) or - * @ref add(Containers::Iterable, Containers::StringView) + * @ref add(const Containers::Iterable&, Containers::StringView) * and overloads since the initial @ref begin(), @ref beginData() or * @ref beginFile() call. Expects that a conversion is currently in * progress. If neither @ref SceneConverterFeature::AddImages1D nor @@ -1663,10 +1663,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * @ref ImageData::isCompressed() */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable imageLevels); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& imageLevels); #endif /** @@ -1680,10 +1680,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract allow passing an array of Reference, fixes the ambiguity. */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable imageLevels); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& imageLevels); #endif /** @@ -1697,10 +1697,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract allow passing an array of Reference, fixes the ambiguity. */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable imageLevels); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& imageLevels); #endif /** @@ -1709,7 +1709,7 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * * Count of images successfully added with * @ref add(const ImageData2D&, Containers::StringView) or - * @ref add(Containers::Iterable, Containers::StringView) + * @ref add(const Containers::Iterable&, Containers::StringView) * and overloads since the initial @ref begin(), @ref beginData() or * @ref beginFile() call. Expects that a conversion is currently in * progress. If neither @ref SceneConverterFeature::AddImages2D nor @@ -1794,10 +1794,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * @see @ref isConverting(), @ref features() */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable imageLevels); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& imageLevels); #endif /** @@ -1811,10 +1811,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract allow passing an array of Reference, fixes the ambiguity. */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable imageLevels); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& imageLevels); #endif /** @@ -1828,10 +1828,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract allow passing an array of Reference, fixes the ambiguity. */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable imageLevels); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& imageLevels); #endif /** @@ -1840,7 +1840,7 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * * Count of images successfully added with * @ref add(const ImageData3D&, Containers::StringView) or - * @ref add(Containers::Iterable, Containers::StringView) + * @ref add(const Containers::Iterable&, Containers::StringView) * and overloads since the initial @ref begin(), @ref beginData() or * @ref beginFile() call. Expects that a conversion is currently in * progress. If neither @ref SceneConverterFeature::AddImages3D nor @@ -1925,10 +1925,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * @see @ref isConverting(), @ref features() */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable imageLevels); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& imageLevels); #endif /** @@ -1942,10 +1942,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract allow passing an array of Reference, fixes the ambiguity. */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable imageLevels); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& imageLevels); #endif /** @@ -1959,10 +1959,10 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract allow passing an array of Reference, fixes the ambiguity. */ #ifdef DOXYGEN_GENERATING_OUTPUT - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name = {}); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name = {}); #else - Containers::Optional add(Containers::Iterable imageLevels, Containers::StringView name); - Containers::Optional add(Containers::Iterable imageLevels); + Containers::Optional add(const Containers::Iterable& imageLevels, Containers::StringView name); + Containers::Optional add(const Containers::Iterable& imageLevels); #endif /** @@ -2260,7 +2260,7 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * * If @ref SceneConverterFeature::AddMeshes together with * @relativeref{SceneConverterFeature,MeshLevels} is supported, default - * implementation calls @ref doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) + * implementation calls @ref doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) * with just the single @p mesh. * * Otherwise, if @ref SceneConverterFeature::ConvertMesh, @@ -2283,13 +2283,13 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract virtual bool doAdd(UnsignedInt id, const MeshData& mesh, Containers::StringView name); /** - * @brief Implementation for @ref add(Containers::Iterable, Containers::StringView) + * @brief Implementation for @ref add(const Containers::Iterable&, Containers::StringView) * @m_since_latest * * The @p id is equal to @ref meshCount() at the time this function * is called. */ - virtual bool doAdd(UnsignedInt id, Containers::Iterable meshLevels, Containers::StringView name); + virtual bool doAdd(UnsignedInt id, const Containers::Iterable& meshLevels, Containers::StringView name); /** * @brief Implementation for @ref setMeshAttributeName() @@ -2330,22 +2330,22 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * @ref ImageData1D instance. * * If @ref SceneConverterFeature::ImageLevels is supported, default - * implementation calls @ref doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) + * implementation calls @ref doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) * with just the single @p image. */ virtual bool doAdd(UnsignedInt id, const ImageData1D& image, Containers::StringView name); /** - * @brief Implementation for @ref add(Containers::Iterable, Containers::StringView) + * @brief Implementation for @ref add(const Containers::Iterable&, Containers::StringView) * @m_since_latest * * The @p id is equal to @ref image1DCount() at the time this function - * is called. If @ref add(Containers::Iterable, Containers::StringView) - * or @ref add(Containers::Iterable, Containers::StringView) + * is called. If @ref add(const Containers::Iterable&, Containers::StringView) + * or @ref add(const Containers::Iterable&, Containers::StringView) * was called, receives the views wrapped in non-owning * @ref ImageData1D instances. */ - virtual bool doAdd(UnsignedInt id, Containers::Iterable imageLevels, Containers::StringView name); + virtual bool doAdd(UnsignedInt id, const Containers::Iterable& imageLevels, Containers::StringView name); /** * @brief Implementation for @ref add(const ImageData2D&, Containers::StringView) @@ -2358,22 +2358,22 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * @ref ImageData2D instance. * * If @ref SceneConverterFeature::ImageLevels is supported, default - * implementation calls @ref doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) + * implementation calls @ref doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) * with just the single @p image. */ virtual bool doAdd(UnsignedInt id, const ImageData2D& image, Containers::StringView name); /** - * @brief Implementation for @ref add(Containers::Iterable, Containers::StringView) + * @brief Implementation for @ref add(const Containers::Iterable&, Containers::StringView) * @m_since_latest * * The @p id is equal to @ref image2DCount() at the time this function - * is called. If @ref add(Containers::Iterable, Containers::StringView) - * or @ref add(Containers::Iterable, Containers::StringView) + * is called. If @ref add(const Containers::Iterable&, Containers::StringView) + * or @ref add(const Containers::Iterable&, Containers::StringView) * was called, receives the views wrapped in non-owning * @ref ImageData2D instances. */ - virtual bool doAdd(UnsignedInt id, Containers::Iterable imageLevels, Containers::StringView name); + virtual bool doAdd(UnsignedInt id, const Containers::Iterable& imageLevels, Containers::StringView name); /** * @brief Implementation for @ref add(const ImageData3D&, Containers::StringView) @@ -2386,22 +2386,22 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract * @ref ImageData3D instance. * * If @ref SceneConverterFeature::ImageLevels is supported, default - * implementation calls @ref doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) + * implementation calls @ref doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) * with just the single @p image. */ virtual bool doAdd(UnsignedInt id, const ImageData3D& image, Containers::StringView name); /** - * @brief Implementation for @ref add(Containers::Iterable, Containers::StringView) + * @brief Implementation for @ref add(const Containers::Iterable&, Containers::StringView) * @m_since_latest * * The @p id is equal to @ref image3DCount() at the time this function - * is called. If @ref add(Containers::Iterable, Containers::StringView) - * or @ref add(Containers::Iterable, Containers::StringView) + * is called. If @ref add(const Containers::Iterable&, Containers::StringView) + * or @ref add(const Containers::Iterable&, Containers::StringView) * was called, receives the views wrapped in non-owning * @ref ImageData3D instances. */ - virtual bool doAdd(UnsignedInt id, Containers::Iterable imageLevels, Containers::StringView name); + virtual bool doAdd(UnsignedInt id, const Containers::Iterable& imageLevels, Containers::StringView name); /* Called from addImporterContents() and addSupportedImporterContents() */ MAGNUM_TRADE_LOCAL bool addImporterContentsInternal(AbstractImporter& importer, SceneContents contents, bool noLevelsIfUnsupported); diff --git a/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp b/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp index 8ecc4803c..8c826b819 100644 --- a/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp +++ b/src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp @@ -3869,7 +3869,7 @@ void AbstractSceneConverterTest::addMeshLevels() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt id, Containers::Iterable meshLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt id, const Containers::Iterable& meshLevels, Containers::StringView name) override { /* Camera count should not be increased before the function returns */ CORRADE_COMPARE(id, meshCount()); @@ -3912,7 +3912,7 @@ void AbstractSceneConverterTest::addMeshLevelsFailed() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { return false; } } converter; @@ -3991,7 +3991,7 @@ void AbstractSceneConverterTest::addMeshThroughLevels() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable meshLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& meshLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(meshLevels.size(), 1); CORRADE_COMPARE(meshLevels[0].importerState(), reinterpret_cast(0xdeadbeef)); @@ -4830,7 +4830,7 @@ void AbstractSceneConverterTest::addImageLevels1D() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt id, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt id, const Containers::Iterable& imageLevels, Containers::StringView name) override { /* Camera count should not be increased before the function returns */ CORRADE_COMPARE(id, image1DCount()); @@ -4876,7 +4876,7 @@ void AbstractSceneConverterTest::addImageLevels1DView() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& imageLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(imageLevels.size(), 2); CORRADE_VERIFY(!imageLevels[1].isCompressed()); @@ -4915,7 +4915,7 @@ void AbstractSceneConverterTest::addImageLevels1DCompressedView() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& imageLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(imageLevels.size(), 2); CORRADE_VERIFY(imageLevels[1].isCompressed()); @@ -4955,7 +4955,7 @@ void AbstractSceneConverterTest::addImageLevels1DFailed() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { return false; } } converter; @@ -5048,7 +5048,7 @@ void AbstractSceneConverterTest::addImageLevels2D() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt id, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt id, const Containers::Iterable& imageLevels, Containers::StringView name) override { /* Camera count should not be increased before the function returns */ CORRADE_COMPARE(id, image2DCount()); @@ -5094,7 +5094,7 @@ void AbstractSceneConverterTest::addImageLevels2DView() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& imageLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(imageLevels.size(), 2); CORRADE_VERIFY(!imageLevels[1].isCompressed()); @@ -5133,7 +5133,7 @@ void AbstractSceneConverterTest::addImageLevels2DCompressedView() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& imageLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(imageLevels.size(), 2); CORRADE_VERIFY(imageLevels[1].isCompressed()); @@ -5173,7 +5173,7 @@ void AbstractSceneConverterTest::addImageLevels2DFailed() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { return false; } } converter; @@ -5455,7 +5455,7 @@ void AbstractSceneConverterTest::addImageLevels3D() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt id, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt id, const Containers::Iterable& imageLevels, Containers::StringView name) override { /* Camera count should not be increased before the function returns */ CORRADE_COMPARE(id, image3DCount()); @@ -5501,7 +5501,7 @@ void AbstractSceneConverterTest::addImageLevels3DView() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& imageLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(imageLevels.size(), 2); CORRADE_VERIFY(!imageLevels[1].isCompressed()); @@ -5540,7 +5540,7 @@ void AbstractSceneConverterTest::addImageLevels3DCompressedView() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& imageLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(imageLevels.size(), 2); CORRADE_VERIFY(imageLevels[1].isCompressed()); @@ -5580,7 +5580,7 @@ void AbstractSceneConverterTest::addImageLevels3DFailed() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { return false; } } converter; @@ -5673,7 +5673,7 @@ void AbstractSceneConverterTest::addImage1DThroughLevels() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& imageLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(imageLevels.size(), 1); CORRADE_COMPARE(imageLevels[0].importerState(), reinterpret_cast(0xdeadbeef)); @@ -5703,7 +5703,7 @@ void AbstractSceneConverterTest::addImage2DThroughLevels() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& imageLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(imageLevels.size(), 1); CORRADE_COMPARE(imageLevels[0].importerState(), reinterpret_cast(0xdeadbeef)); @@ -5733,7 +5733,7 @@ void AbstractSceneConverterTest::addImage3DThroughLevels() { bool doBegin() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable imageLevels, Containers::StringView name) override { + bool doAdd(UnsignedInt, const Containers::Iterable& imageLevels, Containers::StringView name) override { CORRADE_COMPARE(name, "hello"); CORRADE_COMPARE(imageLevels.size(), 1); CORRADE_COMPARE(imageLevels[0].importerState(), reinterpret_cast(0xdeadbeef)); @@ -6037,7 +6037,7 @@ void AbstractSceneConverterTest::addImporterContents() { Debug{} << "Adding mesh" << id << "named" << name << "with" << data.importerState(); return true; } - bool doAdd(UnsignedInt id, Containers::Iterable levels, Containers::StringView name) override { + bool doAdd(UnsignedInt id, const Containers::Iterable& levels, Containers::StringView name) override { for(std::size_t i = 0; i != levels.size(); ++i) Debug{} << "Adding mesh" << id << "level" << i << "named" << name << "with" << levels[i].importerState(); return true; @@ -6056,7 +6056,7 @@ void AbstractSceneConverterTest::addImporterContents() { Debug{} << "Adding 1D image" << id << "named" << name << "with" << data.importerState(); return true; } - bool doAdd(UnsignedInt id, Containers::Iterable levels, Containers::StringView name) override { + bool doAdd(UnsignedInt id, const Containers::Iterable& levels, Containers::StringView name) override { for(std::size_t i = 0; i != levels.size(); ++i) Debug{} << "Adding 1D image" << id << "level" << i << "named" << name << "with" << levels[i].importerState(); return true; @@ -6066,7 +6066,7 @@ void AbstractSceneConverterTest::addImporterContents() { Debug{} << "Adding 2D image" << id << "named" << name << "with" << data.importerState(); return true; } - bool doAdd(UnsignedInt id, Containers::Iterable levels, Containers::StringView name) override { + bool doAdd(UnsignedInt id, const Containers::Iterable& levels, Containers::StringView name) override { for(std::size_t i = 0; i != levels.size(); ++i) Debug{} << "Adding 2D image" << id << "level" << i << "named" << name << "with" << levels[i].importerState(); return true; @@ -6076,7 +6076,7 @@ void AbstractSceneConverterTest::addImporterContents() { Debug{} << "Adding 3D image" << id << "named" << name << "with" << data.importerState(); return true; } - bool doAdd(UnsignedInt id, Containers::Iterable levels, Containers::StringView name) override { + bool doAdd(UnsignedInt id, const Containers::Iterable& levels, Containers::StringView name) override { for(std::size_t i = 0; i != levels.size(); ++i) Debug{} << "Adding 3D image" << id << "level" << i << "named" << name << "with" << levels[i].importerState(); return true; @@ -6193,7 +6193,7 @@ void AbstractSceneConverterTest::addImporterContentsCustomMeshAttributes() { bool doBeginData() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Adding mesh levels"; return true; } @@ -6412,7 +6412,7 @@ void AbstractSceneConverterTest::addImporterContentsImportFail() { Debug{} << "Adding mesh"; return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Adding mesh levels"; return true; } @@ -6430,7 +6430,7 @@ void AbstractSceneConverterTest::addImporterContentsImportFail() { Debug{} << "Adding 1D image"; return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Adding 1D image levels"; return true; } @@ -6439,7 +6439,7 @@ void AbstractSceneConverterTest::addImporterContentsImportFail() { Debug{} << "Adding 2D image"; return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Adding 2D image levels"; return true; } @@ -6447,7 +6447,7 @@ void AbstractSceneConverterTest::addImporterContentsImportFail() { Debug{} << "Adding 3D image"; return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Adding 3D image levels"; return true; } @@ -6637,7 +6637,7 @@ void AbstractSceneConverterTest::addImporterContentsConversionFail() { Debug{} << "Adding mesh"; return true; } - bool doAdd(UnsignedInt id, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt id, const Containers::Iterable&, Containers::StringView) override { if(id == 2) return false; Debug{} << "Adding mesh levels"; @@ -6663,7 +6663,7 @@ void AbstractSceneConverterTest::addImporterContentsConversionFail() { Debug{} << "Adding 1D image"; return true; } - bool doAdd(UnsignedInt id, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt id, const Containers::Iterable&, Containers::StringView) override { if(id == 2) return false; Debug{} << "Adding 1D image levels"; @@ -6676,7 +6676,7 @@ void AbstractSceneConverterTest::addImporterContentsConversionFail() { Debug{} << "Adding 2D image"; return true; } - bool doAdd(UnsignedInt id, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt id, const Containers::Iterable&, Containers::StringView) override { if(id == 2) return false; Debug{} << "Adding 2D image levels"; @@ -6688,7 +6688,7 @@ void AbstractSceneConverterTest::addImporterContentsConversionFail() { Debug{} << "Adding 3D image"; return true; } - bool doAdd(UnsignedInt id, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt id, const Containers::Iterable&, Containers::StringView) override { if(id == 2) return false; Debug{} << "Adding 3D image levels"; @@ -6919,15 +6919,15 @@ void AbstractSceneConverterTest::addImporterContentsNotSupportedUncompressedImag } bool doBeginData() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Added 1D image"; return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Added 2D image"; return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Added 3D image"; return true; } @@ -6997,15 +6997,15 @@ void AbstractSceneConverterTest::addImporterContentsNotSupportedCompressedImage( } bool doBeginData() override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Added 1D image"; return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Added 2D image"; return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { Debug{} << "Added 3D image"; return true; } @@ -7159,7 +7159,7 @@ void AbstractSceneConverterTest::addSupportedImporterContents() { bool doAdd(UnsignedInt, const SkinData3D&, Containers::StringView) override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { return true; } bool doAdd(UnsignedInt, const MaterialData&, Containers::StringView) override { @@ -7168,13 +7168,13 @@ void AbstractSceneConverterTest::addSupportedImporterContents() { bool doAdd(UnsignedInt, const TextureData&, Containers::StringView) override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { return true; } - bool doAdd(UnsignedInt, Containers::Iterable, Containers::StringView) override { + bool doAdd(UnsignedInt, const Containers::Iterable&, Containers::StringView) override { return true; } diff --git a/src/Magnum/Vk/DescriptorSetLayout.cpp b/src/Magnum/Vk/DescriptorSetLayout.cpp index 2d604a14a..9e1f900d0 100644 --- a/src/Magnum/Vk/DescriptorSetLayout.cpp +++ b/src/Magnum/Vk/DescriptorSetLayout.cpp @@ -91,7 +91,7 @@ DescriptorSetLayoutBinding& DescriptorSetLayoutBinding::operator=(DescriptorSetL return *this; } -DescriptorSetLayoutCreateInfo::DescriptorSetLayoutCreateInfo(const Containers::Iterable bindings, const Flags flags): _info{} { +DescriptorSetLayoutCreateInfo::DescriptorSetLayoutCreateInfo(const Containers::Iterable& bindings, const Flags flags): _info{} { /* Check the total count of immutable samplers to allocate them all in a contiguous memory location. Also check if we have any binding flags. If yes, we have to create an additional array and put a structure into the diff --git a/src/Magnum/Vk/DescriptorSetLayoutCreateInfo.h b/src/Magnum/Vk/DescriptorSetLayoutCreateInfo.h index 0d07ed378..d52e88243 100644 --- a/src/Magnum/Vk/DescriptorSetLayoutCreateInfo.h +++ b/src/Magnum/Vk/DescriptorSetLayoutCreateInfo.h @@ -323,7 +323,7 @@ class MAGNUM_VK_EXPORT DescriptorSetLayoutCreateInfo { * - `pBindingFlags` to a list of all * @ref DescriptorSetLayoutBinding::flags() from @p bindings */ - explicit DescriptorSetLayoutCreateInfo(Containers::Iterable bindings, Flags flags = {}); + explicit DescriptorSetLayoutCreateInfo(const Containers::Iterable& bindings, Flags flags = {}); /** @overload */ /* Iterable takes std::initializer_list itself but having it also here diff --git a/src/MagnumPlugins/AnySceneConverter/AnySceneConverter.cpp b/src/MagnumPlugins/AnySceneConverter/AnySceneConverter.cpp index 84c5d126e..c31d47bf9 100644 --- a/src/MagnumPlugins/AnySceneConverter/AnySceneConverter.cpp +++ b/src/MagnumPlugins/AnySceneConverter/AnySceneConverter.cpp @@ -233,7 +233,7 @@ bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const MeshDat return !!_converter->add(mesh, name); } -bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const Containers::Iterable meshLevels, const Containers::StringView name) { +bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const Containers::Iterable& meshLevels, const Containers::StringView name) { CORRADE_INTERNAL_ASSERT(id == _converter->meshCount()); return !!_converter->add(meshLevels, name); } @@ -257,7 +257,7 @@ bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const ImageDa return !!_converter->add(image, name); } -bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const Containers::Iterable imageLevels, const Containers::StringView name) { +bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const Containers::Iterable& imageLevels, const Containers::StringView name) { CORRADE_INTERNAL_ASSERT(id == _converter->image1DCount()); return !!_converter->add(imageLevels, name); } @@ -267,7 +267,7 @@ bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const ImageDa return !!_converter->add(image, name); } -bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const Containers::Iterable imageLevels, const Containers::StringView name) { +bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const Containers::Iterable& imageLevels, const Containers::StringView name) { CORRADE_INTERNAL_ASSERT(id == _converter->image2DCount()); return !!_converter->add(imageLevels, name); } @@ -277,7 +277,7 @@ bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const ImageDa return !!_converter->add(image, name); } -bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const Containers::Iterable imageLevels, const Containers::StringView name) { +bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const Containers::Iterable& imageLevels, const Containers::StringView name) { CORRADE_INTERNAL_ASSERT(id == _converter->image3DCount()); return !!_converter->add(imageLevels, name); } @@ -285,4 +285,4 @@ bool AnySceneConverter::doAdd(CORRADE_UNUSED const UnsignedInt id, const Contain }} CORRADE_PLUGIN_REGISTER(AnySceneConverter, Magnum::Trade::AnySceneConverter, - "cz.mosra.magnum.Trade.AbstractSceneConverter/0.2") + "cz.mosra.magnum.Trade.AbstractSceneConverter/0.2.1") diff --git a/src/MagnumPlugins/AnySceneConverter/AnySceneConverter.h b/src/MagnumPlugins/AnySceneConverter/AnySceneConverter.h index 8fa18d800..f3fed03c4 100644 --- a/src/MagnumPlugins/AnySceneConverter/AnySceneConverter.h +++ b/src/MagnumPlugins/AnySceneConverter/AnySceneConverter.h @@ -145,20 +145,20 @@ class MAGNUM_ANYSCENECONVERTER_EXPORT AnySceneConverter: public AbstractSceneCon bool doAdd(UnsignedInt id, const SkinData3D& skin, Containers::StringView name) override; bool doAdd(UnsignedInt id, const MeshData& mesh, Containers::StringView name) override; - bool doAdd(UnsignedInt id, Containers::Iterable meshLevels, Containers::StringView name) override; + bool doAdd(UnsignedInt id, const Containers::Iterable& meshLevels, Containers::StringView name) override; void doSetMeshAttributeName(UnsignedShort attribute, Containers::StringView name) override; bool doAdd(UnsignedInt id, const MaterialData& material, Containers::StringView name) override; bool doAdd(UnsignedInt id, const TextureData& texture, Containers::StringView name) override; bool doAdd(UnsignedInt id, const ImageData1D& image, Containers::StringView name) override; - bool doAdd(UnsignedInt id, Containers::Iterable imageLevels, Containers::StringView name) override; + bool doAdd(UnsignedInt id, const Containers::Iterable& imageLevels, Containers::StringView name) override; bool doAdd(UnsignedInt id, const ImageData2D& image, Containers::StringView name) override; - bool doAdd(UnsignedInt id, Containers::Iterable imageLevels, Containers::StringView name) override; + bool doAdd(UnsignedInt id, const Containers::Iterable& imageLevels, Containers::StringView name) override; bool doAdd(UnsignedInt id, const ImageData3D& image, Containers::StringView name) override; - bool doAdd(UnsignedInt id, Containers::Iterable imageLevels, Containers::StringView name) override; + bool doAdd(UnsignedInt id, const Containers::Iterable& imageLevels, Containers::StringView name) override; Containers::Pointer _converter; };