Browse Source

Trade: add verbose output for SceneConverter::addImporterContents().

Because otherwise it's impossible to know the progress when converting a
file with 1700 4K PNG textures.
pull/610/head
Vladimír Vondruš 4 years ago
parent
commit
b3a9582455
  1. 26
      src/Magnum/SceneTools/Test/SceneConverterTest.cpp
  2. 48
      src/Magnum/Trade/AbstractSceneConverter.cpp
  3. 173
      src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp

26
src/Magnum/SceneTools/Test/SceneConverterTest.cpp

@ -103,7 +103,7 @@ const struct {
};
const struct {
const char* name;
TestSuite::TestCaseDescriptionSourceLocation name;
Containers::Array<Containers::String> args;
const char* requiresImporter;
const char* requiresImporter2;
@ -233,7 +233,8 @@ const struct {
/* There should be a minimal difference compared to the original */
"two-quads.gltf", "two-quads.bin",
"Mesh 0 duplicate removal: 5 -> 4 vertices\n"
"Mesh 1 duplicate removal: 6 -> 4 vertices\n"},
"Mesh 1 duplicate removal: 6 -> 4 vertices\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding scene 0 out of 1\n"},
{"one implicit mesh, remove duplicate vertices fuzzy", Containers::array<Containers::String>({
"--remove-duplicate-vertices-fuzzy", "1.0e-1",
Utility::Path::join(SCENETOOLS_TEST_DIR, "SceneConverterTestFiles/quad-duplicates-fuzzy.obj"), Utility::Path::join(SCENETOOLS_TEST_OUTPUT_DIR, "SceneConverterTestFiles/quad.ply")}),
@ -268,7 +269,8 @@ const struct {
"GltfImporter", nullptr, "GltfSceneConverter", {}, nullptr,
"two-quads.gltf", "two-quads.bin",
"Mesh 0 fuzzy duplicate removal: 5 -> 4 vertices\n"
"Mesh 1 fuzzy duplicate removal: 6 -> 4 vertices\n"},
"Mesh 1 fuzzy duplicate removal: 6 -> 4 vertices\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding scene 0 out of 1\n"},
{"one implicit mesh, two converters", Containers::array<Containers::String>({
"-C", "MeshOptimizerSceneConverter",
Utility::Path::join(SCENETOOLS_TEST_DIR, "SceneConverterTestFiles/quad-strip.gltf"), Utility::Path::join(SCENETOOLS_TEST_OUTPUT_DIR, "SceneConverterTestFiles/quad.gltf")}),
@ -291,6 +293,7 @@ const struct {
of MeshOptimizerSceneConverter got actually passed further and not
discarded */
"Trade::AnySceneImporter::openFile(): using GltfImporter\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding mesh 0 out of 1\n"
"Trade::MeshOptimizerSceneConverter::convert(): processing stats:\n"
" vertex cache:\n"
" 4 -> 4 transformed vertices\n"
@ -304,7 +307,8 @@ const struct {
" 65536 -> 65536 shaded pixels\n"
" 65536 -> 65536 covered pixels\n"
" overdraw 1 -> 1\n"
"Trade::AnySceneConverter::beginFile(): using GltfSceneConverter\n"},
"Trade::AnySceneConverter::beginFile(): using GltfSceneConverter\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding mesh 0 out of 1\n"},
{"one implicit mesh, two converters, explicit last, verbose", Containers::array<Containers::String>({
"-C", "MeshOptimizerSceneConverter", "-C", "GltfSceneConverter", "-v",
Utility::Path::join(SCENETOOLS_TEST_DIR, "SceneConverterTestFiles/quad-strip.gltf"), Utility::Path::join(SCENETOOLS_TEST_OUTPUT_DIR, "SceneConverterTestFiles/quad.gltf")}),
@ -315,6 +319,7 @@ const struct {
option the verbose output includes a progress info */
"Trade::AnySceneImporter::openFile(): using GltfImporter\n"
"Processing (1/2) with MeshOptimizerSceneConverter...\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding mesh 0 out of 1\n"
"Trade::MeshOptimizerSceneConverter::convert(): processing stats:\n"
" vertex cache:\n"
" 4 -> 4 transformed vertices\n"
@ -328,7 +333,8 @@ const struct {
" 65536 -> 65536 shaded pixels\n"
" 65536 -> 65536 covered pixels\n"
" overdraw 1 -> 1\n"
"Saving output (2/2) with GltfSceneConverter...\n"},
"Saving output (2/2) with GltfSceneConverter...\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding mesh 0 out of 1\n"},
{"one implicit mesh, two converters, options for the first only", Containers::array<Containers::String>({
"-C", "MeshOptimizerSceneConverter",
"-c", "nonexistentMeshOptimizerOption=yes",
@ -389,7 +395,8 @@ const struct {
" 65536 -> 65536 shaded pixels\n"
" 65536 -> 65536 covered pixels\n"
" overdraw 1 -> 1\n"
"Trade::AnySceneConverter::beginFile(): using StanfordSceneConverter\n"},
"Trade::AnySceneConverter::beginFile(): using StanfordSceneConverter\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding mesh 0 out of 1\n"},
{"implicit custom-processed mesh with a name and custom attributes", Containers::array<Containers::String>({
/* Removing the generator identifier to have the file closer to the
original */
@ -459,7 +466,8 @@ const struct {
" overdraw:\n"
" 65536 -> 65536 shaded pixels\n"
" 65536 -> 65536 covered pixels\n"
" overdraw 1 -> 1\n"},
" overdraw 1 -> 1\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding scene 0 out of 1\n"},
{"two mesh converters, two options, one mesh, verbose", Containers::array<Containers::String>({
"-I", "GltfImporter", "-C", "GltfSceneConverter",
"-M", "MeshOptimizerSceneConverter",
@ -566,7 +574,9 @@ const struct {
"Trade::AnyImageImporter::openFile(): using KtxImporter\n"
"Processing 3D image 0 with StbResizeImageConverter...\n"
"Trade::AnyImageImporter::openFile(): using KtxImporter\n"
"Processing 3D image 1 with StbResizeImageConverter...\n"},
"Processing 3D image 1 with StbResizeImageConverter...\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding texture 0 out of 2\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding texture 1 out of 2\n"},
};
const struct {

48
src/Magnum/Trade/AbstractSceneConverter.cpp

@ -1284,6 +1284,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Meshes) {
Containers::Array<Trade::MeshData> levels;
for(UnsignedInt i = 0, iMax = importer.meshCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding mesh" << i << "out of" << iMax;
UnsignedInt levelCount = contents & SceneContent::MeshLevels ? importer.meshLevelCount(i) : 1;
if(levelCount != 1 && !(contentsSupported & SceneContent::MeshLevels)) {
if(noLevelsIfUnsupported) {
@ -1300,6 +1303,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
arrayReserve(levels, levelCount);
arrayResize(levels, NoInit, 0); /** @todo arrayClear() */
for(UnsignedInt j = 0; j != levelCount; ++j) {
if((flags() & SceneConverterFlag::Verbose) && levelCount != 1)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): importing mesh" << i << "level" << j << "out of" << levelCount;
Containers::Optional<Trade::MeshData> mesh = importer.mesh(i, j);
if(!mesh) return false;
@ -1333,6 +1339,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Images1D) {
Containers::Array<Trade::ImageData1D> levels;
for(UnsignedInt i = 0, iMax = importer.image1DCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding 1D image" << i << "out of" << iMax;
UnsignedInt levelCount = contents & SceneContent::ImageLevels ? importer.image1DLevelCount(i) : 1;
if(levelCount != 1 && !(contentsSupported & SceneContent::ImageLevels)) {
if(noLevelsIfUnsupported) {
@ -1350,6 +1359,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
arrayReserve(levels, levelCount);
arrayResize(levels, NoInit, 0); /** @todo arrayClear() */
for(UnsignedInt j = 0; j != levelCount; ++j) {
if((flags() & SceneConverterFlag::Verbose) && levelCount != 1)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): importing 1D image" << i << "level" << j << "out of" << levelCount;
Containers::Optional<Trade::ImageData1D> image = importer.image1D(i, j);
if(!image) return false;
@ -1380,6 +1392,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Images2D) {
Containers::Array<Trade::ImageData2D> levels;
for(UnsignedInt i = 0, iMax = importer.image2DCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding 2D image" << i << "out of" << iMax;
UnsignedInt levelCount = contents & SceneContent::ImageLevels ? importer.image2DLevelCount(i) : 1;
if(levelCount != 1 && !(contentsSupported & SceneContent::ImageLevels)) {
if(noLevelsIfUnsupported) {
@ -1397,6 +1412,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
arrayReserve(levels, levelCount);
arrayResize(levels, NoInit, 0); /** @todo arrayClear() */
for(UnsignedInt j = 0; j != levelCount; ++j) {
if((flags() & SceneConverterFlag::Verbose) && levelCount != 1)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): importing 2D image" << i << "level" << j << "out of" << levelCount;
Containers::Optional<Trade::ImageData2D> image = importer.image2D(i, j);
if(!image) return false;
@ -1427,6 +1445,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Images3D) {
Containers::Array<Trade::ImageData3D> levels;
for(UnsignedInt i = 0, iMax = importer.image3DCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding 3D image" << i << "out of" << iMax;
UnsignedInt levelCount = contents & SceneContent::ImageLevels ? importer.image3DLevelCount(i) : 1;
if(levelCount != 1 && !(contentsSupported & SceneContent::ImageLevels)) {
if(noLevelsIfUnsupported) {
@ -1444,6 +1465,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
arrayReserve(levels, levelCount);
arrayResize(levels, NoInit, 0); /** @todo arrayClear() */
for(UnsignedInt j = 0; j != levelCount; ++j) {
if((flags() & SceneConverterFlag::Verbose) && levelCount != 1)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): importing 3D image" << i << "level" << j << "out of" << levelCount;
Containers::Optional<Trade::ImageData3D> image = importer.image3D(i, j);
if(!image) return false;
@ -1473,6 +1497,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Textures) {
for(UnsignedInt i = 0, iMax = importer.textureCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding texture" << i << "out of" << iMax;
const Containers::Optional<Trade::TextureData> texture = importer.texture(i);
if(!texture || !add(*texture, contents & SceneContent::Names ? importer.textureName(i) : Containers::String{}))
return false;
@ -1481,6 +1508,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Materials) {
for(UnsignedInt i = 0, iMax = importer.materialCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding material" << i << "out of" << iMax;
const Containers::Optional<Trade::MaterialData> material = importer.material(i);
if(!material || !add(*material, contents & SceneContent::Names ? importer.materialName(i) : Containers::String{}))
return false;
@ -1489,6 +1519,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Lights) {
for(UnsignedInt i = 0, iMax = importer.lightCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding light" << i << "out of" << iMax;
const Containers::Optional<Trade::LightData> light = importer.light(i);
if(!light || !add(*light, contents & SceneContent::Names ? importer.lightName(i) : Containers::String{}))
return false;
@ -1497,6 +1530,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Cameras) {
for(UnsignedInt i = 0, iMax = importer.cameraCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding camera" << i << "out of" << iMax;
const Containers::Optional<Trade::CameraData> camera = importer.camera(i);
if(!camera || !add(*camera, contents & SceneContent::Names ? importer.cameraName(i) : Containers::String{}))
return false;
@ -1511,6 +1547,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
}
for(UnsignedInt i = 0, iMax = importer.sceneCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding scene" << i << "out of" << iMax;
Containers::Optional<Trade::SceneData> scene = importer.scene(i);
if(!scene) return false;
@ -1537,6 +1576,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Skins2D) {
for(UnsignedInt i = 0, iMax = importer.skin2DCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding 2D skin" << i << "out of" << iMax;
const Containers::Optional<Trade::SkinData2D> skin = importer.skin2D(i);
if(!skin || !add(*skin, contents & SceneContent::Names ? importer.skin2DName(i) : Containers::String{}))
return false;
@ -1545,6 +1587,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Skins3D) {
for(UnsignedInt i = 0, iMax = importer.skin3DCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding 3D skin" << i << "out of" << iMax;
const Containers::Optional<Trade::SkinData3D> skin = importer.skin3D(i);
if(!skin || !add(*skin, contents & SceneContent::Names ? importer.skin3DName(i) : Containers::String{}))
return false;
@ -1553,6 +1598,9 @@ bool AbstractSceneConverter::addImporterContentsInternal(AbstractImporter& impor
if(contents & SceneContent::Animations) {
for(UnsignedInt i = 0, iMax = importer.animationCount(); i != iMax; ++i) {
if(flags() & SceneConverterFlag::Verbose)
Debug{} << "Trade::AbstractSceneConverter::addImporterContents(): adding animation" << i << "out of" << iMax;
const Containers::Optional<Trade::AnimationData> animation = importer.animation(i);
if(!animation || !add(*animation, contents & SceneContent::Names ? importer.animationName(i) : Containers::String{}))
return false;

173
src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp

@ -315,128 +315,232 @@ struct AbstractSceneConverterTest: TestSuite::Tester {
using namespace Containers::Literals;
const struct {
const char* name;
TestSuite::TestCaseDescriptionSourceLocation name;
SceneContents contents;
SceneConverterFlags flags;
const char* expected;
} AddImporterContentsData[]{
{"scenes", SceneContent::Scenes,
{"scenes", SceneContent::Scenes, {},
"Adding scene 0 named with 0x5ce00000\n"
"Adding scene 1 named with 0x5ce00001\n"
"Setting default scene to 1\n"},
{"scenes, verbose", SceneContent::Scenes, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding scene 0 out of 2\n"
"Adding scene 0 named with 0x5ce00000\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding scene 1 out of 2\n"
"Adding scene 1 named with 0x5ce00001\n"
"Setting default scene to 1\n"},
{"scenes + names", SceneContent::Scenes|SceneContent::Names,
{"scenes + names", SceneContent::Scenes|SceneContent::Names, {},
"Setting object 0 name to Object 0\n"
"Setting object 1 name to Object 1\n"
"Setting object 2 name to Object 2\n"
"Adding scene 0 named Scene 0 with 0x5ce00000\n"
"Adding scene 1 named Scene 1 with 0x5ce00001\n"
"Setting default scene to 1\n"},
{"animations", SceneContent::Animations,
{"animations", SceneContent::Animations, {},
"Adding animation 0 named with 0x40100000\n"
"Adding animation 1 named with 0x40100001\n"},
{"animations, verbose", SceneContent::Animations, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding animation 0 out of 2\n"
"Adding animation 0 named with 0x40100000\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding animation 1 out of 2\n"
"Adding animation 1 named with 0x40100001\n"},
{"animations + names", SceneContent::Animations|SceneContent::Names,
{"animations + names", SceneContent::Animations|SceneContent::Names, {},
"Adding animation 0 named Animation 0 with 0x40100000\n"
"Adding animation 1 named Animation 1 with 0x40100001\n"},
{"lights", SceneContent::Lights,
{"lights", SceneContent::Lights, {},
"Adding light 0 named with 0x11600000\n"
"Adding light 1 named with 0x11600001\n"},
{"lights + names", SceneContent::Lights|SceneContent::Names,
{"lights, verbose", SceneContent::Lights, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding light 0 out of 2\n"
"Adding light 0 named with 0x11600000\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding light 1 out of 2\n"
"Adding light 1 named with 0x11600001\n"},
{"lights + names", SceneContent::Lights|SceneContent::Names, {},
"Adding light 0 named Light 0 with 0x11600000\n"
"Adding light 1 named Light 1 with 0x11600001\n"},
{"cameras", SceneContent::Cameras,
{"cameras", SceneContent::Cameras, {},
"Adding camera 0 named with 0xca0e0000\n"
"Adding camera 1 named with 0xca0e0001\n"},
{"cameras + names", SceneContent::Cameras|SceneContent::Names,
{"cameras, verbose", SceneContent::Cameras, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding camera 0 out of 2\n"
"Adding camera 0 named with 0xca0e0000\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding camera 1 out of 2\n"
"Adding camera 1 named with 0xca0e0001\n"},
{"cameras + names", SceneContent::Cameras|SceneContent::Names, {},
"Adding camera 0 named Camera 0 with 0xca0e0000\n"
"Adding camera 1 named Camera 1 with 0xca0e0001\n"},
{"2D skins", SceneContent::Skins2D,
{"2D skins", SceneContent::Skins2D, {},
"Adding 2D skin 0 named with 0x50102d00\n"
"Adding 2D skin 1 named with 0x50102d01\n"},
{"2D skins, verbose", SceneContent::Skins2D, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding 2D skin 0 out of 2\n"
"Adding 2D skin 0 named with 0x50102d00\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding 2D skin 1 out of 2\n"
"Adding 2D skin 1 named with 0x50102d01\n"},
{"2D skins + names", SceneContent::Skins2D|SceneContent::Names,
{"2D skins + names", SceneContent::Skins2D|SceneContent::Names, {},
"Adding 2D skin 0 named 2D skin 0 with 0x50102d00\n"
"Adding 2D skin 1 named 2D skin 1 with 0x50102d01\n"},
{"3D skins", SceneContent::Skins3D,
{"3D skins", SceneContent::Skins3D, {},
"Adding 3D skin 0 named with 0x50103d00\n"
"Adding 3D skin 1 named with 0x50103d01\n"},
{"3D skins, verbose", SceneContent::Skins3D, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding 3D skin 0 out of 2\n"
"Adding 3D skin 0 named with 0x50103d00\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding 3D skin 1 out of 2\n"
"Adding 3D skin 1 named with 0x50103d01\n"},
{"3D skins + names", SceneContent::Skins3D|SceneContent::Names,
{"3D skins + names", SceneContent::Skins3D|SceneContent::Names, {},
"Adding 3D skin 0 named 3D skin 0 with 0x50103d00\n"
"Adding 3D skin 1 named 3D skin 1 with 0x50103d01\n"},
{"meshes", SceneContent::Meshes,
{"meshes", SceneContent::Meshes, {},
"Adding mesh 0 named with 0xe500000\n"
"Adding mesh 1 named with 0xe500001\n"},
{"meshes + names", SceneContent::Meshes|SceneContent::Names,
{"meshes, verbose", SceneContent::Meshes, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding mesh 0 out of 2\n"
"Adding mesh 0 named with 0xe500000\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding mesh 1 out of 2\n"
"Adding mesh 1 named with 0xe500001\n"},
{"meshes + names", SceneContent::Meshes|SceneContent::Names, {},
"Adding mesh 0 named Mesh 0 with 0xe500000\n"
"Adding mesh 1 named Mesh 1 with 0xe500001\n"},
{"meshes + levels", SceneContent::Meshes|SceneContent::MeshLevels,
{"meshes + levels", SceneContent::Meshes|SceneContent::MeshLevels, {},
"Adding mesh 0 named with 0xe500000\n"
"Adding mesh 1 level 0 named with 0xe500001\n"
"Adding mesh 1 level 1 named with 0xe500011\n"
"Adding mesh 1 level 2 named with 0xe500021\n"},
{"meshes + levels + names", SceneContent::Meshes|SceneContent::MeshLevels|SceneContent::Names,
{"meshes + levels, verbose", SceneContent::Meshes|SceneContent::MeshLevels, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding mesh 0 out of 2\n"
"Adding mesh 0 named with 0xe500000\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding mesh 1 out of 2\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing mesh 1 level 0 out of 3\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing mesh 1 level 1 out of 3\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing mesh 1 level 2 out of 3\n"
"Adding mesh 1 level 0 named with 0xe500001\n"
"Adding mesh 1 level 1 named with 0xe500011\n"
"Adding mesh 1 level 2 named with 0xe500021\n"},
{"meshes + levels + names", SceneContent::Meshes|SceneContent::MeshLevels|SceneContent::Names, {},
"Adding mesh 0 named Mesh 0 with 0xe500000\n"
"Adding mesh 1 level 0 named Mesh 1 with 0xe500001\n"
"Adding mesh 1 level 1 named Mesh 1 with 0xe500011\n"
"Adding mesh 1 level 2 named Mesh 1 with 0xe500021\n"},
{"materials", SceneContent::Materials,
{"materials", SceneContent::Materials, {},
"Adding material 0 named with 0xa7e0000\n"
"Adding material 1 named with 0xa7e0001\n"},
{"materials, verbose", SceneContent::Materials, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding material 0 out of 2\n"
"Adding material 0 named with 0xa7e0000\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding material 1 out of 2\n"
"Adding material 1 named with 0xa7e0001\n"},
{"materials + names", SceneContent::Materials|SceneContent::Names,
{"materials + names", SceneContent::Materials|SceneContent::Names, {},
"Adding material 0 named Material 0 with 0xa7e0000\n"
"Adding material 1 named Material 1 with 0xa7e0001\n"},
{"textures", SceneContent::Textures,
{"textures", SceneContent::Textures, {},
"Adding texture 0 named with 0x7e070000\n"
"Adding texture 1 named with 0x7e070001\n"},
{"textures + names", SceneContent::Textures|SceneContent::Names,
{"textures, verbose", SceneContent::Textures, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding texture 0 out of 2\n"
"Adding texture 0 named with 0x7e070000\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding texture 1 out of 2\n"
"Adding texture 1 named with 0x7e070001\n"},
{"textures + names", SceneContent::Textures|SceneContent::Names, {},
"Adding texture 0 named Texture 0 with 0x7e070000\n"
"Adding texture 1 named Texture 1 with 0x7e070001\n"},
{"1D images", SceneContent::Images1D,
{"1D images", SceneContent::Images1D, {},
"Adding 1D image 0 named with 0x10a91d00\n"
"Adding 1D image 1 named with 0x10a91d01\n"},
{"1D images, verbose", SceneContent::Images1D, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding 1D image 0 out of 2\n"
"Adding 1D image 0 named with 0x10a91d00\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding 1D image 1 out of 2\n"
"Adding 1D image 1 named with 0x10a91d01\n"},
{"1D images + names", SceneContent::Images1D|SceneContent::Names,
{"1D images + names", SceneContent::Images1D|SceneContent::Names, {},
"Adding 1D image 0 named 1D image 0 with 0x10a91d00\n"
"Adding 1D image 1 named 1D image 1 with 0x10a91d01\n"},
{"1D images + levels", SceneContent::Images1D|SceneContent::ImageLevels,
{"1D images + levels", SceneContent::Images1D|SceneContent::ImageLevels, {},
"Adding 1D image 0 named with 0x10a91d00\n"
"Adding 1D image 1 level 0 named with 0x10a91d01\n"
"Adding 1D image 1 level 1 named with 0x10a91d11\n"
"Adding 1D image 1 level 2 named with 0x10a91d21\n"
"Adding 1D image 1 level 3 named with 0x10a91d31\n"},
{"1D images + levels + names", SceneContent::Images1D|SceneContent::ImageLevels|SceneContent::Names,
{"1D images + levels, verbose", SceneContent::Images1D|SceneContent::ImageLevels, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding 1D image 0 out of 2\n"
"Adding 1D image 0 named with 0x10a91d00\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding 1D image 1 out of 2\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing 1D image 1 level 0 out of 4\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing 1D image 1 level 1 out of 4\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing 1D image 1 level 2 out of 4\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing 1D image 1 level 3 out of 4\n"
"Adding 1D image 1 level 0 named with 0x10a91d01\n"
"Adding 1D image 1 level 1 named with 0x10a91d11\n"
"Adding 1D image 1 level 2 named with 0x10a91d21\n"
"Adding 1D image 1 level 3 named with 0x10a91d31\n"},
{"1D images + levels + names", SceneContent::Images1D|SceneContent::ImageLevels|SceneContent::Names, {},
"Adding 1D image 0 named 1D image 0 with 0x10a91d00\n"
"Adding 1D image 1 level 0 named 1D image 1 with 0x10a91d01\n"
"Adding 1D image 1 level 1 named 1D image 1 with 0x10a91d11\n"
"Adding 1D image 1 level 2 named 1D image 1 with 0x10a91d21\n"
"Adding 1D image 1 level 3 named 1D image 1 with 0x10a91d31\n"},
{"2D images", SceneContent::Images2D,
{"2D images", SceneContent::Images2D, {},
"Adding 2D image 0 named with 0x10a92d00\n"
"Adding 2D image 1 named with 0x10a92d01\n"},
{"2D images, verbose", SceneContent::Images2D, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding 2D image 0 out of 2\n"
"Adding 2D image 0 named with 0x10a92d00\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding 2D image 1 out of 2\n"
"Adding 2D image 1 named with 0x10a92d01\n"},
{"2D images + names", SceneContent::Images2D|SceneContent::Names,
{"2D images + names", SceneContent::Images2D|SceneContent::Names, {},
"Adding 2D image 0 named 2D image 0 with 0x10a92d00\n"
"Adding 2D image 1 named 2D image 1 with 0x10a92d01\n"},
{"2D images + levels", SceneContent::Images2D|SceneContent::ImageLevels,
{"2D images + levels", SceneContent::Images2D|SceneContent::ImageLevels, {},
"Adding 2D image 0 level 0 named with 0x10a92d00\n"
"Adding 2D image 0 level 1 named with 0x10a92d10\n"
"Adding 2D image 0 level 2 named with 0x10a92d20\n"
"Adding 2D image 1 named with 0x10a92d01\n"},
{"2D images + names", SceneContent::Images2D|SceneContent::ImageLevels|SceneContent::Names,
{"2D images + levels, verbose", SceneContent::Images2D|SceneContent::ImageLevels, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding 2D image 0 out of 2\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing 2D image 0 level 0 out of 3\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing 2D image 0 level 1 out of 3\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing 2D image 0 level 2 out of 3\n"
"Adding 2D image 0 level 0 named with 0x10a92d00\n"
"Adding 2D image 0 level 1 named with 0x10a92d10\n"
"Adding 2D image 0 level 2 named with 0x10a92d20\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding 2D image 1 out of 2\n"
"Adding 2D image 1 named with 0x10a92d01\n"},
{"2D images + names", SceneContent::Images2D|SceneContent::ImageLevels|SceneContent::Names, {},
"Adding 2D image 0 level 0 named 2D image 0 with 0x10a92d00\n"
"Adding 2D image 0 level 1 named 2D image 0 with 0x10a92d10\n"
"Adding 2D image 0 level 2 named 2D image 0 with 0x10a92d20\n"
"Adding 2D image 1 named 2D image 1 with 0x10a92d01\n"},
{"3D images", SceneContent::Images3D,
{"3D images", SceneContent::Images3D, {},
"Adding 3D image 0 named with 0x10a93d00\n"
"Adding 3D image 1 named with 0x10a93d01\n"},
{"3D images, verbose", SceneContent::Images3D, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding 3D image 0 out of 2\n"
"Adding 3D image 0 named with 0x10a93d00\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding 3D image 1 out of 2\n"
"Adding 3D image 1 named with 0x10a93d01\n"},
{"3D images + names", SceneContent::Images3D|SceneContent::Names,
{"3D images + names", SceneContent::Images3D|SceneContent::Names, {},
"Adding 3D image 0 named 3D image 0 with 0x10a93d00\n"
"Adding 3D image 1 named 3D image 1 with 0x10a93d01\n"},
{"3D images + levels", SceneContent::Images3D|SceneContent::ImageLevels,
{"3D images + levels", SceneContent::Images3D|SceneContent::ImageLevels, {},
"Adding 3D image 0 named with 0x10a93d00\n"
"Adding 3D image 1 level 0 named with 0x10a93d01\n"
"Adding 3D image 1 level 1 named with 0x10a93d11\n"},
{"3D images + names", SceneContent::Images3D|SceneContent::ImageLevels|SceneContent::Names,
{"3D images + levels, verbose", SceneContent::Images3D|SceneContent::ImageLevels, SceneConverterFlag::Verbose,
"Trade::AbstractSceneConverter::addImporterContents(): adding 3D image 0 out of 2\n"
"Adding 3D image 0 named with 0x10a93d00\n"
"Trade::AbstractSceneConverter::addImporterContents(): adding 3D image 1 out of 2\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing 3D image 1 level 0 out of 2\n"
"Trade::AbstractSceneConverter::addImporterContents(): importing 3D image 1 level 1 out of 2\n"
"Adding 3D image 1 level 0 named with 0x10a93d01\n"
"Adding 3D image 1 level 1 named with 0x10a93d11\n"},
{"3D images + names", SceneContent::Images3D|SceneContent::ImageLevels|SceneContent::Names, {},
"Adding 3D image 0 named 3D image 0 with 0x10a93d00\n"
"Adding 3D image 1 level 0 named 3D image 1 with 0x10a93d01\n"
"Adding 3D image 1 level 1 named 3D image 1 with 0x10a93d11\n"},
{"names only", SceneContent::Names,
{"names only", SceneContent::Names, {},
"" /* Nothing */},
{"names only, verbose", SceneContent::Names, SceneConverterFlag::Verbose,
"" /* Nothing */},
};
@ -6083,6 +6187,7 @@ void AbstractSceneConverterTest::addImporterContents() {
}
} converter;
converter.addFlags(data.flags);
CORRADE_VERIFY(converter.beginData());
std::ostringstream out;

Loading…
Cancel
Save