Browse Source

Adapt remaining code to not use deprecated Optional<Array> conversion.

pull/557/head
Vladimír Vondruš 4 years ago
parent
commit
8f311ad5fd
  1. 4
      doc/snippets/MagnumShaderTools.cpp
  2. 30
      src/Magnum/ShaderTools/Test/AbstractConverterTest.cpp
  3. 16
      src/Magnum/ShaderTools/shaderconverter.cpp
  4. 9
      src/Magnum/Trade/AbstractImageConverter.cpp
  5. 90
      src/Magnum/Trade/Test/AbstractImageConverterTest.cpp
  6. 5
      src/Magnum/Trade/Test/AbstractSceneConverterTest.cpp
  7. 5
      src/MagnumPlugins/MagnumFontConverter/MagnumFontConverter.cpp
  8. 8
      src/MagnumPlugins/TgaImageConverter/Test/TgaImageConverterTest.cpp

4
doc/snippets/MagnumShaderTools.cpp

@ -94,8 +94,8 @@ void main() {
converter->setDefinitions({ converter->setDefinitions({
{"TEXTURED", ""} {"TEXTURED", ""}
}); });
Containers::Array<char> spirv = converter->convertDataToData( Containers::Optional<Containers::Array<char>> spirv =
ShaderTools::Stage::Fragment, glsl); converter->convertDataToData(ShaderTools::Stage::Fragment, glsl);
/* [AbstractConverter-usage-compilation] */ /* [AbstractConverter-usage-compilation] */
} }

30
src/Magnum/ShaderTools/Test/AbstractConverterTest.cpp

@ -940,8 +940,9 @@ void AbstractConverterTest::convertDataToData() {
} converter; } converter;
const char data[] = {'S', 'P', 'I', 'R', 'V'}; const char data[] = {'S', 'P', 'I', 'R', 'V'};
Containers::Array<char> out = converter.convertDataToData({}, data); Containers::Optional<Containers::Array<char>> out = converter.convertDataToData({}, data);
CORRADE_COMPARE_AS(out, Containers::arrayView({'V', 'S'}), CORRADE_VERIFY(out);
CORRADE_COMPARE_AS(*out, Containers::arrayView({'V', 'S'}),
TestSuite::Compare::Container); TestSuite::Compare::Container);
} }
@ -1293,8 +1294,9 @@ void AbstractConverterTest::convertFileToData() {
CORRADE_VERIFY(true); /* Capture correct function name first */ CORRADE_VERIFY(true); /* Capture correct function name first */
Containers::Array<char> out = converter.convertFileToData({}, Utility::Path::join(SHADERTOOLS_TEST_DIR, "file.dat")); Containers::Optional<Containers::Array<char>> out = converter.convertFileToData({}, Utility::Path::join(SHADERTOOLS_TEST_DIR, "file.dat"));
CORRADE_COMPARE_AS(out, Containers::arrayView({'V', 'S'}), CORRADE_VERIFY(out);
CORRADE_COMPARE_AS(*out, Containers::arrayView({'V', 'S'}),
TestSuite::Compare::Container); TestSuite::Compare::Container);
} }
@ -1311,8 +1313,9 @@ void AbstractConverterTest::convertFileToDataAsData() {
} }
} converter; } converter;
Containers::Array<char> out = converter.convertFileToData({}, Utility::Path::join(SHADERTOOLS_TEST_DIR, "file.dat")); Containers::Optional<Containers::Array<char>> out = converter.convertFileToData({}, Utility::Path::join(SHADERTOOLS_TEST_DIR, "file.dat"));
CORRADE_COMPARE_AS(out, Containers::arrayView({'V', 'S'}), CORRADE_VERIFY(out);
CORRADE_COMPARE_AS(*out, Containers::arrayView({'V', 'S'}),
TestSuite::Compare::Container); TestSuite::Compare::Container);
} }
@ -1420,11 +1423,12 @@ void AbstractConverterTest::linkDataToData() {
CORRADE_VERIFY(true); /* so it picks up correct test case name */ CORRADE_VERIFY(true); /* so it picks up correct test case name */
Containers::Array<char> out = converter.linkDataToData({ Containers::Optional<Containers::Array<char>> out = converter.linkDataToData({
{Stage::Vertex, Containers::arrayView({'V', 'E'})}, {Stage::Vertex, Containers::arrayView({'V', 'E'})},
{Stage::Fragment, Containers::arrayView({'S', 'A'})} {Stage::Fragment, Containers::arrayView({'S', 'A'})}
}); });
CORRADE_COMPARE_AS(out, Containers::arrayView({'V', 'S'}), CORRADE_VERIFY(out);
CORRADE_COMPARE_AS(*out, Containers::arrayView({'V', 'S'}),
TestSuite::Compare::Container); TestSuite::Compare::Container);
} }
@ -1933,11 +1937,12 @@ void AbstractConverterTest::linkFilesToData() {
CORRADE_VERIFY(true); /* Capture correct function name first */ CORRADE_VERIFY(true); /* Capture correct function name first */
Containers::Array<char> out = converter.linkFilesToData({ Containers::Optional<Containers::Array<char>> out = converter.linkFilesToData({
{Stage::Vertex, Utility::Path::join(SHADERTOOLS_TEST_DIR, "another.dat")}, {Stage::Vertex, Utility::Path::join(SHADERTOOLS_TEST_DIR, "another.dat")},
{Stage::Fragment, Utility::Path::join(SHADERTOOLS_TEST_DIR, "file.dat")} {Stage::Fragment, Utility::Path::join(SHADERTOOLS_TEST_DIR, "file.dat")}
}); });
CORRADE_COMPARE_AS(out, Containers::arrayView({'V', 'S'}), CORRADE_VERIFY(out);
CORRADE_COMPARE_AS(*out, Containers::arrayView({'V', 'S'}),
TestSuite::Compare::Container); TestSuite::Compare::Container);
} }
@ -1960,11 +1965,12 @@ void AbstractConverterTest::linkFilesToDataAsData() {
CORRADE_VERIFY(true); /* Capture correct function name first */ CORRADE_VERIFY(true); /* Capture correct function name first */
Containers::Array<char> out = converter.linkFilesToData({ Containers::Optional<Containers::Array<char>> out = converter.linkFilesToData({
{Stage::Vertex, Utility::Path::join(SHADERTOOLS_TEST_DIR, "another.dat")}, {Stage::Vertex, Utility::Path::join(SHADERTOOLS_TEST_DIR, "another.dat")},
{Stage::Fragment, Utility::Path::join(SHADERTOOLS_TEST_DIR, "file.dat")} {Stage::Fragment, Utility::Path::join(SHADERTOOLS_TEST_DIR, "file.dat")}
}); });
CORRADE_COMPARE_AS(out, Containers::arrayView({'V', 'S'}), CORRADE_VERIFY(out);
CORRADE_COMPARE_AS(*out, Containers::arrayView({'V', 'S'}),
TestSuite::Compare::Container); TestSuite::Compare::Container);
} }

16
src/Magnum/ShaderTools/shaderconverter.cpp

@ -487,7 +487,9 @@ see documentation of a particular converter for more information.)")
return 18; /* same code as the same message below */ return 18; /* same code as the same message below */
} }
if(!(data = converter->convertFileToData(ShaderTools::Stage::Unspecified, args.arrayValue<Containers::StringView>("input", 0)))) { if(Containers::Optional<Containers::Array<char>> out = converter->convertFileToData(ShaderTools::Stage::Unspecified, args.arrayValue<Containers::StringView>("input", 0))) {
data = *std::move(out);
} else {
Error{} << "Cannot convert" << args.arrayValue<Containers::StringView>("input", 0); Error{} << "Cannot convert" << args.arrayValue<Containers::StringView>("input", 0);
return 20; /* same code as the same message below */ return 20; /* same code as the same message below */
} }
@ -569,14 +571,18 @@ see documentation of a particular converter for more information.)")
/* Linking */ /* Linking */
if(args.isSet("link")) { if(args.isSet("link")) {
if(!(data = converter->linkFilesToData(linkInputs))) { if(Containers::Optional<Containers::Array<char>> out = converter->linkFilesToData(linkInputs)) {
data = *std::move(out);
} else {
Error{} << "Cannot link" << args.arrayValue<Containers::StringView>("input", 0) << "and others to" << args.value<Containers::StringView>("output"); Error{} << "Cannot link" << args.arrayValue<Containers::StringView>("input", 0) << "and others to" << args.value<Containers::StringView>("output");
return 19; return 19;
} }
/* Converting */ /* Converting */
} else { } else {
if(!(data = converter->convertFileToData(ShaderTools::Stage::Unspecified, args.arrayValue<Containers::StringView>("input", 0)))) { if(Containers::Optional<Containers::Array<char>> out = converter->convertFileToData(ShaderTools::Stage::Unspecified, args.arrayValue<Containers::StringView>("input", 0))) {
data = *std::move(out);
} else {
Error{} << "Cannot convert" << args.arrayValue<Containers::StringView>("input", 0); Error{} << "Cannot convert" << args.arrayValue<Containers::StringView>("input", 0);
return 20; return 20;
} }
@ -591,7 +597,9 @@ see documentation of a particular converter for more information.)")
CORRADE_INTERNAL_ASSERT(data); CORRADE_INTERNAL_ASSERT(data);
/* Subsequent operations are always a conversion, not link */ /* Subsequent operations are always a conversion, not link */
if(!(data = converter->convertDataToData(ShaderTools::Stage::Unspecified, data))) { if(Containers::Optional<Containers::Array<char>> out = converter->convertDataToData(ShaderTools::Stage::Unspecified, data)) {
data = *std::move(out);
} else {
Error{} << "Cannot convert shader data"; Error{} << "Cannot convert shader data";
return 21; return 21;
} }

9
src/Magnum/Trade/AbstractImageConverter.cpp

@ -358,7 +358,8 @@ Containers::Optional<Containers::Array<char>> AbstractImageConverter::doConvertT
#ifdef MAGNUM_BUILD_DEPRECATED #ifdef MAGNUM_BUILD_DEPRECATED
Containers::Array<char> AbstractImageConverter::exportToData(const ImageView2D& image) { Containers::Array<char> AbstractImageConverter::exportToData(const ImageView2D& image) {
return convertToData(image); Containers::Optional<Containers::Array<char>> out = convertToData(image);
return out ? *std::move(out) : nullptr;
} }
#endif #endif
@ -463,7 +464,8 @@ Containers::Optional<Containers::Array<char>> AbstractImageConverter::doConvertT
#ifdef MAGNUM_BUILD_DEPRECATED #ifdef MAGNUM_BUILD_DEPRECATED
Containers::Array<char> AbstractImageConverter::exportToData(const CompressedImageView2D& image) { Containers::Array<char> AbstractImageConverter::exportToData(const CompressedImageView2D& image) {
return convertToData(image); Containers::Optional<Containers::Array<char>> out = convertToData(image);
return out ? *std::move(out) : nullptr;
} }
#endif #endif
@ -520,7 +522,8 @@ AbstractImageConverter::convertToData(const ImageData2D& image) {
#ifdef MAGNUM_BUILD_DEPRECATED #ifdef MAGNUM_BUILD_DEPRECATED
Containers::Array<char> AbstractImageConverter::exportToData(const ImageData2D& image) { Containers::Array<char> AbstractImageConverter::exportToData(const ImageData2D& image) {
return convertToData(image); Containers::Optional<Containers::Array<char>> out = convertToData(image);
return out ? *std::move(out) : nullptr;
} }
#endif #endif

90
src/Magnum/Trade/Test/AbstractImageConverterTest.cpp

@ -993,8 +993,9 @@ void AbstractImageConverterTest::convert1DToData() {
} converter; } converter;
const char data[16]{}; const char data[16]{};
Containers::Array<char> actual = converter.convertToData(ImageView1D{PixelFormat::RGBA8Unorm, 4, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(ImageView1D{PixelFormat::RGBA8Unorm, 4, data});
CORRADE_COMPARE(actual.size(), 4); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 4);
} }
void AbstractImageConverterTest::convert2DToData() { void AbstractImageConverterTest::convert2DToData() {
@ -1006,8 +1007,9 @@ void AbstractImageConverterTest::convert2DToData() {
} converter; } converter;
const char data[96]{}; const char data[96]{};
Containers::Array<char> actual = converter.convertToData(ImageView2D{PixelFormat::RGBA8Unorm, {4, 6}, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(ImageView2D{PixelFormat::RGBA8Unorm, {4, 6}, data});
CORRADE_COMPARE(actual.size(), 24); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 24);
} }
void AbstractImageConverterTest::convert3DToData() { void AbstractImageConverterTest::convert3DToData() {
@ -1019,8 +1021,9 @@ void AbstractImageConverterTest::convert3DToData() {
} converter; } converter;
const char data[192]{}; const char data[192]{};
Containers::Array<char> actual = converter.convertToData(ImageView3D{PixelFormat::RGBA8Unorm, {4, 6, 2}, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(ImageView3D{PixelFormat::RGBA8Unorm, {4, 6, 2}, data});
CORRADE_COMPARE(actual.size(), 48); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 48);
} }
void AbstractImageConverterTest::convert1DToDataInvalidImage() { void AbstractImageConverterTest::convert1DToDataInvalidImage() {
@ -1198,8 +1201,9 @@ void AbstractImageConverterTest::convertCompressed1DToData() {
} converter; } converter;
const char data[32]{}; const char data[32]{};
Containers::Array<char> actual = converter.convertToData(CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 16, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 16, data});
CORRADE_COMPARE(actual.size(), 16); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 16);
} }
void AbstractImageConverterTest::convertCompressed2DToData() { void AbstractImageConverterTest::convertCompressed2DToData() {
@ -1211,8 +1215,9 @@ void AbstractImageConverterTest::convertCompressed2DToData() {
} converter; } converter;
const char data[64]{}; const char data[64]{};
Containers::Array<char> actual = converter.convertToData(CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8}, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8}, data});
CORRADE_COMPARE(actual.size(), 128); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 128);
} }
void AbstractImageConverterTest::convertCompressed3DToData() { void AbstractImageConverterTest::convertCompressed3DToData() {
@ -1224,8 +1229,9 @@ void AbstractImageConverterTest::convertCompressed3DToData() {
} converter; } converter;
const char data[128]{}; const char data[128]{};
Containers::Array<char> actual = converter.convertToData(CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8, 2}, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8, 2}, data});
CORRADE_COMPARE(actual.size(), 256); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 256);
} }
void AbstractImageConverterTest::convertCompressed1DToDataInvalidImage() { void AbstractImageConverterTest::convertCompressed1DToDataInvalidImage() {
@ -1491,13 +1497,14 @@ void AbstractImageConverterTest::convertLevels1DToData() {
} converter; } converter;
const char data[96]{}; const char data[96]{};
Containers::Array<char> actual = converter.convertToData({ Containers::Optional<Containers::Array<char>> actual = converter.convertToData({
/* Arbitrary dimensions should be fine */ /* Arbitrary dimensions should be fine */
ImageView1D{PixelFormat::RGBA8Unorm, 4, data}, ImageView1D{PixelFormat::RGBA8Unorm, 4, data},
ImageView1D{PixelFormat::RGBA8Unorm, 2, data}, ImageView1D{PixelFormat::RGBA8Unorm, 2, data},
ImageView1D{PixelFormat::RGBA8Unorm, 3, data}, ImageView1D{PixelFormat::RGBA8Unorm, 3, data},
}); });
CORRADE_COMPARE(actual.size(), 4*3); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 4*3);
} }
void AbstractImageConverterTest::convertLevels2DToData() { void AbstractImageConverterTest::convertLevels2DToData() {
@ -1509,13 +1516,14 @@ void AbstractImageConverterTest::convertLevels2DToData() {
} converter; } converter;
const char data[96]{}; const char data[96]{};
Containers::Array<char> actual = converter.convertToData({ Containers::Optional<Containers::Array<char>> actual = converter.convertToData({
/* Arbitrary dimensions should be fine */ /* Arbitrary dimensions should be fine */
ImageView2D{PixelFormat::RGBA8Unorm, {4, 6}, data}, ImageView2D{PixelFormat::RGBA8Unorm, {4, 6}, data},
ImageView2D{PixelFormat::RGBA8Unorm, {1, 3}, data}, ImageView2D{PixelFormat::RGBA8Unorm, {1, 3}, data},
ImageView2D{PixelFormat::RGBA8Unorm, {4, 2}, data} ImageView2D{PixelFormat::RGBA8Unorm, {4, 2}, data}
}); });
CORRADE_COMPARE(actual.size(), 24*3); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 24*3);
} }
void AbstractImageConverterTest::convertLevels3DToData() { void AbstractImageConverterTest::convertLevels3DToData() {
@ -1527,13 +1535,14 @@ void AbstractImageConverterTest::convertLevels3DToData() {
} converter; } converter;
const char data[192]{}; const char data[192]{};
Containers::Array<char> actual = converter.convertToData({ Containers::Optional<Containers::Array<char>> actual = converter.convertToData({
/* Arbitrary dimensions should be fine */ /* Arbitrary dimensions should be fine */
ImageView3D{PixelFormat::RGBA8Unorm, {4, 6, 2}, data}, ImageView3D{PixelFormat::RGBA8Unorm, {4, 6, 2}, data},
ImageView3D{PixelFormat::RGBA8Unorm, {2, 3, 5}, data}, ImageView3D{PixelFormat::RGBA8Unorm, {2, 3, 5}, data},
ImageView3D{PixelFormat::RGBA8Unorm, {1, 1, 1}, data} ImageView3D{PixelFormat::RGBA8Unorm, {1, 1, 1}, data}
}); });
CORRADE_COMPARE(actual.size(), 48*3); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 48*3);
} }
void AbstractImageConverterTest::convertLevels1DToDataInvalidImage() { void AbstractImageConverterTest::convertLevels1DToDataInvalidImage() {
@ -1773,13 +1782,14 @@ void AbstractImageConverterTest::convertCompressedLevels1DToData() {
} converter; } converter;
const char data[32]{}; const char data[32]{};
Containers::Array<char> actual = converter.convertToData({ Containers::Optional<Containers::Array<char>> actual = converter.convertToData({
/* Arbitrary dimensions should be fine */ /* Arbitrary dimensions should be fine */
CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 16, data}, CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 16, data},
CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 4, data}, CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 4, data},
CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 12, data} CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 12, data}
}); });
CORRADE_COMPARE(actual.size(), 16*3); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 16*3);
} }
void AbstractImageConverterTest::convertCompressedLevels2DToData() { void AbstractImageConverterTest::convertCompressedLevels2DToData() {
@ -1791,13 +1801,14 @@ void AbstractImageConverterTest::convertCompressedLevels2DToData() {
} converter; } converter;
const char data[64]{}; const char data[64]{};
Containers::Array<char> actual = converter.convertToData({ Containers::Optional<Containers::Array<char>> actual = converter.convertToData({
/* Arbitrary dimensions should be fine */ /* Arbitrary dimensions should be fine */
CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8}, data}, CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8}, data},
CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {4, 12}, data}, CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {4, 12}, data},
CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {4, 4}, data} CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {4, 4}, data}
}); });
CORRADE_COMPARE(actual.size(), 128*3); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 128*3);
} }
void AbstractImageConverterTest::convertCompressedLevels3DToData() { void AbstractImageConverterTest::convertCompressedLevels3DToData() {
@ -1809,13 +1820,14 @@ void AbstractImageConverterTest::convertCompressedLevels3DToData() {
} converter; } converter;
const char data[128]{}; const char data[128]{};
Containers::Array<char> actual = converter.convertToData({ Containers::Optional<Containers::Array<char>> actual = converter.convertToData({
/* Arbitrary dimensions should be fine */ /* Arbitrary dimensions should be fine */
CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8, 2}, data}, CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8, 2}, data},
CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {4, 16, 1}, data}, CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {4, 16, 1}, data},
CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 4, 1}, data} CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 4, 1}, data}
}); });
CORRADE_COMPARE(actual.size(), 256*3); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 256*3);
} }
void AbstractImageConverterTest::convertCompressedLevels1DToDataInvalidImage() { void AbstractImageConverterTest::convertCompressedLevels1DToDataInvalidImage() {
@ -2035,8 +2047,9 @@ void AbstractImageConverterTest::convert1DToDataThroughLevels() {
} converter; } converter;
const char data[16]{}; const char data[16]{};
Containers::Array<char> actual = converter.convertToData(ImageView1D{PixelFormat::RGBA8Unorm, 4, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(ImageView1D{PixelFormat::RGBA8Unorm, 4, data});
CORRADE_COMPARE(actual.size(), 4); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 4);
} }
void AbstractImageConverterTest::convert2DToDataThroughLevels() { void AbstractImageConverterTest::convert2DToDataThroughLevels() {
@ -2048,8 +2061,9 @@ void AbstractImageConverterTest::convert2DToDataThroughLevels() {
} converter; } converter;
const char data[96]{}; const char data[96]{};
Containers::Array<char> actual = converter.convertToData(ImageView2D{PixelFormat::RGBA8Unorm, {4, 6}, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(ImageView2D{PixelFormat::RGBA8Unorm, {4, 6}, data});
CORRADE_COMPARE(actual.size(), 24); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 24);
} }
void AbstractImageConverterTest::convert3DToDataThroughLevels() { void AbstractImageConverterTest::convert3DToDataThroughLevels() {
@ -2061,8 +2075,9 @@ void AbstractImageConverterTest::convert3DToDataThroughLevels() {
} converter; } converter;
const char data[192]{}; const char data[192]{};
Containers::Array<char> actual = converter.convertToData(ImageView3D{PixelFormat::RGBA8Unorm, {4, 6, 2}, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(ImageView3D{PixelFormat::RGBA8Unorm, {4, 6, 2}, data});
CORRADE_COMPARE(actual.size(), 48); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 48);
} }
void AbstractImageConverterTest::convertCompressed1DToDataThroughLevels() { void AbstractImageConverterTest::convertCompressed1DToDataThroughLevels() {
@ -2074,8 +2089,9 @@ void AbstractImageConverterTest::convertCompressed1DToDataThroughLevels() {
} converter; } converter;
const char data[32]{}; const char data[32]{};
Containers::Array<char> actual = converter.convertToData(CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 16, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(CompressedImageView1D{CompressedPixelFormat::Bc1RGBAUnorm, 16, data});
CORRADE_COMPARE(actual.size(), 16); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 16);
} }
void AbstractImageConverterTest::convertCompressed2DToDataThroughLevels() { void AbstractImageConverterTest::convertCompressed2DToDataThroughLevels() {
@ -2087,8 +2103,9 @@ void AbstractImageConverterTest::convertCompressed2DToDataThroughLevels() {
} converter; } converter;
const char data[64]{}; const char data[64]{};
Containers::Array<char> actual = converter.convertToData(CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8}, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(CompressedImageView2D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8}, data});
CORRADE_COMPARE(actual.size(), 128); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 128);
} }
void AbstractImageConverterTest::convertCompressed3DToDataThroughLevels() { void AbstractImageConverterTest::convertCompressed3DToDataThroughLevels() {
@ -2100,8 +2117,9 @@ void AbstractImageConverterTest::convertCompressed3DToDataThroughLevels() {
} converter; } converter;
const char data[128]{}; const char data[128]{};
Containers::Array<char> actual = converter.convertToData(CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8, 2}, data}); Containers::Optional<Containers::Array<char>> actual = converter.convertToData(CompressedImageView3D{CompressedPixelFormat::Bc1RGBAUnorm, {16, 8, 2}, data});
CORRADE_COMPARE(actual.size(), 256); CORRADE_VERIFY(actual);
CORRADE_COMPARE(actual->size(), 256);
} }
void AbstractImageConverterTest::convert1DToFile() { void AbstractImageConverterTest::convert1DToFile() {

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

@ -401,8 +401,9 @@ void AbstractSceneConverterTest::convertMeshToData() {
} }
} converter; } converter;
Containers::Array<char> data = converter.convertToData(MeshData{MeshPrimitive::Triangles, 6}); Containers::Optional<Containers::Array<char>> data = converter.convertToData(MeshData{MeshPrimitive::Triangles, 6});
CORRADE_COMPARE(data.size(), 6); CORRADE_VERIFY(data);
CORRADE_COMPARE(data->size(), 6);
} }
void AbstractSceneConverterTest::convertMeshToDataNotImplemented() { void AbstractSceneConverterTest::convertMeshToDataNotImplemented() {

5
src/MagnumPlugins/MagnumFontConverter/MagnumFontConverter.cpp

@ -122,11 +122,12 @@ std::vector<std::pair<std::string, Containers::Array<char>>> MagnumFontConverter
std::copy(confStr.begin(), confStr.end(), confData.begin()); std::copy(confStr.begin(), confStr.end(), confData.begin());
/* Save cache image */ /* Save cache image */
auto tgaData = Trade::TgaImageConverter().convertToData(cache.image()); Containers::Optional<Containers::Array<char>> tgaData = Trade::TgaImageConverter().convertToData(cache.image());
if(!tgaData) return {};
std::vector<std::pair<std::string, Containers::Array<char>>> out; std::vector<std::pair<std::string, Containers::Array<char>>> out;
out.emplace_back(filename + ".conf", std::move(confData)); out.emplace_back(filename + ".conf", std::move(confData));
out.emplace_back(filename + ".tga", std::move(tgaData)); out.emplace_back(filename + ".tga", *std::move(tgaData));
return out; return out;
} }

8
src/MagnumPlugins/TgaImageConverter/Test/TgaImageConverterTest.cpp

@ -130,7 +130,7 @@ void TgaImageConverterTest::rgb() {
converter->setFlags(data.flags); converter->setFlags(data.flags);
std::ostringstream out; std::ostringstream out;
Containers::Array<char> array; Containers::Optional<Containers::Array<char>> array;
{ {
Debug redirectOutput{&out}; Debug redirectOutput{&out};
array = converter->convertToData(OriginalRGB); array = converter->convertToData(OriginalRGB);
@ -141,7 +141,7 @@ void TgaImageConverterTest::rgb() {
CORRADE_SKIP("TgaImporter plugin not enabled, can't test the result"); CORRADE_SKIP("TgaImporter plugin not enabled, can't test the result");
Containers::Pointer<AbstractImporter> importer = _importerManager.instantiate("TgaImporter"); Containers::Pointer<AbstractImporter> importer = _importerManager.instantiate("TgaImporter");
CORRADE_VERIFY(importer->openData(array)); CORRADE_VERIFY(importer->openData(*array));
Containers::Optional<Trade::ImageData2D> converted = importer->image2D(0); Containers::Optional<Trade::ImageData2D> converted = importer->image2D(0);
CORRADE_VERIFY(converted); CORRADE_VERIFY(converted);
@ -161,7 +161,7 @@ void TgaImageConverterTest::rgba() {
converter->setFlags(data.flags); converter->setFlags(data.flags);
std::ostringstream out; std::ostringstream out;
Containers::Array<char> array; Containers::Optional<Containers::Array<char>> array;
{ {
Debug redirectOutput{&out}; Debug redirectOutput{&out};
array = converter->convertToData(OriginalRGBA); array = converter->convertToData(OriginalRGBA);
@ -172,7 +172,7 @@ void TgaImageConverterTest::rgba() {
CORRADE_SKIP("TgaImporter plugin not enabled, can't test the result"); CORRADE_SKIP("TgaImporter plugin not enabled, can't test the result");
Containers::Pointer<AbstractImporter> importer = _importerManager.instantiate("TgaImporter"); Containers::Pointer<AbstractImporter> importer = _importerManager.instantiate("TgaImporter");
CORRADE_VERIFY(importer->openData(array)); CORRADE_VERIFY(importer->openData(*array));
Containers::Optional<Trade::ImageData2D> converted = importer->image2D(0); Containers::Optional<Trade::ImageData2D> converted = importer->image2D(0);
CORRADE_VERIFY(converted); CORRADE_VERIFY(converted);

Loading…
Cancel
Save