Browse Source

Any*{Importer,Converter}: forgot to port these away from std::string.

Somehow. Heh. This causes a non-deprecated build on MSVC to break due to
a similar reason as in 54394e2c2f. And,
similarly to 3717043ae2, *again*
discovered while building bindings.
pull/557/head
Vladimír Vondruš 4 years ago
parent
commit
be91c51975
  1. 2
      src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp
  2. 2
      src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h
  3. 30
      src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp
  4. 2
      src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h
  5. 1
      src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp
  6. 2
      src/MagnumPlugins/AnySceneConverter/AnySceneConverter.cpp
  7. 2
      src/MagnumPlugins/AnySceneConverter/AnySceneConverter.h
  8. 125
      src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp
  9. 2
      src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h
  10. 14
      src/MagnumPlugins/AnyShaderConverter/AnyConverter.cpp
  11. 2
      src/MagnumPlugins/AnyShaderConverter/AnyConverter.h

2
src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp

@ -43,7 +43,7 @@ using namespace Containers::Literals;
AnyImageConverter::AnyImageConverter(PluginManager::Manager<AbstractImageConverter>& manager): AbstractImageConverter{manager} {} AnyImageConverter::AnyImageConverter(PluginManager::Manager<AbstractImageConverter>& manager): AbstractImageConverter{manager} {}
AnyImageConverter::AnyImageConverter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractImageConverter{manager, plugin} {} AnyImageConverter::AnyImageConverter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin): AbstractImageConverter{manager, plugin} {}
AnyImageConverter::~AnyImageConverter() = default; AnyImageConverter::~AnyImageConverter() = default;

2
src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h

@ -128,7 +128,7 @@ class MAGNUM_ANYIMAGECONVERTER_EXPORT AnyImageConverter: public AbstractImageCon
explicit AnyImageConverter(PluginManager::Manager<AbstractImageConverter>& manager); explicit AnyImageConverter(PluginManager::Manager<AbstractImageConverter>& manager);
/** @brief Plugin manager constructor */ /** @brief Plugin manager constructor */
explicit AnyImageConverter(PluginManager::AbstractManager& manager, const std::string& plugin); explicit AnyImageConverter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin);
~AnyImageConverter(); ~AnyImageConverter();

30
src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp

@ -31,8 +31,8 @@
#include <Corrade/PluginManager/Manager.h> #include <Corrade/PluginManager/Manager.h>
#include <Corrade/PluginManager/PluginMetadata.h> #include <Corrade/PluginManager/PluginMetadata.h>
#include <Corrade/Utility/Assert.h> #include <Corrade/Utility/Assert.h>
#include <Corrade/Utility/DebugStl.h> #include <Corrade/Utility/DebugStl.h> /* for PluginMetadata::name() */
#include <Corrade/Utility/FormatStl.h> #include <Corrade/Utility/Format.h>
#include <Corrade/Utility/Path.h> #include <Corrade/Utility/Path.h>
#include <Corrade/Utility/String.h> #include <Corrade/Utility/String.h>
@ -45,7 +45,7 @@ using namespace Containers::Literals;
AnyImageImporter::AnyImageImporter(PluginManager::Manager<AbstractImporter>& manager): AbstractImporter{manager} {} AnyImageImporter::AnyImageImporter(PluginManager::Manager<AbstractImporter>& manager): AbstractImporter{manager} {}
AnyImageImporter::AnyImageImporter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractImporter{manager, plugin} {} AnyImageImporter::AnyImageImporter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin): AbstractImporter{manager, plugin} {}
AnyImageImporter::AnyImageImporter(AnyImageImporter&&) noexcept = default; AnyImageImporter::AnyImageImporter(AnyImageImporter&&) noexcept = default;
@ -170,36 +170,36 @@ void AnyImageImporter::doOpenData(Containers::Array<char>&& data, DataFlags) {
const Containers::ArrayView<const char> dataView = data; const Containers::ArrayView<const char> dataView = data;
const Containers::StringView dataString = dataView; const Containers::StringView dataString = dataView;
std::string plugin; Containers::StringView plugin;
/* https://github.com/BinomialLLC/basis_universal/blob/7d784c728844c007d8c95d63231f7adcc0f65364/transcoder/basisu_file_headers.h#L78 */ /* https://github.com/BinomialLLC/basis_universal/blob/7d784c728844c007d8c95d63231f7adcc0f65364/transcoder/basisu_file_headers.h#L78 */
if(dataString.hasPrefix("sB"_s)) if(dataString.hasPrefix("sB"_s))
plugin = "BasisImporter"; plugin = "BasisImporter"_s;
/* https://en.wikipedia.org/wiki/BMP_file_format#Bitmap_file_header */ /* https://en.wikipedia.org/wiki/BMP_file_format#Bitmap_file_header */
else if(dataString.hasPrefix("BM"_s)) else if(dataString.hasPrefix("BM"_s))
plugin = "BmpImporter"; plugin = "BmpImporter"_s;
/* https://docs.microsoft.com/cs-cz/windows/desktop/direct3ddds/dx-graphics-dds-pguide */ /* https://docs.microsoft.com/cs-cz/windows/desktop/direct3ddds/dx-graphics-dds-pguide */
else if(dataString.hasPrefix("DDS "_s)) else if(dataString.hasPrefix("DDS "_s))
plugin = "DdsImporter"; plugin = "DdsImporter"_s;
/* http://www.openexr.com/openexrfilelayout.pdf */ /* http://www.openexr.com/openexrfilelayout.pdf */
else if(dataString.hasPrefix("\x76\x2f\x31\x01"_s)) else if(dataString.hasPrefix("\x76\x2f\x31\x01"_s))
plugin = "OpenExrImporter"; plugin = "OpenExrImporter"_s;
/* https://en.wikipedia.org/wiki/Radiance_(software)#HDR_image_format */ /* https://en.wikipedia.org/wiki/Radiance_(software)#HDR_image_format */
else if(dataString.hasPrefix("#?RADIANCE"_s)) else if(dataString.hasPrefix("#?RADIANCE"_s))
plugin = "HdrImporter"; plugin = "HdrImporter"_s;
/* https://en.wikipedia.org/wiki/JPEG#Syntax_and_structure */ /* https://en.wikipedia.org/wiki/JPEG#Syntax_and_structure */
else if(dataString.hasPrefix("\xff\xd8\xff"_s)) else if(dataString.hasPrefix("\xff\xd8\xff"_s))
plugin = "JpegImporter"; plugin = "JpegImporter"_s;
/* https://github.khronos.org/KTX-Specification/#_identifier */ /* https://github.khronos.org/KTX-Specification/#_identifier */
else if(dataString.hasPrefix("\xabKTX 20\xbb\r\n\x1a\n"_s)) else if(dataString.hasPrefix("\xabKTX 20\xbb\r\n\x1a\n"_s))
plugin = "KtxImporter"; plugin = "KtxImporter"_s;
/* https://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header */ /* https://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header */
else if(dataString.hasPrefix("\x89PNG\x0d\x0a\x1a\x0a"_s)) else if(dataString.hasPrefix("\x89PNG\x0d\x0a\x1a\x0a"_s))
plugin = "PngImporter"; plugin = "PngImporter"_s;
/* http://paulbourke.net/dataformats/tiff/, /* http://paulbourke.net/dataformats/tiff/,
http://paulbourke.net/dataformats/tiff/tiff_summary.pdf */ http://paulbourke.net/dataformats/tiff/tiff_summary.pdf */
else if(dataString.hasPrefix("II\x2a\x00"_s) || else if(dataString.hasPrefix("II\x2a\x00"_s) ||
dataString.hasPrefix("MM\x00\x2a"_s)) dataString.hasPrefix("MM\x00\x2a"_s))
plugin = "TiffImporter"; plugin = "TiffImporter"_s;
/* https://github.com/file/file/blob/d04de269e0b06ccd0a7d1bf4974fed1d75be7d9e/magic/Magdir/images#L18-L22 /* https://github.com/file/file/blob/d04de269e0b06ccd0a7d1bf4974fed1d75be7d9e/magic/Magdir/images#L18-L22
TGAs are a complete guesswork, so try after everything else fails. */ TGAs are a complete guesswork, so try after everything else fails. */
else if([dataView]() { else if([dataView]() {
@ -221,7 +221,7 @@ void AnyImageImporter::doOpenData(Containers::Array<char>&& data, DataFlags) {
/* Probably TGA, heh. Or random memory. */ /* Probably TGA, heh. Or random memory. */
return true; return true;
}()) plugin = "TgaImporter"; }()) plugin = "TgaImporter"_s;
else if(!data.size()) { else if(!data.size()) {
Error{} << "Trade::AnyImageImporter::openData(): file is empty"; Error{} << "Trade::AnyImageImporter::openData(): file is empty";
return; return;
@ -233,7 +233,7 @@ void AnyImageImporter::doOpenData(Containers::Array<char>&& data, DataFlags) {
if(data.size() > 2) signature |= UnsignedInt(UnsignedByte(data[2])) << 8; if(data.size() > 2) signature |= UnsignedInt(UnsignedByte(data[2])) << 8;
if(data.size() > 3) signature |= UnsignedInt(UnsignedByte(data[3])); if(data.size() > 3) signature |= UnsignedInt(UnsignedByte(data[3]));
/* If there's less than four bytes, cut the rest away */ /* If there's less than four bytes, cut the rest away */
Error{} << "Trade::AnyImageImporter::openData(): cannot determine the format from signature 0x" << Debug::nospace << Utility::formatString("{:.8x}", signature).substr(0, data.size() < 4 ? data.size()*2 : std::string::npos); Error{} << "Trade::AnyImageImporter::openData(): cannot determine the format from signature 0x" << Debug::nospace << Utility::format("{:.8x}", signature).prefix(Math::min(data.size(), std::size_t{4})*2);
return; return;
} }

2
src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h

@ -154,7 +154,7 @@ class MAGNUM_ANYIMAGEIMPORTER_EXPORT AnyImageImporter: public AbstractImporter {
explicit AnyImageImporter(PluginManager::Manager<AbstractImporter>& manager); explicit AnyImageImporter(PluginManager::Manager<AbstractImporter>& manager);
/** @brief Plugin manager constructor */ /** @brief Plugin manager constructor */
explicit AnyImageImporter(PluginManager::AbstractManager& manager, const std::string& plugin); explicit AnyImageImporter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin);
/** @brief Copying is not allowed */ /** @brief Copying is not allowed */
AnyImageImporter(const AnyImageImporter&) = delete; AnyImageImporter(const AnyImageImporter&) = delete;

1
src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp

@ -137,6 +137,7 @@ const struct {
/* There was a bug where the error message shifted a signed value, /* There was a bug where the error message shifted a signed value,
poisoning the output. It also was throwing away leading zero bytes. */ poisoning the output. It also was throwing away leading zero bytes. */
{"leading zeros, negative char", "\x00\xff\x00\xff"_s, "00ff00ff"}, {"leading zeros, negative char", "\x00\xff\x00\xff"_s, "00ff00ff"},
{"lots zero bytes", "\x00\x00\x00\x00"_s, "00000000"},
{"just one byte", "\x33"_s, "33"}, {"just one byte", "\x33"_s, "33"},
{"just one zero byte", "\x00"_s, "00"}, {"just one zero byte", "\x00"_s, "00"},
{"DDS, but no space", "DDS!"_s, "44445321"}, {"DDS, but no space", "DDS!"_s, "44445321"},

2
src/MagnumPlugins/AnySceneConverter/AnySceneConverter.cpp

@ -43,7 +43,7 @@ using namespace Containers::Literals;
AnySceneConverter::AnySceneConverter(PluginManager::Manager<AbstractSceneConverter>& manager): AbstractSceneConverter{manager} {} AnySceneConverter::AnySceneConverter(PluginManager::Manager<AbstractSceneConverter>& manager): AbstractSceneConverter{manager} {}
AnySceneConverter::AnySceneConverter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractSceneConverter{manager, plugin} {} AnySceneConverter::AnySceneConverter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin): AbstractSceneConverter{manager, plugin} {}
AnySceneConverter::~AnySceneConverter() = default; AnySceneConverter::~AnySceneConverter() = default;

2
src/MagnumPlugins/AnySceneConverter/AnySceneConverter.h

@ -111,7 +111,7 @@ class MAGNUM_ANYSCENECONVERTER_EXPORT AnySceneConverter: public AbstractSceneCon
explicit AnySceneConverter(PluginManager::Manager<AbstractSceneConverter>& manager); explicit AnySceneConverter(PluginManager::Manager<AbstractSceneConverter>& manager);
/** @brief Plugin manager constructor */ /** @brief Plugin manager constructor */
explicit AnySceneConverter(PluginManager::AbstractManager& manager, const std::string& plugin); explicit AnySceneConverter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin);
~AnySceneConverter(); ~AnySceneConverter();

125
src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp

@ -29,7 +29,8 @@
#include <Corrade/PluginManager/Manager.h> #include <Corrade/PluginManager/Manager.h>
#include <Corrade/PluginManager/PluginMetadata.h> #include <Corrade/PluginManager/PluginMetadata.h>
#include <Corrade/Utility/Assert.h> #include <Corrade/Utility/Assert.h>
#include <Corrade/Utility/DebugStl.h> #include <Corrade/Utility/DebugStl.h> /* for PluginMetadata::name() */
#include <Corrade/Utility/Path.h>
#include <Corrade/Utility/String.h> #include <Corrade/Utility/String.h>
#include "Magnum/Trade/AnimationData.h" #include "Magnum/Trade/AnimationData.h"
@ -55,9 +56,11 @@
namespace Magnum { namespace Trade { namespace Magnum { namespace Trade {
using namespace Containers::Literals;
AnySceneImporter::AnySceneImporter(PluginManager::Manager<AbstractImporter>& manager): AbstractImporter{manager} {} AnySceneImporter::AnySceneImporter(PluginManager::Manager<AbstractImporter>& manager): AbstractImporter{manager} {}
AnySceneImporter::AnySceneImporter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractImporter{manager, plugin} {} AnySceneImporter::AnySceneImporter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin): AbstractImporter{manager, plugin} {}
AnySceneImporter::~AnySceneImporter() = default; AnySceneImporter::~AnySceneImporter() = default;
@ -74,66 +77,68 @@ void AnySceneImporter::doClose() {
void AnySceneImporter::doOpenFile(const Containers::StringView filename) { void AnySceneImporter::doOpenFile(const Containers::StringView filename) {
CORRADE_INTERNAL_ASSERT(manager()); CORRADE_INTERNAL_ASSERT(manager());
/** @todo lowercase only the extension, once Directory::split() is done */ /* We don't detect any double extensions yet, so we can normalize just the
const std::string normalized = Utility::String::lowercase(filename); extension. In case we eventually might, it'd have to be split() instead
to save at least by normalizing just the filename and not the path. */
const Containers::String normalizedExtension = Utility::String::lowercase(Utility::Path::splitExtension(filename).second());
/* Detect the plugin from extension */ /* Detect the plugin from extension */
std::string plugin; Containers::StringView plugin;
if(Utility::String::endsWith(normalized, ".3ds") || if(normalizedExtension == ".3ds"_s ||
Utility::String::endsWith(normalized, ".ase")) normalizedExtension == ".ase"_s)
plugin = "3dsImporter"; plugin = "3dsImporter"_s;
else if(Utility::String::endsWith(normalized, ".ac")) else if(normalizedExtension == ".ac"_s)
plugin = "Ac3dImporter"; plugin = "Ac3dImporter"_s;
else if(Utility::String::endsWith(normalized, ".blend")) else if(normalizedExtension == ".blend"_s)
plugin = "BlenderImporter"; plugin = "BlenderImporter"_s;
else if(Utility::String::endsWith(normalized, ".bvh")) else if(normalizedExtension == ".bvh"_s)
plugin = "BvhImporter"; plugin = "BvhImporter"_s;
else if(Utility::String::endsWith(normalized, ".csm")) else if(normalizedExtension == ".csm"_s)
plugin = "CsmImporter"; plugin = "CsmImporter"_s;
else if(Utility::String::endsWith(normalized, ".dae")) else if(normalizedExtension == ".dae"_s)
plugin = "ColladaImporter"; plugin = "ColladaImporter"_s;
else if(Utility::String::endsWith(normalized, ".x")) else if(normalizedExtension == ".x"_s)
plugin = "DirectXImporter"; plugin = "DirectXImporter"_s;
else if(Utility::String::endsWith(normalized, ".dxf")) else if(normalizedExtension == ".dxf"_s)
plugin = "DxfImporter"; plugin = "DxfImporter"_s;
else if(Utility::String::endsWith(normalized, ".fbx")) else if(normalizedExtension == ".fbx"_s)
plugin = "FbxImporter"; plugin = "FbxImporter"_s;
else if(Utility::String::endsWith(normalized, ".gltf") || else if(normalizedExtension == ".gltf"_s ||
Utility::String::endsWith(normalized, ".glb")) normalizedExtension == ".glb"_s)
plugin = "GltfImporter"; plugin = "GltfImporter"_s;
else if(Utility::String::endsWith(normalized, ".ifc")) else if(normalizedExtension == ".ifc"_s)
plugin = "IfcImporter"; plugin = "IfcImporter"_s;
else if(Utility::String::endsWith(normalized, ".irrmesh") || else if(normalizedExtension == ".irrmesh"_s ||
Utility::String::endsWith(normalized, ".irr")) normalizedExtension == ".irr"_s)
plugin = "IrrlichtImporter"; plugin = "IrrlichtImporter"_s;
else if(Utility::String::endsWith(normalized, ".lwo") || else if(normalizedExtension == ".lwo"_s ||
Utility::String::endsWith(normalized, ".lws")) normalizedExtension == ".lws"_s)
plugin = "LightWaveImporter"; plugin = "LightWaveImporter"_s;
else if(Utility::String::endsWith(normalized, ".lxo")) else if(normalizedExtension == ".lxo"_s)
plugin = "ModoImporter"; plugin = "ModoImporter"_s;
else if(Utility::String::endsWith(normalized, ".ms3d")) else if(normalizedExtension == ".ms3d"_s)
plugin = "MilkshapeImporter"; plugin = "MilkshapeImporter"_s;
else if(Utility::String::endsWith(normalized, ".obj")) else if(normalizedExtension == ".obj"_s)
plugin = "ObjImporter"; plugin = "ObjImporter"_s;
else if(Utility::String::endsWith(normalized, ".xml")) else if(normalizedExtension == ".xml"_s)
plugin = "OgreImporter"; plugin = "OgreImporter"_s;
else if(Utility::String::endsWith(normalized, ".ogex")) else if(normalizedExtension == ".ogex"_s)
plugin = "OpenGexImporter"; plugin = "OpenGexImporter"_s;
else if(Utility::String::endsWith(normalized, ".ply")) else if(normalizedExtension == ".ply"_s)
plugin = "StanfordImporter"; plugin = "StanfordImporter"_s;
else if(Utility::String::endsWith(normalized, ".stl")) else if(normalizedExtension == ".stl"_s)
plugin = "StlImporter"; plugin = "StlImporter"_s;
else if(Utility::String::endsWith(normalized, ".cob") || else if(normalizedExtension == ".cob"_s ||
Utility::String::endsWith(normalized, ".scn")) normalizedExtension == ".scn"_s)
plugin = "TrueSpaceImporter"; plugin = "TrueSpaceImporter"_s;
else if(Utility::String::endsWith(normalized, ".3d")) else if(normalizedExtension == ".3d"_s)
plugin = "UnrealImporter"; plugin = "UnrealImporter"_s;
else if(Utility::String::endsWith(normalized, ".smd") || else if(normalizedExtension == ".smd"_s ||
Utility::String::endsWith(normalized, ".vta")) normalizedExtension == ".vta"_s)
plugin = "ValveImporter"; plugin = "ValveImporter"_s;
else if(Utility::String::endsWith(normalized, ".xgl") || else if(normalizedExtension == ".xgl"_s ||
Utility::String::endsWith(normalized, ".zgl")) normalizedExtension == ".zgl"_s)
plugin = "XglImporter"; plugin = "XglImporter"_s;
else { else {
Error{} << "Trade::AnySceneImporter::openFile(): cannot determine the format of" << filename; Error{} << "Trade::AnySceneImporter::openFile(): cannot determine the format of" << filename;
return; return;

2
src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h

@ -151,7 +151,7 @@ class MAGNUM_ANYSCENEIMPORTER_EXPORT AnySceneImporter: public AbstractImporter {
explicit AnySceneImporter(PluginManager::Manager<AbstractImporter>& manager); explicit AnySceneImporter(PluginManager::Manager<AbstractImporter>& manager);
/** @brief Plugin manager constructor */ /** @brief Plugin manager constructor */
explicit AnySceneImporter(PluginManager::AbstractManager& manager, const std::string& plugin); explicit AnySceneImporter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin);
~AnySceneImporter(); ~AnySceneImporter();

14
src/MagnumPlugins/AnyShaderConverter/AnyConverter.cpp

@ -31,7 +31,7 @@
#include <Corrade/PluginManager/PluginMetadata.h> #include <Corrade/PluginManager/PluginMetadata.h>
#include <Corrade/Utility/Assert.h> #include <Corrade/Utility/Assert.h>
#include <Corrade/Utility/DebugStl.h> /* for PluginMetadata::name() */ #include <Corrade/Utility/DebugStl.h> /* for PluginMetadata::name() */
#include <Corrade/Utility/FormatStl.h> #include <Corrade/Utility/Format.h>
#include <Corrade/Utility/Path.h> #include <Corrade/Utility/Path.h>
#include <Corrade/Utility/String.h> #include <Corrade/Utility/String.h>
@ -51,7 +51,7 @@ struct AnyConverter::State {
AnyConverter::AnyConverter(PluginManager::Manager<AbstractConverter>& manager): AbstractConverter{manager} {} AnyConverter::AnyConverter(PluginManager::Manager<AbstractConverter>& manager): AbstractConverter{manager} {}
AnyConverter::AnyConverter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractConverter{manager, plugin}, _state{InPlaceInit} {} AnyConverter::AnyConverter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin): AbstractConverter{manager, plugin}, _state{InPlaceInit} {}
AnyConverter::~AnyConverter() = default; AnyConverter::~AnyConverter() = default;
@ -186,7 +186,7 @@ std::pair<bool, Containers::String> AnyConverter::doValidateFile(const Stage sta
if(format.isEmpty()) return {}; if(format.isEmpty()) return {};
/* Decide on a plugin name based on the format */ /* Decide on a plugin name based on the format */
const std::string plugin = Utility::formatString("{}ShaderConverter", format); const Containers::String plugin = Utility::format("{}ShaderConverter", format);
/* Try to load the plugin */ /* Try to load the plugin */
if(!(manager()->load(plugin) & PluginManager::LoadState::Loaded)) { if(!(manager()->load(plugin) & PluginManager::LoadState::Loaded)) {
@ -242,7 +242,7 @@ std::pair<bool, Containers::String> AnyConverter::doValidateData(const Stage sta
Error{} << "ShaderTools::AnyConverter::validateData(): no input format specified"; Error{} << "ShaderTools::AnyConverter::validateData(): no input format specified";
return {}; return {};
} }
const std::string plugin = Utility::formatString("{}ShaderConverter", stringForFormat(_state->inputFormat)); const Containers::String plugin = Utility::format("{}ShaderConverter", stringForFormat(_state->inputFormat));
/* Try to load the plugin */ /* Try to load the plugin */
if(!(manager()->load(plugin) & PluginManager::LoadState::Loaded)) { if(!(manager()->load(plugin) & PluginManager::LoadState::Loaded)) {
@ -308,7 +308,7 @@ bool AnyConverter::doConvertFileToFile(const Stage stage, const Containers::Stri
/* Decide on a plugin name based on the format. This might result in /* Decide on a plugin name based on the format. This might result in
invalid combinations such as SpirvToGlslShaderConverter which can't be invalid combinations such as SpirvToGlslShaderConverter which can't be
really handled yet but I think that's okay for now. */ really handled yet but I think that's okay for now. */
const std::string plugin = Utility::formatString( const Containers::String plugin = Utility::format(
formatFrom == formatTo ? "{}ShaderConverter" : "{}To{}ShaderConverter", formatFrom == formatTo ? "{}ShaderConverter" : "{}To{}ShaderConverter",
formatFrom, formatTo); formatFrom, formatTo);
@ -393,7 +393,7 @@ Containers::Array<char> AnyConverter::doConvertFileToData(const Stage stage, con
/* Decide on a plugin name based on the format. This might result in /* Decide on a plugin name based on the format. This might result in
invalid combinations such as SpirvToGlslShaderConverter which can't be invalid combinations such as SpirvToGlslShaderConverter which can't be
really handled yet but I think that's okay for now. */ really handled yet but I think that's okay for now. */
const std::string plugin = Utility::formatString( const Containers::String plugin = Utility::format(
formatFrom == formatTo ? "{}ShaderConverter" : "{}To{}ShaderConverter", formatFrom == formatTo ? "{}ShaderConverter" : "{}To{}ShaderConverter",
formatFrom, formatTo); formatFrom, formatTo);
@ -476,7 +476,7 @@ Containers::Array<char> AnyConverter::doConvertDataToData(const Stage stage, con
} }
const Containers::StringView formatFrom = stringForFormat(_state->inputFormat); const Containers::StringView formatFrom = stringForFormat(_state->inputFormat);
const Containers::StringView formatTo = stringForFormat(_state->outputFormat); const Containers::StringView formatTo = stringForFormat(_state->outputFormat);
const std::string plugin = Utility::formatString( const Containers::String plugin = Utility::format(
formatFrom == formatTo ? "{}ShaderConverter" : "{}To{}ShaderConverter", formatFrom == formatTo ? "{}ShaderConverter" : "{}To{}ShaderConverter",
formatFrom, formatTo); formatFrom, formatTo);

2
src/MagnumPlugins/AnyShaderConverter/AnyConverter.h

@ -146,7 +146,7 @@ class MAGNUM_ANYSHADERCONVERTER_EXPORT AnyConverter: public AbstractConverter {
explicit AnyConverter(PluginManager::Manager<AbstractConverter>& manager); explicit AnyConverter(PluginManager::Manager<AbstractConverter>& manager);
/** @brief Plugin manager constructor */ /** @brief Plugin manager constructor */
explicit AnyConverter(PluginManager::AbstractManager& manager, const std::string& plugin); explicit AnyConverter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin);
~AnyConverter(); ~AnyConverter();

Loading…
Cancel
Save