From dccba881324172846917be1d87b67dda814b2e85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 24 Jul 2014 23:03:55 +0200 Subject: [PATCH 01/59] Added AnyImageImporter. Detects file type based on extension and delegates the operation to specialized importer plugin. --- .../AnyImageImporter/AnyImageImporter.conf | 0 .../AnyImageImporter/AnyImageImporter.cpp | 85 ++++++++++++++ .../AnyImageImporter/AnyImageImporter.h | 84 +++++++++++++ .../AnyImageImporter/CMakeLists.txt | 59 ++++++++++ .../AnyImageImporter/Test/CMakeLists.txt | 35 ++++++ .../AnyImageImporter/Test/Test.cpp | 111 ++++++++++++++++++ .../AnyImageImporter/Test/configure.h.cmake | 34 ++++++ .../AnyImageImporter/pluginRegistration.cpp | 29 +++++ 8 files changed, 437 insertions(+) create mode 100644 src/MagnumPlugins/AnyImageImporter/AnyImageImporter.conf create mode 100644 src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp create mode 100644 src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h create mode 100644 src/MagnumPlugins/AnyImageImporter/CMakeLists.txt create mode 100644 src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt create mode 100644 src/MagnumPlugins/AnyImageImporter/Test/Test.cpp create mode 100644 src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake create mode 100644 src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.conf b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.conf new file mode 100644 index 000000000..e69de29bb diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp new file mode 100644 index 000000000..a11564c52 --- /dev/null +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -0,0 +1,85 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include "AnyImageImporter.h" + +#include +#include +#include + +#include "Magnum/Trade/ImageData.h" + +namespace Magnum { namespace Trade { + +AnyImageImporter::AnyImageImporter(PluginManager::Manager& manager): AbstractImporter{manager} {} + +AnyImageImporter::AnyImageImporter(PluginManager::AbstractManager& manager, std::string plugin): AbstractImporter{manager, std::move(plugin)} {} + +AnyImageImporter::~AnyImageImporter() = default; + +auto AnyImageImporter::doFeatures() const -> Features { return {}; } + +bool AnyImageImporter::doIsOpened() const { return !!_in; } + +void AnyImageImporter::doClose() { + _in = nullptr; +} + +void AnyImageImporter::doOpenFile(const std::string& filename) { + CORRADE_INTERNAL_ASSERT(manager()); + + /* Detect type from extension */ + std::string plugin; + if(Utility::String::endsWith(filename, ".tga")) + plugin = "TgaImporter"; + else if(Utility::String::endsWith(filename, ".png")) + plugin = "PngImporter"; + else if(Utility::String::endsWith(filename, ".jpg") || Utility::String::endsWith(filename, ".jpeg")) + plugin = "JpegImporter"; + else { + Error() << "Trade::AnyImageImporter::openFile(): cannot determine type of file" << filename; + return; + } + + /* Try to load the plugin */ + if(!(manager()->load(plugin) & PluginManager::LoadState::Loaded)) { + Error() << "Trade::AnyImageImporter::openFile(): cannot load" << plugin << "plugin"; + return; + } + + /* Try to open the file (error output should be printed by the plugin + itself) */ + std::unique_ptr importer = static_cast*>(manager())->instance(plugin); + if(!importer->openFile(filename)) return; + + /* Success, save the instance */ + _in = std::move(importer); +} + +UnsignedInt AnyImageImporter::doImage2DCount() const { return _in->image2DCount(); } + +std::optional AnyImageImporter::doImage2D(const UnsignedInt id) { return _in->image2D(id); } + +}} diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h new file mode 100644 index 000000000..5e1432523 --- /dev/null +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -0,0 +1,84 @@ +#ifndef Magnum_Trade_AnyImageImporter_h +#define Magnum_Trade_AnyImageImporter_h +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +/** @file + * @brief Class Magnum::Trade::AnyImageImporter + */ + +#include +#include + +#ifndef DOXYGEN_GENERATING_OUTPUT + #if defined(AnyImageImporter_EXPORTS) || defined(AnyImageImporterObjects_EXPORTS) + #define MAGNUM_ANYIMAGEIMPORTER_EXPORT CORRADE_VISIBILITY_EXPORT + #else + #define MAGNUM_ANYIMAGEIMPORTER_EXPORT CORRADE_VISIBILITY_IMPORT + #endif + #define MAGNUM_ANYIMAGEIMPORTER_LOCAL CORRADE_VISIBILITY_LOCAL +#endif + +namespace Magnum { namespace Trade { + +/** +@brief Any image importer plugin + +Detects file type based on file extension, then loads either +@ref TgaImporter, @ref PngImporter or @ref JpegImporter and tries to open the +file with it. See documentation of each particular plugin for more information. + +Only loading from files is supported. +*/ +class MAGNUM_ANYIMAGEIMPORTER_EXPORT AnyImageImporter: public AbstractImporter { + public: + /** + * @brief Constructor + * + * The plugin needs access to plugin manager to function properly. + */ + explicit AnyImageImporter(PluginManager::Manager& manager); + + /** @brief Plugin manager constructor */ + explicit AnyImageImporter(PluginManager::AbstractManager& manager, std::string plugin); + + ~AnyImageImporter(); + + private: + MAGNUM_ANYIMAGEIMPORTER_LOCAL Features doFeatures() const override; + MAGNUM_ANYIMAGEIMPORTER_LOCAL bool doIsOpened() const override; + MAGNUM_ANYIMAGEIMPORTER_LOCAL void doClose() override; + MAGNUM_ANYIMAGEIMPORTER_LOCAL void doOpenFile(const std::string& filename) override; + + MAGNUM_ANYIMAGEIMPORTER_LOCAL UnsignedInt doImage2DCount() const override; + MAGNUM_ANYIMAGEIMPORTER_LOCAL std::optional doImage2D(UnsignedInt id) override; + + private: + std::unique_ptr _in; +}; + +}} + +#endif diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt new file mode 100644 index 000000000..5fbe7c61e --- /dev/null +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -0,0 +1,59 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013, 2014 +# Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +set(AnyImageImporter_SRCS + AnyImageImporter.cpp) + +set(AnyImageImporter_HEADERS + AnyImageImporter.h) + +add_library(AnyImageImporterObjects OBJECT ${AnyImageImporter_SRCS}) +set_target_properties(AnyImageImporterObjects PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") + +add_plugin(AnyImageImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_IMPORTER_RELEASE_INSTALL_DIR} + AnyImageImporter.conf + $ + pluginRegistration.cpp) +target_link_libraries(AnyImageImporter + ${MAGNUM_LIBRARIES}) + +install(FILES ${AnyImageImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) + +if(BUILD_TESTS) + add_library(MagnumAnyImageImporterTestLib STATIC $) + set_target_properties(MagnumAnyImageImporterTestLib PROPERTIES DEBUG_POSTFIX "-d") + target_link_libraries(MagnumAnyImageImporterTestLib ${MAGNUM_LIBRARIES}) + + # On Windows we need to install first and then run the tests to avoid "DLL + # not found" hell, thus we need to install this too + if(CORRADE_TARGET_WINDOWS AND NOT CMAKE_CROSSCOMPILING) + install(TARGETS MagnumAnyImageImporterTestLib + RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} + LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} + ARCHIVE DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) + endif() + + add_subdirectory(Test) +endif() diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt new file mode 100644 index 000000000..16c88cb9b --- /dev/null +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -0,0 +1,35 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013, 2014 +# Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) + +set(TGA_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/ColladaImporter/Test/ColladaImporterTestFiles/image.tga) +set(JPEG_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/JpegImporter/Test/rgb.jpg) +set(PNG_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/PngImporter/Test/rgb.png) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/configure.h) + +corrade_add_test(AnyImageImporterTest Test.cpp LIBRARIES MagnumAnyImageImporterTestLib) diff --git a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp new file mode 100644 index 000000000..71a14e69d --- /dev/null +++ b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp @@ -0,0 +1,111 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include + +#include "Magnum/Trade/ImageData.h" + +#include "MagnumPlugins/AnyImageImporter/AnyImageImporter.h" + +#include "configure.h" + +namespace Magnum { namespace Trade { namespace Test { + +class AnyImageImporterTest: public TestSuite::Tester { + public: + explicit AnyImageImporterTest(); + + void tga(); + void jpeg(); + void png(); + + void unknown(); + + private: + PluginManager::Manager _manager; +}; + +AnyImageImporterTest::AnyImageImporterTest(): _manager{MAGNUM_PLUGINS_IMPORTER_DIR} { + addTests({&AnyImageImporterTest::tga, + &AnyImageImporterTest::jpeg, + &AnyImageImporterTest::png, + + &AnyImageImporterTest::unknown}); +} + +void AnyImageImporterTest::tga() { + if(_manager.loadState("TgaImporter") == PluginManager::LoadState::NotFound) + CORRADE_SKIP("TgaImporter plugin not found, cannot test"); + + AnyImageImporter importer{_manager}; + CORRADE_VERIFY(importer.openFile(TGA_FILE)); + + /* Check only size, as it is good enough proof that it is working */ + std::optional image = importer.image2D(0); + CORRADE_VERIFY(image); + CORRADE_COMPARE(image->size(), Vector2i(2, 3)); +} + +void AnyImageImporterTest::jpeg() { + if(_manager.loadState("JpegImporter") == PluginManager::LoadState::NotFound) + CORRADE_SKIP("JpegImporter plugin not found, cannot test"); + + AnyImageImporter importer{_manager}; + CORRADE_VERIFY(importer.openFile(JPEG_FILE)); + + /* Check only size, as it is good enough proof that it is working */ + std::optional image = importer.image2D(0); + CORRADE_VERIFY(image); + CORRADE_COMPARE(image->size(), Vector2i(3, 2)); +} + +void AnyImageImporterTest::png() { + if(_manager.loadState("PngImporter") == PluginManager::LoadState::NotFound) + CORRADE_SKIP("PngImporter plugin not found, cannot test"); + + AnyImageImporter importer{_manager}; + CORRADE_VERIFY(importer.openFile(PNG_FILE)); + + /* Check only size, as it is good enough proof that it is working */ + std::optional image = importer.image2D(0); + CORRADE_VERIFY(image); + CORRADE_COMPARE(image->size(), Vector2i(3, 2)); +} + +void AnyImageImporterTest::unknown() { + std::ostringstream output; + Error::setOutput(&output); + + AnyImageImporter importer{_manager}; + CORRADE_VERIFY(!importer.openFile("image.xcf")); + + CORRADE_COMPARE(output.str(), "Trade::AnyImageImporter::openFile(): cannot determine type of file image.xcf\n"); +} + +}}} + +CORRADE_TEST_MAIN(Magnum::Trade::Test::AnyImageImporterTest) diff --git a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake new file mode 100644 index 000000000..538430d39 --- /dev/null +++ b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake @@ -0,0 +1,34 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#ifdef CORRADE_IS_DEBUG_BUILD +#define MAGNUM_PLUGINS_IMPORTER_DIR "${MAGNUM_PLUGINS_IMPORTER_DEBUG_DIR}" +#else +#define MAGNUM_PLUGINS_IMPORTER_DIR "${MAGNUM_PLUGINS_IMPORTER_DIR}" +#endif + +#define TGA_FILE "${TGA_FILE}" +#define JPEG_FILE "${JPEG_FILE}" +#define PNG_FILE "${PNG_FILE}" diff --git a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp new file mode 100644 index 000000000..c92852bc8 --- /dev/null +++ b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp @@ -0,0 +1,29 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include "AnyImageImporter.h" + +CORRADE_PLUGIN_REGISTER(AnyImageImporter, Magnum::Trade::AnyImageImporter, + "cz.mosra.magnum.Trade.AbstractImporter/0.3") From f51cae27627f3442c8a0f459498fd29ade46fe3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 27 Jul 2014 11:35:42 +0200 Subject: [PATCH 02/59] Doc++ --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 5e1432523..8a840044b 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -26,7 +26,7 @@ */ /** @file - * @brief Class Magnum::Trade::AnyImageImporter + * @brief Class @ref Magnum::Trade::AnyImageImporter */ #include @@ -54,11 +54,7 @@ Only loading from files is supported. */ class MAGNUM_ANYIMAGEIMPORTER_EXPORT AnyImageImporter: public AbstractImporter { public: - /** - * @brief Constructor - * - * The plugin needs access to plugin manager to function properly. - */ + /** @brief Constructor with access to plugin manager */ explicit AnyImageImporter(PluginManager::Manager& manager); /** @brief Plugin manager constructor */ From 43d1e60b6a5a6a4d1ba7bd7eee162cafae8e0200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 2 Aug 2014 13:48:35 +0200 Subject: [PATCH 03/59] Display all headers in project view of IDEs. Finally makes development with QtCreator usable. --- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index 5fbe7c61e..ed4964be2 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -29,7 +29,9 @@ set(AnyImageImporter_SRCS set(AnyImageImporter_HEADERS AnyImageImporter.h) -add_library(AnyImageImporterObjects OBJECT ${AnyImageImporter_SRCS}) +add_library(AnyImageImporterObjects OBJECT + ${AnyImageImporter_SRCS} + ${AnyImageImporter_HEADERS}) set_target_properties(AnyImageImporterObjects PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") add_plugin(AnyImageImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_IMPORTER_RELEASE_INSTALL_DIR} From 990abf5022238de59940e2380f837edaad072852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 1 Oct 2014 21:32:25 +0200 Subject: [PATCH 04/59] AnyImageImporter: support also BMP, GIF, HDR, JPEG, PIC and PSD formats. --- .../AnyImageImporter/AnyImageImporter.cpp | 18 ++++++++++++++---- .../AnyImageImporter/AnyImageImporter.h | 17 ++++++++++++++--- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index a11564c52..51c287213 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -52,12 +52,22 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { /* Detect type from extension */ std::string plugin; - if(Utility::String::endsWith(filename, ".tga")) - plugin = "TgaImporter"; - else if(Utility::String::endsWith(filename, ".png")) - plugin = "PngImporter"; + if(Utility::String::endsWith(filename, ".bmp")) + plugin = "BmpImporter"; + else if(Utility::String::endsWith(filename, ".gif")) + plugin = "GifImporter"; + else if(Utility::String::endsWith(filename, ".hdr")) + plugin = "HdrImporter"; else if(Utility::String::endsWith(filename, ".jpg") || Utility::String::endsWith(filename, ".jpeg")) plugin = "JpegImporter"; + else if(Utility::String::endsWith(filename, ".pic")) + plugin = "PicImporter"; + else if(Utility::String::endsWith(filename, ".png")) + plugin = "PngImporter"; + else if(Utility::String::endsWith(filename, ".psd")) + plugin = "PsdImporter"; + else if(Utility::String::endsWith(filename, ".tga")) + plugin = "TgaImporter"; else { Error() << "Trade::AnyImageImporter::openFile(): cannot determine type of file" << filename; return; diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 8a840044b..765ce161b 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -46,9 +46,20 @@ namespace Magnum { namespace Trade { /** @brief Any image importer plugin -Detects file type based on file extension, then loads either -@ref TgaImporter, @ref PngImporter or @ref JpegImporter and tries to open the -file with it. See documentation of each particular plugin for more information. +Detects file type based on file extension, loads corresponding plugin and then +tries to open the file with it. Supported formats: + +- BMP (`*.bmp`), loaded with any plugin that provides `%BmpImporter` +- GIF (`*.gif`), loaded with any plugin that provides `%GifImporter` +- HDR (`*.hdr`), loaded with any plugin that provides `%HdrImporter` +- JPEG (`*.jpg`, `*.jpeg`), loaded with @ref JpegImporter or any other plugin + that provides it +- PIC (`*.pic`), loaded with any plugin that provides `%PicImporter` +- PNG (`*.png`), loaded with @ref PngImporter or any other plugin that + provides it +- PSD (`*.psd`), loaded with any plugin that provides `%PsdImporter` +- TGA (`*.tga`), loaded with @ref TgaImporter or any other plugin that + provides it Only loading from files is supported. */ From 4becb73758441a9b0771a442c33193220454c3ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 4 Oct 2014 19:10:17 +0200 Subject: [PATCH 05/59] AnyImageImporter: fix Windows compilation. --- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index ed4964be2..a6044be3d 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -32,7 +32,7 @@ set(AnyImageImporter_HEADERS add_library(AnyImageImporterObjects OBJECT ${AnyImageImporter_SRCS} ${AnyImageImporter_HEADERS}) -set_target_properties(AnyImageImporterObjects PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") +set_target_properties(AnyImageImporterObjects PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS} -DAnyImageImporterObjects_EXPORTS") add_plugin(AnyImageImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_IMPORTER_RELEASE_INSTALL_DIR} AnyImageImporter.conf From b3b42602416783979bfdb1dc2490720f63143987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 5 Oct 2014 17:03:42 +0200 Subject: [PATCH 06/59] Use POSITION_INDEPENDENT_CODE CMake property. Added new BUILD_STATIC_PIC configuration option, PIC is now set only when needed/requested. --- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index a6044be3d..760d2a7e7 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -29,17 +29,25 @@ set(AnyImageImporter_SRCS set(AnyImageImporter_HEADERS AnyImageImporter.h) +# Objects shared between plugin and test library add_library(AnyImageImporterObjects OBJECT ${AnyImageImporter_SRCS} ${AnyImageImporter_HEADERS}) -set_target_properties(AnyImageImporterObjects PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS} -DAnyImageImporterObjects_EXPORTS") +set_target_properties(AnyImageImporterObjects PROPERTIES COMPILE_FLAGS "-DAnyImageImporterObjects_EXPORTS") +if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) + set_target_properties(AnyImageImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() +# AnyImageImporter plugin add_plugin(AnyImageImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_IMPORTER_RELEASE_INSTALL_DIR} AnyImageImporter.conf $ pluginRegistration.cpp) -target_link_libraries(AnyImageImporter - ${MAGNUM_LIBRARIES}) +if(BUILD_STATIC_PIC) + set_target_properties(AnyImageImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() + +target_link_libraries(AnyImageImporter ${MAGNUM_LIBRARIES}) install(FILES ${AnyImageImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) From b3b45507fe8d977578ac98764bff4675cb92be92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 5 Oct 2014 17:09:20 +0200 Subject: [PATCH 07/59] Build test libraries as static. Removes the need to export symbols for plugins which otherwise don't need that, we then also don't have to install the test library on Windows. --- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index 760d2a7e7..505b16b94 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -53,17 +53,6 @@ install(FILES ${AnyImageImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_I if(BUILD_TESTS) add_library(MagnumAnyImageImporterTestLib STATIC $) - set_target_properties(MagnumAnyImageImporterTestLib PROPERTIES DEBUG_POSTFIX "-d") target_link_libraries(MagnumAnyImageImporterTestLib ${MAGNUM_LIBRARIES}) - - # On Windows we need to install first and then run the tests to avoid "DLL - # not found" hell, thus we need to install this too - if(CORRADE_TARGET_WINDOWS AND NOT CMAKE_CROSSCOMPILING) - install(TARGETS MagnumAnyImageImporterTestLib - RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} - LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} - ARCHIVE DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) - endif() - add_subdirectory(Test) endif() From 8a7831e90dc14fb2a0b65ac9ce8d503c5451d6a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 27 Oct 2014 23:07:08 +0100 Subject: [PATCH 08/59] Removed autolink-preventing % noise. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 765ce161b..7c9a85853 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -49,15 +49,15 @@ namespace Magnum { namespace Trade { Detects file type based on file extension, loads corresponding plugin and then tries to open the file with it. Supported formats: -- BMP (`*.bmp`), loaded with any plugin that provides `%BmpImporter` -- GIF (`*.gif`), loaded with any plugin that provides `%GifImporter` -- HDR (`*.hdr`), loaded with any plugin that provides `%HdrImporter` +- BMP (`*.bmp`), loaded with any plugin that provides `BmpImporter` +- GIF (`*.gif`), loaded with any plugin that provides `GifImporter` +- HDR (`*.hdr`), loaded with any plugin that provides `HdrImporter` - JPEG (`*.jpg`, `*.jpeg`), loaded with @ref JpegImporter or any other plugin that provides it -- PIC (`*.pic`), loaded with any plugin that provides `%PicImporter` +- PIC (`*.pic`), loaded with any plugin that provides `PicImporter` - PNG (`*.png`), loaded with @ref PngImporter or any other plugin that provides it -- PSD (`*.psd`), loaded with any plugin that provides `%PsdImporter` +- PSD (`*.psd`), loaded with any plugin that provides `PsdImporter` - TGA (`*.tga`), loaded with @ref TgaImporter or any other plugin that provides it From 6456883cd3e39dc18dd4da5145833a064b3acf1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 7 Nov 2014 23:50:08 +0100 Subject: [PATCH 09/59] AnyImageImporter: include cleanup. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 7c9a85853..5bdd50450 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -29,7 +29,6 @@ * @brief Class @ref Magnum::Trade::AnyImageImporter */ -#include #include #ifndef DOXYGEN_GENERATING_OUTPUT From 3fca35c81d176cfd53eb99d5db37a503a4e6de1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 23 Nov 2014 19:12:53 +0100 Subject: [PATCH 10/59] Added plugin AnySceneImporter. Similar to AnyImageImporter, but for whole scenes with meshes, objects etc. --- .../AnySceneImporter/AnySceneImporter.conf | 0 .../AnySceneImporter/AnySceneImporter.cpp | 152 ++++++++++++++++++ .../AnySceneImporter/AnySceneImporter.h | 135 ++++++++++++++++ .../AnySceneImporter/CMakeLists.txt | 58 +++++++ .../AnySceneImporter/Test/CMakeLists.txt | 34 ++++ .../AnySceneImporter/Test/Test.cpp | 97 +++++++++++ .../AnySceneImporter/Test/configure.h.cmake | 33 ++++ .../AnySceneImporter/Test/mesh.obj | 10 ++ .../AnySceneImporter/pluginRegistration.cpp | 29 ++++ 9 files changed, 548 insertions(+) create mode 100644 src/MagnumPlugins/AnySceneImporter/AnySceneImporter.conf create mode 100644 src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp create mode 100644 src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h create mode 100644 src/MagnumPlugins/AnySceneImporter/CMakeLists.txt create mode 100644 src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt create mode 100644 src/MagnumPlugins/AnySceneImporter/Test/Test.cpp create mode 100644 src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake create mode 100644 src/MagnumPlugins/AnySceneImporter/Test/mesh.obj create mode 100644 src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.conf b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.conf new file mode 100644 index 000000000..e69de29bb diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp new file mode 100644 index 000000000..5abca3132 --- /dev/null +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -0,0 +1,152 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include "AnySceneImporter.h" + +#include +#include +#include + +#include "Magnum/Trade/AbstractMaterialData.h" +#include "Magnum/Trade/CameraData.h" +#include "Magnum/Trade/ImageData.h" +#include "Magnum/Trade/LightData.h" +#include "Magnum/Trade/MeshData2D.h" +#include "Magnum/Trade/MeshData3D.h" +#include "Magnum/Trade/ObjectData2D.h" +#include "Magnum/Trade/ObjectData3D.h" +#include "Magnum/Trade/SceneData.h" +#include "Magnum/Trade/TextureData.h" + +namespace Magnum { namespace Trade { + +AnySceneImporter::AnySceneImporter(PluginManager::Manager& manager): AbstractImporter{manager} {} + +AnySceneImporter::AnySceneImporter(PluginManager::AbstractManager& manager, std::string plugin): AbstractImporter{manager, std::move(plugin)} {} + +AnySceneImporter::~AnySceneImporter() = default; + +auto AnySceneImporter::doFeatures() const -> Features { return {}; } + +bool AnySceneImporter::doIsOpened() const { return !!_in; } + +void AnySceneImporter::doClose() { + _in = nullptr; +} + +void AnySceneImporter::doOpenFile(const std::string& filename) { + CORRADE_INTERNAL_ASSERT(manager()); + + /* Detect type from extension */ + std::string plugin; + if(Utility::String::endsWith(filename, ".obj")) + plugin = "ObjImporter"; + else if(Utility::String::endsWith(filename, ".dae")) + plugin = "ColladaImporter"; + else if(Utility::String::endsWith(filename, ".ply")) + plugin = "StanfordImporter"; + else { + Error() << "Trade::AnySceneImporter::openFile(): cannot determine type of file" << filename; + return; + } + + /* Try to load the plugin */ + if(!(manager()->load(plugin) & PluginManager::LoadState::Loaded)) { + Error() << "Trade::AnySceneImporter::openFile(): cannot load" << plugin << "plugin"; + return; + } + + /* Try to open the file (error output should be printed by the plugin + itself) */ + std::unique_ptr importer = static_cast*>(manager())->instance(plugin); + if(!importer->openFile(filename)) return; + + /* Success, save the instance */ + _in = std::move(importer); +} + +Int AnySceneImporter::doDefaultScene() { return _in->defaultScene(); } + +UnsignedInt AnySceneImporter::doSceneCount() const { return _in->sceneCount(); } +Int AnySceneImporter::doSceneForName(const std::string& name) { return _in->sceneForName(name); } +std::string AnySceneImporter::doSceneName(const UnsignedInt id) { return _in->sceneName(id); } +std::optional AnySceneImporter::doScene(const UnsignedInt id) { return _in->scene(id); } + +UnsignedInt AnySceneImporter::doLightCount() const { return _in->lightCount(); } +Int AnySceneImporter::doLightForName(const std::string& name) { return _in->lightForName(name); } +std::string AnySceneImporter::doLightName(const UnsignedInt id) { return _in->lightName(id); } +std::optional AnySceneImporter::doLight(const UnsignedInt id) { return _in->light(id); } + +UnsignedInt AnySceneImporter::doCameraCount() const { return _in->cameraCount(); } +Int AnySceneImporter::doCameraForName(const std::string& name) { return _in->cameraForName(name); } +std::string AnySceneImporter::doCameraName(const UnsignedInt id) { return _in->cameraName(id); } +std::optional AnySceneImporter::doCamera(const UnsignedInt id) { return _in->camera(id); } + +UnsignedInt AnySceneImporter::doObject2DCount() const { return _in->object2DCount(); } +Int AnySceneImporter::doObject2DForName(const std::string& name) { return _in->object2DForName(name); } +std::string AnySceneImporter::doObject2DName(const UnsignedInt id) { return _in->object2DName(id); } +std::unique_ptr AnySceneImporter::doObject2D(const UnsignedInt id) { return _in->object2D(id); } + +UnsignedInt AnySceneImporter::doObject3DCount() const { return _in->object3DCount(); } +Int AnySceneImporter::doObject3DForName(const std::string& name) { return _in->object3DForName(name); } +std::string AnySceneImporter::doObject3DName(const UnsignedInt id) { return _in->object3DName(id); } +std::unique_ptr AnySceneImporter::doObject3D(const UnsignedInt id) { return _in->object3D(id); } + +UnsignedInt AnySceneImporter::doMesh2DCount() const { return _in->mesh2DCount(); } +Int AnySceneImporter::doMesh2DForName(const std::string& name) { return _in->mesh2DForName(name); } +std::string AnySceneImporter::doMesh2DName(const UnsignedInt id) { return _in->mesh2DName(id); } +std::optional AnySceneImporter::doMesh2D(const UnsignedInt id) { return _in->mesh2D(id); } + +UnsignedInt AnySceneImporter::doMesh3DCount() const { return _in->mesh3DCount(); } +Int AnySceneImporter::doMesh3DForName(const std::string& name) { return _in->mesh3DForName(name); } +std::string AnySceneImporter::doMesh3DName(const UnsignedInt id) { return _in->mesh3DName(id); } +std::optional AnySceneImporter::doMesh3D(const UnsignedInt id) { return _in->mesh3D(id); } + +UnsignedInt AnySceneImporter::doMaterialCount() const { return _in->materialCount(); } +Int AnySceneImporter::doMaterialForName(const std::string& name) { return _in->materialForName(name); } +std::string AnySceneImporter::doMaterialName(const UnsignedInt id) { return _in->materialName(id); } +std::unique_ptr AnySceneImporter::doMaterial(const UnsignedInt id) { return _in->material(id); } + +UnsignedInt AnySceneImporter::doTextureCount() const { return _in->textureCount(); } +Int AnySceneImporter::doTextureForName(const std::string& name) { return _in->textureForName(name); } +std::string AnySceneImporter::doTextureName(const UnsignedInt id) { return _in->textureName(id); } +std::optional AnySceneImporter::doTexture(const UnsignedInt id) { return _in->texture(id); } + +UnsignedInt AnySceneImporter::doImage1DCount() const { return _in->image1DCount(); } +Int AnySceneImporter::doImage1DForName(const std::string& name) { return _in->image1DForName(name); } +std::string AnySceneImporter::doImage1DName(const UnsignedInt id) { return _in->image1DName(id); } +std::optional AnySceneImporter::doImage1D(const UnsignedInt id) { return _in->image1D(id); } + +UnsignedInt AnySceneImporter::doImage2DCount() const { return _in->image2DCount(); } +Int AnySceneImporter::doImage2DForName(const std::string& name) { return _in->image2DForName(name); } +std::string AnySceneImporter::doImage2DName(const UnsignedInt id) { return _in->image2DName(id); } +std::optional AnySceneImporter::doImage2D(const UnsignedInt id) { return _in->image2D(id); } + +UnsignedInt AnySceneImporter::doImage3DCount() const { return _in->image3DCount(); } +Int AnySceneImporter::doImage3DForName(const std::string& name) { return _in->image3DForName(name); } +std::string AnySceneImporter::doImage3DName(const UnsignedInt id) { return _in->image3DName(id); } +std::optional AnySceneImporter::doImage3D(const UnsignedInt id) { return _in->image3D(id); } + +}} diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h new file mode 100644 index 000000000..14501ca2c --- /dev/null +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -0,0 +1,135 @@ +#ifndef Magnum_Trade_AnySceneImporter_h +#define Magnum_Trade_AnySceneImporter_h +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +/** @file + * @brief Class @ref Magnum::Trade::AnySceneImporter + */ + +#include + +namespace Magnum { namespace Trade { + +/** +@brief Any scene importer plugin + +Detects file type based on file extension, loads corresponding plugin and then +tries to open the file with it. Supported formats: + +- OBJ (`*.obj`), loaded with @ref ObjImporter or any other plugin that + provides it +- COLLADA (`*.dae`), loaded with @ref ColladaImporter or any other plugin + that provides it +- Stanford (`*.ply`), loaded with @ref StanfordImporter or any other plugin + that provides it + +Only loading from files is supported. +*/ +class AnySceneImporter: public AbstractImporter { + public: + /** @brief Constructor with access to plugin manager */ + explicit AnySceneImporter(PluginManager::Manager& manager); + + /** @brief Plugin manager constructor */ + explicit AnySceneImporter(PluginManager::AbstractManager& manager, std::string plugin); + + ~AnySceneImporter(); + + private: + Features doFeatures() const override; + bool doIsOpened() const override; + void doClose() override; + void doOpenFile(const std::string& filename) override; + + Int doDefaultScene() override; + + UnsignedInt doSceneCount() const override; + Int doSceneForName(const std::string& name) override; + std::string doSceneName(UnsignedInt id) override; + std::optional doScene(UnsignedInt id) override; + + UnsignedInt doLightCount() const override; + Int doLightForName(const std::string& name) override; + std::string doLightName(UnsignedInt id) override; + std::optional doLight(UnsignedInt id) override; + + UnsignedInt doCameraCount() const override; + Int doCameraForName(const std::string& name) override; + std::string doCameraName(UnsignedInt id) override; + std::optional doCamera(UnsignedInt id) override; + + UnsignedInt doObject2DCount() const override; + Int doObject2DForName(const std::string& name) override; + std::string doObject2DName(UnsignedInt id) override; + std::unique_ptr doObject2D(UnsignedInt id) override; + + UnsignedInt doObject3DCount() const override; + Int doObject3DForName(const std::string& name) override; + std::string doObject3DName(UnsignedInt id) override; + std::unique_ptr doObject3D(UnsignedInt id) override; + + UnsignedInt doMesh2DCount() const override; + Int doMesh2DForName(const std::string& name) override; + std::string doMesh2DName(UnsignedInt id) override; + std::optional doMesh2D(UnsignedInt id) override; + + UnsignedInt doMesh3DCount() const override; + Int doMesh3DForName(const std::string& name) override; + std::string doMesh3DName(UnsignedInt id) override; + std::optional doMesh3D(UnsignedInt id) override; + + UnsignedInt doMaterialCount() const override; + Int doMaterialForName(const std::string& name) override; + std::string doMaterialName(UnsignedInt id) override; + std::unique_ptr doMaterial(UnsignedInt id) override; + + UnsignedInt doTextureCount() const override; + Int doTextureForName(const std::string& name) override; + std::string doTextureName(UnsignedInt id) override; + std::optional doTexture(UnsignedInt id) override; + + UnsignedInt doImage1DCount() const override; + Int doImage1DForName(const std::string& name) override; + std::string doImage1DName(UnsignedInt id) override; + std::optional doImage1D(UnsignedInt id) override; + + UnsignedInt doImage2DCount() const override; + Int doImage2DForName(const std::string& name) override; + std::string doImage2DName(UnsignedInt id) override; + std::optional doImage2D(UnsignedInt id) override; + + UnsignedInt doImage3DCount() const override; + Int doImage3DForName(const std::string& name) override; + std::string doImage3DName(UnsignedInt id) override; + std::optional doImage3D(UnsignedInt id) override; + + private: + std::unique_ptr _in; +}; + +}} + +#endif diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt new file mode 100644 index 000000000..544a4a073 --- /dev/null +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -0,0 +1,58 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013, 2014 +# Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +set(AnySceneImporter_SRCS + AnySceneImporter.cpp) + +set(AnySceneImporter_HEADERS + AnySceneImporter.h) + +# Objects shared between plugin and test library +add_library(AnySceneImporterObjects OBJECT + ${AnySceneImporter_SRCS} + ${AnySceneImporter_HEADERS}) +set_target_properties(AnySceneImporterObjects PROPERTIES COMPILE_FLAGS "-DAnySceneImporterObjects_EXPORTS") +if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) + set_target_properties(AnySceneImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() + +# AnySceneImporter plugin +add_plugin(AnySceneImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_IMPORTER_RELEASE_INSTALL_DIR} + AnySceneImporter.conf + $ + pluginRegistration.cpp) +if(BUILD_STATIC_PIC) + set_target_properties(AnySceneImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() + +target_link_libraries(AnySceneImporter ${MAGNUM_LIBRARIES}) + +install(FILES ${AnySceneImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter) + +if(BUILD_TESTS) + add_library(MagnumAnySceneImporterTestLib STATIC $) + target_link_libraries(MagnumAnySceneImporterTestLib ${MAGNUM_LIBRARIES}) + add_subdirectory(Test) +endif() diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt new file mode 100644 index 000000000..375e9eb4d --- /dev/null +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -0,0 +1,34 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013, 2014 +# Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) + +set(OBJ_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj) +set(PLY_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/StanfordImporter/Test/common.ply) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/configure.h) + +corrade_add_test(AnySceneImporterTest Test.cpp LIBRARIES MagnumAnySceneImporterTestLib) diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp new file mode 100644 index 000000000..6a04674b8 --- /dev/null +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -0,0 +1,97 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include + +#include "Magnum/Trade/ImageData.h" +#include + +#include "MagnumPlugins/AnySceneImporter/AnySceneImporter.h" + +#include "configure.h" + +namespace Magnum { namespace Trade { namespace Test { + +class AnySceneImporterTest: public TestSuite::Tester { + public: + explicit AnySceneImporterTest(); + + void obj(); + void ply(); + + void unknown(); + + private: + PluginManager::Manager _manager; +}; + +AnySceneImporterTest::AnySceneImporterTest(): _manager{MAGNUM_PLUGINS_IMPORTER_DIR} { + addTests({&AnySceneImporterTest::obj, + &AnySceneImporterTest::ply, + + &AnySceneImporterTest::unknown}); +} + +void AnySceneImporterTest::obj() { + if(_manager.loadState("ObjImporter") == PluginManager::LoadState::NotFound) + CORRADE_SKIP("ObjImporter plugin not found, cannot test"); + + AnySceneImporter importer{_manager}; + CORRADE_VERIFY(importer.openFile(OBJ_FILE)); + + /* Check only size, as it is good enough proof that it is working */ + std::optional mesh = importer.mesh3D(0); + CORRADE_VERIFY(mesh); + CORRADE_COMPARE(mesh->positions(0).size(), 3); +} + +void AnySceneImporterTest::ply() { + if(_manager.loadState("StanfordImporter") == PluginManager::LoadState::NotFound) + CORRADE_SKIP("StanfordImporter plugin not found, cannot test"); + + AnySceneImporter importer{_manager}; + CORRADE_VERIFY(importer.openFile(PLY_FILE)); + + /* Check only size, as it is good enough proof that it is working */ + std::optional mesh = importer.mesh3D(0); + CORRADE_VERIFY(mesh); + CORRADE_COMPARE(mesh->positions(0).size(), 5); +} + +void AnySceneImporterTest::unknown() { + std::ostringstream output; + Error::setOutput(&output); + + AnySceneImporter importer{_manager}; + CORRADE_VERIFY(!importer.openFile("mesh.stl")); + + CORRADE_COMPARE(output.str(), "Trade::AnySceneImporter::openFile(): cannot determine type of file mesh.stl\n"); +} + +}}} + +CORRADE_TEST_MAIN(Magnum::Trade::Test::AnySceneImporterTest) diff --git a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake new file mode 100644 index 000000000..4a9940066 --- /dev/null +++ b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake @@ -0,0 +1,33 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#ifdef CORRADE_IS_DEBUG_BUILD +#define MAGNUM_PLUGINS_IMPORTER_DIR "${MAGNUM_PLUGINS_IMPORTER_DEBUG_DIR}" +#else +#define MAGNUM_PLUGINS_IMPORTER_DIR "${MAGNUM_PLUGINS_IMPORTER_DIR}" +#endif + +#define OBJ_FILE "${OBJ_FILE}" +#define PLY_FILE "${PLY_FILE}" diff --git a/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj b/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj new file mode 100644 index 000000000..c5991619c --- /dev/null +++ b/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj @@ -0,0 +1,10 @@ +# Positions +v 0.5 2 3 +v 0 1.5 1 +v 2 3 5.0 + +# Points +p 1 +p 3 +p 2 +p 1 diff --git a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp new file mode 100644 index 000000000..010663b6f --- /dev/null +++ b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp @@ -0,0 +1,29 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include "AnySceneImporter.h" + +CORRADE_PLUGIN_REGISTER(AnySceneImporter, Magnum::Trade::AnySceneImporter, + "cz.mosra.magnum.Trade.AbstractImporter/0.3") From 2292d17b160e0311d168d18e4fab62e6abecedd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 23 Nov 2014 21:03:39 +0100 Subject: [PATCH 11/59] AnySceneImporter: fix non-deprecated build. Eh. --- src/MagnumPlugins/AnySceneImporter/Test/Test.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index 6a04674b8..383b422cc 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -28,8 +28,7 @@ #include #include "Magnum/Trade/ImageData.h" -#include - +#include "Magnum/Trade/MeshData3D.h" #include "MagnumPlugins/AnySceneImporter/AnySceneImporter.h" #include "configure.h" From b428d7c662882192c735fce0a5d5b5f07ab3a299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 11 Jan 2015 18:06:36 +0100 Subject: [PATCH 12/59] Oh, it's 2015 already. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 2 +- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 2 +- src/MagnumPlugins/AnySceneImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnySceneImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index 51c287213..31a06928c 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 5bdd50450..3a6953b26 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index 505b16b94..cec3405bd 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index 16c88cb9b..57c846cd2 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp index 71a14e69d..60fe192ac 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake index 538430d39..ac34f017b 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp index c92852bc8..235f6c903 100644 --- a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index 5abca3132..8d7047095 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 14501ca2c..b7c91dc44 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index 544a4a073..dfed08ed3 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 375e9eb4d..a4ba0cd3c 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index 383b422cc..528bcfa54 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake index 4a9940066..d16392d56 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp index 010663b6f..ade5dd7fe 100644 --- a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a From 34d2b50b354418304f1b19959d2b42dcd2793a73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 11 Jan 2015 20:53:27 +0100 Subject: [PATCH 13/59] Making test case declarations more compact. --- src/MagnumPlugins/AnyImageImporter/Test/Test.cpp | 13 ++++++------- src/MagnumPlugins/AnySceneImporter/Test/Test.cpp | 11 +++++------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp index 60fe192ac..e77f4a266 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp @@ -35,15 +35,14 @@ namespace Magnum { namespace Trade { namespace Test { -class AnyImageImporterTest: public TestSuite::Tester { - public: - explicit AnyImageImporterTest(); +struct AnyImageImporterTest: TestSuite::Tester { + explicit AnyImageImporterTest(); - void tga(); - void jpeg(); - void png(); + void tga(); + void jpeg(); + void png(); - void unknown(); + void unknown(); private: PluginManager::Manager _manager; diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index 528bcfa54..226c593be 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -35,14 +35,13 @@ namespace Magnum { namespace Trade { namespace Test { -class AnySceneImporterTest: public TestSuite::Tester { - public: - explicit AnySceneImporterTest(); +struct AnySceneImporterTest: TestSuite::Tester { + explicit AnySceneImporterTest(); - void obj(); - void ply(); + void obj(); + void ply(); - void unknown(); + void unknown(); private: PluginManager::Manager _manager; From 841bcc84ab3631a4f22bff40dd4a26be58468ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 11 Jan 2015 21:30:05 +0100 Subject: [PATCH 14/59] AnyImageImporter: recognize PGM and PPM formats. Newly supported by StbImageImporter. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 4 ++++ src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index 31a06928c..eb9935ae1 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -60,10 +60,14 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { plugin = "HdrImporter"; else if(Utility::String::endsWith(filename, ".jpg") || Utility::String::endsWith(filename, ".jpeg")) plugin = "JpegImporter"; + else if(Utility::String::endsWith(filename, ".pgm")) + plugin = "PgmImporter"; else if(Utility::String::endsWith(filename, ".pic")) plugin = "PicImporter"; else if(Utility::String::endsWith(filename, ".png")) plugin = "PngImporter"; + else if(Utility::String::endsWith(filename, ".ppm")) + plugin = "PpmImporter"; else if(Utility::String::endsWith(filename, ".psd")) plugin = "PsdImporter"; else if(Utility::String::endsWith(filename, ".tga")) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 3a6953b26..a248d55fd 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -54,8 +54,10 @@ tries to open the file with it. Supported formats: - JPEG (`*.jpg`, `*.jpeg`), loaded with @ref JpegImporter or any other plugin that provides it - PIC (`*.pic`), loaded with any plugin that provides `PicImporter` +- PGM (`*.pgm`), loaded with any plugin that provides `PgmImporter` - PNG (`*.png`), loaded with @ref PngImporter or any other plugin that provides it +- PPM (`*.ppm`), loaded with any plugin that provides `PpmImporter` - PSD (`*.psd`), loaded with any plugin that provides `PsdImporter` - TGA (`*.tga`), loaded with @ref TgaImporter or any other plugin that provides it From 4dc3d1fac85b7f70a8d60862162d2b48f45575bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 23 Jan 2015 22:24:35 +0100 Subject: [PATCH 15/59] AnySceneImporter: alphabetical ordering. --- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp | 6 +++--- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index 8d7047095..f855e68b3 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -61,10 +61,10 @@ void AnySceneImporter::doOpenFile(const std::string& filename) { /* Detect type from extension */ std::string plugin; - if(Utility::String::endsWith(filename, ".obj")) - plugin = "ObjImporter"; - else if(Utility::String::endsWith(filename, ".dae")) + if(Utility::String::endsWith(filename, ".dae")) plugin = "ColladaImporter"; + else if(Utility::String::endsWith(filename, ".obj")) + plugin = "ObjImporter"; else if(Utility::String::endsWith(filename, ".ply")) plugin = "StanfordImporter"; else { diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index b7c91dc44..29cbecbf6 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -39,10 +39,10 @@ namespace Magnum { namespace Trade { Detects file type based on file extension, loads corresponding plugin and then tries to open the file with it. Supported formats: -- OBJ (`*.obj`), loaded with @ref ObjImporter or any other plugin that - provides it - COLLADA (`*.dae`), loaded with @ref ColladaImporter or any other plugin that provides it +- OBJ (`*.obj`), loaded with @ref ObjImporter or any other plugin that + provides it - Stanford (`*.ply`), loaded with @ref StanfordImporter or any other plugin that provides it From a7e2375e542b5c1687c86ad97c269e83d0dae41f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 23 Jan 2015 22:25:48 +0100 Subject: [PATCH 16/59] AnySceneImporter: recognize also OpenGEX files. --- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp | 2 ++ src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index f855e68b3..4e04c1f5a 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -65,6 +65,8 @@ void AnySceneImporter::doOpenFile(const std::string& filename) { plugin = "ColladaImporter"; else if(Utility::String::endsWith(filename, ".obj")) plugin = "ObjImporter"; + else if(Utility::String::endsWith(filename, ".ogex")) + plugin = "OpenGexImporter"; else if(Utility::String::endsWith(filename, ".ply")) plugin = "StanfordImporter"; else { diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 29cbecbf6..9574e1d4c 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -43,6 +43,8 @@ tries to open the file with it. Supported formats: that provides it - OBJ (`*.obj`), loaded with @ref ObjImporter or any other plugin that provides it +- OpenGEX (`*.ogex`), loaded with @ref OpenGexImporter or any other plugin + that provides it - Stanford (`*.ply`), loaded with @ref StanfordImporter or any other plugin that provides it From 12ac179402f0fed4bb0af94ee126c287dd2cebc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 5 May 2015 22:29:43 +0200 Subject: [PATCH 17/59] AnyImageImporter: fix linking of test on Windows. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 6 +++++- src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index a248d55fd..62ec7ed5c 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -32,12 +32,16 @@ #include #ifndef DOXYGEN_GENERATING_OUTPUT +#ifndef MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC #if defined(AnyImageImporter_EXPORTS) || defined(AnyImageImporterObjects_EXPORTS) #define MAGNUM_ANYIMAGEIMPORTER_EXPORT CORRADE_VISIBILITY_EXPORT #else #define MAGNUM_ANYIMAGEIMPORTER_EXPORT CORRADE_VISIBILITY_IMPORT #endif - #define MAGNUM_ANYIMAGEIMPORTER_LOCAL CORRADE_VISIBILITY_LOCAL +#else + #define MAGNUM_ANYIMAGEIMPORTER_EXPORT CORRADE_VISIBILITY_STATIC +#endif +#define MAGNUM_ANYIMAGEIMPORTER_LOCAL CORRADE_VISIBILITY_LOCAL #endif namespace Magnum { namespace Trade { diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index 57c846cd2..a5d8a2e7c 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -33,3 +33,10 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) corrade_add_test(AnyImageImporterTest Test.cpp LIBRARIES MagnumAnyImageImporterTestLib) +# On Win32 we need to avoid dllimporting TgaImporter symbols, because it would +# search for the symbols in some DLL even when they were linked statically. +# However it apparently doesn't matter that they were dllexported when building +# the static library. EH. +if(WIN32) + set_target_properties(AnyImageImporterTest PROPERTIES COMPILE_FLAGS "-DMAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC") +endif() From eff69b45b3ce53da80097acf72e07c3fbaa68c3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 29 Jun 2015 21:32:08 +0200 Subject: [PATCH 18/59] Fix test linking and static build on Windows. I *love* this system and the amazing intricaties of dllexport/dllimport attributes. Seventy new macros for all corner cases and ten new files just to get this fucking thing right. It never gets old. Never. 99% of the build system bureaucracy WOULD NOT BE NEEDED IF THAT THING HAD SANE DESIGN LIKE EVERYWHERE ELSE. GAAAAH. AAAAAAAAARGH. --- .../AnyImageImporter/AnyImageImporter.h | 2 ++ .../AnyImageImporter/CMakeLists.txt | 8 ++++++ .../AnyImageImporter/configure.h.cmake | 26 +++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 src/MagnumPlugins/AnyImageImporter/configure.h.cmake diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 62ec7ed5c..bc9e391a4 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -31,6 +31,8 @@ #include +#include "MagnumPlugins/AnyImageImporter/configure.h" + #ifndef DOXYGEN_GENERATING_OUTPUT #ifndef MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC #if defined(AnyImageImporter_EXPORTS) || defined(AnyImageImporterObjects_EXPORTS) diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index cec3405bd..39c2d48af 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -23,6 +23,13 @@ # DEALINGS IN THE SOFTWARE. # +if(BUILD_STATIC) + set(MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC 1) +endif() + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/configure.h) + set(AnyImageImporter_SRCS AnyImageImporter.cpp) @@ -50,6 +57,7 @@ endif() target_link_libraries(AnyImageImporter ${MAGNUM_LIBRARIES}) install(FILES ${AnyImageImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) if(BUILD_TESTS) add_library(MagnumAnyImageImporterTestLib STATIC $) diff --git a/src/MagnumPlugins/AnyImageImporter/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/configure.h.cmake new file mode 100644 index 000000000..0684d9f20 --- /dev/null +++ b/src/MagnumPlugins/AnyImageImporter/configure.h.cmake @@ -0,0 +1,26 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#cmakedefine MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC From dd91a03229d796deab6c1badab1e9b9ead784dbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 21 Aug 2015 09:54:06 +0200 Subject: [PATCH 19/59] AnyImageImporter: support DDS files. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 2 ++ src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index eb9935ae1..93ebfcf38 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -54,6 +54,8 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { std::string plugin; if(Utility::String::endsWith(filename, ".bmp")) plugin = "BmpImporter"; + if(Utility::String::endsWith(filename, ".dds")) + plugin = "DdsImporter"; else if(Utility::String::endsWith(filename, ".gif")) plugin = "GifImporter"; else if(Utility::String::endsWith(filename, ".hdr")) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index bc9e391a4..d7ce1202c 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -55,6 +55,8 @@ Detects file type based on file extension, loads corresponding plugin and then tries to open the file with it. Supported formats: - BMP (`*.bmp`), loaded with any plugin that provides `BmpImporter` +- DDS (`*.dds`), loaded with @ref DdsImporter or any other plugin that + provides it - GIF (`*.gif`), loaded with any plugin that provides `GifImporter` - HDR (`*.hdr`), loaded with any plugin that provides `HdrImporter` - JPEG (`*.jpg`, `*.jpeg`), loaded with @ref JpegImporter or any other plugin From 67f0d9b58ffee7d57d47f508960c3c1409437dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 21 Aug 2015 09:54:19 +0200 Subject: [PATCH 20/59] AnyImageImporter: superfluous private section. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index d7ce1202c..96690e807 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -91,7 +91,6 @@ class MAGNUM_ANYIMAGEIMPORTER_EXPORT AnyImageImporter: public AbstractImporter { MAGNUM_ANYIMAGEIMPORTER_LOCAL UnsignedInt doImage2DCount() const override; MAGNUM_ANYIMAGEIMPORTER_LOCAL std::optional doImage2D(UnsignedInt id) override; - private: std::unique_ptr _in; }; From 87b2f7dc13d7e4a0002ef6d139618dca16e7318b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 7 Sep 2015 20:26:15 +0200 Subject: [PATCH 21/59] AnyImageImporter: fix documentation. --- src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index a5d8a2e7c..006619e4e 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -33,10 +33,10 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) corrade_add_test(AnyImageImporterTest Test.cpp LIBRARIES MagnumAnyImageImporterTestLib) -# On Win32 we need to avoid dllimporting TgaImporter symbols, because it would -# search for the symbols in some DLL even when they were linked statically. -# However it apparently doesn't matter that they were dllexported when building -# the static library. EH. +# On Win32 we need to avoid dllimporting AnyImageImporter symbols, because it +# would search for the symbols in some DLL even when they were linked +# statically. However it apparently doesn't matter that they were dllexported +# when building the static library. EH. if(WIN32) set_target_properties(AnyImageImporterTest PROPERTIES COMPILE_FLAGS "-DMAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC") endif() From 7da85e659d7fef8c676c9f87fc54f0165b23c0a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 7 Sep 2015 22:22:20 +0200 Subject: [PATCH 22/59] Any*Importer: proper docs. Not sure why this was omitted. --- .../AnyImageImporter/AnyImageImporter.h | 14 +++++++++++++- .../AnySceneImporter/AnySceneImporter.h | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 96690e807..a8f709bd5 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -52,7 +52,19 @@ namespace Magnum { namespace Trade { @brief Any image importer plugin Detects file type based on file extension, loads corresponding plugin and then -tries to open the file with it. Supported formats: +tries to open the file with it. + +This plugin is built if `WITH_ANYIMAGEIMPORTER` is enabled when building +Magnum Plugins. To use dynamic plugin, you need to load `AnyImageImporter` +plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to +request `AnyImageImporter` component of `MagnumPlugins` package in CMake and +link to `${MAGNUMPLUGINS_ANYIMAGEIMPORTER_LIBRARIES}`. To use this as a +dependency of another plugin, you additionally need to add +`${MAGNUMPLUGINS_ANYIMAGEIMPORTER_INCLUDE_DIRS}` to include path. See +@ref building-plugins, @ref cmake-plugins and @ref plugins for more +information. + +Supported formats: - BMP (`*.bmp`), loaded with any plugin that provides `BmpImporter` - DDS (`*.dds`), loaded with @ref DdsImporter or any other plugin that diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 9574e1d4c..c11c2c2fe 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -37,7 +37,19 @@ namespace Magnum { namespace Trade { @brief Any scene importer plugin Detects file type based on file extension, loads corresponding plugin and then -tries to open the file with it. Supported formats: +tries to open the file with it. + +This plugin is built if `WITH_ANYSCENEIMPORTER` is enabled when building +Magnum Plugins. To use dynamic plugin, you need to load `AnySceneImporter` +plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to +request `AnySceneImporter` component of `MagnumPlugins` package in CMake and +link to `${MAGNUMPLUGINS_ANYSCENEIMPORTER_LIBRARIES}`. To use this as a +dependency of another plugin, you additionally need to add +`${MAGNUMPLUGINS_ANYSCENEIMPORTER_INCLUDE_DIRS}` to include path. See +@ref building-plugins, @ref cmake-plugins and @ref plugins for more +information. + +Supported formats: - COLLADA (`*.dae`), loaded with @ref ColladaImporter or any other plugin that provides it From c2f469f01b164700d663f8f2d8c08dd4e8f6bd5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 7 Sep 2015 22:23:49 +0200 Subject: [PATCH 23/59] Any*Importer: proper absolute includes. --- src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp index 235f6c903..ef59da083 100644 --- a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp @@ -23,7 +23,7 @@ DEALINGS IN THE SOFTWARE. */ -#include "AnyImageImporter.h" +#include "MagnumPlugins/AnyImageImporter/AnyImageImporter.h" CORRADE_PLUGIN_REGISTER(AnyImageImporter, Magnum::Trade::AnyImageImporter, "cz.mosra.magnum.Trade.AbstractImporter/0.3") diff --git a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp index ade5dd7fe..feef6d6ff 100644 --- a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp @@ -23,7 +23,7 @@ DEALINGS IN THE SOFTWARE. */ -#include "AnySceneImporter.h" +#include "MagnumPlugins/AnySceneImporter/AnySceneImporter.h" CORRADE_PLUGIN_REGISTER(AnySceneImporter, Magnum::Trade::AnySceneImporter, "cz.mosra.magnum.Trade.AbstractImporter/0.3") From 2c591d1a1e6d01a7479ab6631bc10a9192597d6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 7 Sep 2015 22:21:16 +0200 Subject: [PATCH 24/59] New AnyImageConverter plugin. Similarly to AnyImageImporter and AnySceneImporter detects file type based on extension and then delegates the work to appropriate plugin. --- .../AnyImageConverter/AnyImageConverter.conf | 0 .../AnyImageConverter/AnyImageConverter.cpp | 80 ++++++++++++++++ .../AnyImageConverter/AnyImageConverter.h | 80 ++++++++++++++++ .../AnyImageConverter/CMakeLists.txt | 57 ++++++++++++ .../AnyImageConverter/Test/CMakeLists.txt | 33 +++++++ .../AnyImageConverter/Test/Test.cpp | 92 +++++++++++++++++++ .../AnyImageConverter/Test/configure.h.cmake | 32 +++++++ .../AnyImageConverter/pluginRegistration.cpp | 29 ++++++ 8 files changed, 403 insertions(+) create mode 100644 src/MagnumPlugins/AnyImageConverter/AnyImageConverter.conf create mode 100644 src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp create mode 100644 src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h create mode 100644 src/MagnumPlugins/AnyImageConverter/CMakeLists.txt create mode 100644 src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt create mode 100644 src/MagnumPlugins/AnyImageConverter/Test/Test.cpp create mode 100644 src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake create mode 100644 src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.conf b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.conf new file mode 100644 index 000000000..e69de29bb diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp new file mode 100644 index 000000000..d1f131bcf --- /dev/null +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp @@ -0,0 +1,80 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include "AnyImageConverter.h" + +#include +#include +#include + +#include "Magnum/Trade/ImageData.h" + +namespace Magnum { namespace Trade { + +AnyImageConverter::AnyImageConverter(PluginManager::Manager& manager): AbstractImageConverter{manager} {} + +AnyImageConverter::AnyImageConverter(PluginManager::AbstractManager& manager, std::string plugin): AbstractImageConverter{manager, std::move(plugin)} {} + +AnyImageConverter::~AnyImageConverter() = default; + +auto AnyImageConverter::doFeatures() const -> Features { + return Feature::ConvertFile|Feature::ConvertCompressedFile; +} + +bool AnyImageConverter::doExportToFile(const ImageView2D& image, const std::string& filename) { + CORRADE_INTERNAL_ASSERT(manager()); + + /* Detect type from extension */ + std::string plugin; + if(Utility::String::endsWith(filename, ".png")) + plugin = "PngImageConverter"; + else if(Utility::String::endsWith(filename, ".tga")) + plugin = "TgaImageConverter"; + else { + Error() << "Trade::AnyImageConverter::exportToFile(): cannot determine type of file" << filename; + return false; + } + + /* Try to load the plugin */ + if(!(manager()->load(plugin) & PluginManager::LoadState::Loaded)) { + Error() << "Trade::AnyImageConverter::exportToFile(): cannot load" << plugin << "plugin"; + return false; + } + + /* Try to convert the file (error output should be printed by the plugin + itself) */ + return static_cast*>(manager())->instance(plugin)->exportToFile(image, filename); +} + +bool AnyImageConverter::doExportToFile(const CompressedImageView2D&, const std::string& filename) { + CORRADE_INTERNAL_ASSERT(manager()); + + /* No file formats to store compressed data yet */ + + Error() << "Trade::AnyImageConverter::exportToFile(): cannot determine type of file" << filename << "to store compressed data"; + return false; +} + +}} diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h new file mode 100644 index 000000000..c5f7d5e9f --- /dev/null +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -0,0 +1,80 @@ +#ifndef Magnum_Trade_AnyImageConverter_h +#define Magnum_Trade_AnyImageConverter_h +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +/** @file + * @brief Class @ref Magnum::Trade::AnyImageConverter + */ + +#include + +namespace Magnum { namespace Trade { + +/** +@brief Any image converter plugin + +Detects file type based on file extension, loads corresponding plugin and then +tries to convert the file with it. + +This plugin is built if `WITH_ANYIMAGECONVERTER` is enabled when building +Magnum Plugins. To use dynamic plugin, you need to load `AnyImageConverter` +plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to +request `AnyImageConverter` component of `MagnumPlugins` package in CMake and +link to `${MAGNUMPLUGINS_ANYIMAGECONVERTER_LIBRARIES}`. To use this as a +dependency of another plugin, you additionally need to add +`${MAGNUMPLUGINS_ANYIMAGECONVERTER_INCLUDE_DIRS}` to include path. See +@ref building-plugins, @ref cmake-plugins and @ref plugins for more +information. + +Supported formats for uncompressed data: + +- PNG (`*.png`), loaded with any plugin that provides `PngImageConverer` +- TGA (`*.tga`), loaded with @ref TgaImageConverter or any other plugin that + provides it + +No supported formats for compressed data yet. + +Only exporting to files is supported. +*/ +class AnyImageConverter: public AbstractImageConverter { + public: + /** @brief Constructor with access to plugin manager */ + explicit AnyImageConverter(PluginManager::Manager& manager); + + /** @brief Plugin manager constructor */ + explicit AnyImageConverter(PluginManager::AbstractManager& manager, std::string plugin); + + ~AnyImageConverter(); + + private: + Features doFeatures() const override; + bool doExportToFile(const ImageView2D& image, const std::string& filename) override; + bool doExportToFile(const CompressedImageView2D& image, const std::string& filename) override; +}; + +}} + +#endif diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt new file mode 100644 index 000000000..8bf5125d4 --- /dev/null +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -0,0 +1,57 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +set(AnyImageConverter_SRCS + AnyImageConverter.cpp) + +set(AnyImageConverter_HEADERS + AnyImageConverter.h) + +# Objects shared between plugin and test library +add_library(AnyImageConverterObjects OBJECT + ${AnyImageConverter_SRCS} + ${AnyImageConverter_HEADERS}) +if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) + set_target_properties(AnyImageConverterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() + +# AnyImageConverter plugin +add_plugin(AnyImageConverter ${MAGNUM_PLUGINS_IMAGECONVERTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_IMAGECONVERTER_RELEASE_INSTALL_DIR} + AnyImageConverter.conf + $ + pluginRegistration.cpp) +if(BUILD_STATIC_PIC) + set_target_properties(AnyImageConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() + +target_link_libraries(AnyImageConverter ${MAGNUM_LIBRARIES}) + +install(FILES ${AnyImageConverter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter) + +if(BUILD_TESTS) + add_library(MagnumAnyImageConverterTestLib STATIC $) + target_link_libraries(MagnumAnyImageConverterTestLib ${MAGNUM_LIBRARIES}) + add_subdirectory(Test) +endif() diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt new file mode 100644 index 000000000..c2f799158 --- /dev/null +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -0,0 +1,33 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) + +set(PNG_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/output.png) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/configure.h) + +corrade_add_test(AnyImageConverterTest Test.cpp LIBRARIES MagnumAnyImageConverterTestLib) diff --git a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp new file mode 100644 index 000000000..de288cddd --- /dev/null +++ b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp @@ -0,0 +1,92 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include +#include + +#include "Magnum/PixelFormat.h" +#include "Magnum/Trade/ImageData.h" + +#include "MagnumPlugins/AnyImageConverter/AnyImageConverter.h" + +#include "configure.h" + +namespace Magnum { namespace Trade { namespace Test { + +struct AnyImageConverterTest: TestSuite::Tester { + explicit AnyImageConverterTest(); + + void png(); + + void unknown(); + + private: + PluginManager::Manager _manager; +}; + +AnyImageConverterTest::AnyImageConverterTest(): _manager{MAGNUM_PLUGINS_IMAGECONVERTER_DIR} { + addTests({&AnyImageConverterTest::png, + + &AnyImageConverterTest::unknown}); +} + +namespace { + constexpr const char Data[] = { + 1, 2, 3, 2, 3, 4, 0, 0, + 3, 4, 5, 4, 5, 6, 0, 0, + 5, 6, 7, 6, 7, 8, 0, 0 + }; + + const ImageView2D Image{PixelFormat::RGB, PixelType::UnsignedByte, {2, 3}, Data}; +} + +void AnyImageConverterTest::png() { + if(_manager.loadState("PngImageConverter") == PluginManager::LoadState::NotFound) + CORRADE_SKIP("PngImageConverter plugin not found, cannot test"); + + if(Utility::Directory::fileExists(PNG_OUTPUT_FILE)) + CORRADE_VERIFY(Utility::Directory::rm(PNG_OUTPUT_FILE)); + + /* Just test that the exported file exists */ + AnyImageConverter converter{_manager}; + CORRADE_VERIFY(converter.exportToFile(Image, PNG_OUTPUT_FILE)); + CORRADE_VERIFY(Utility::Directory::fileExists(PNG_OUTPUT_FILE)); +} + +void AnyImageConverterTest::unknown() { + std::ostringstream output; + Error::setOutput(&output); + + AnyImageConverter converter{_manager}; + CORRADE_VERIFY(!converter.exportToFile(Image, "image.xcf")); + + CORRADE_COMPARE(output.str(), "Trade::AnyImageConverter::exportToFile(): cannot determine type of file image.xcf\n"); +} + +}}} + +CORRADE_TEST_MAIN(Magnum::Trade::Test::AnyImageConverterTest) diff --git a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake new file mode 100644 index 000000000..a7472cc7a --- /dev/null +++ b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake @@ -0,0 +1,32 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#ifdef CORRADE_IS_DEBUG_BUILD +#define MAGNUM_PLUGINS_IMAGECONVERTER_DIR "${MAGNUM_PLUGINS_IMAGECONVERTER_DEBUG_DIR}" +#else +#define MAGNUM_PLUGINS_IMAGECONVERTER_DIR "${MAGNUM_PLUGINS_IMAGECONVERTER_DIR}" +#endif + +#define PNG_OUTPUT_FILE "${PNG_OUTPUT_FILE}" diff --git a/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp new file mode 100644 index 000000000..f396c5095 --- /dev/null +++ b/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp @@ -0,0 +1,29 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include "MagnumPlugins/AnyImageConverter/AnyImageConverter.h" + +CORRADE_PLUGIN_REGISTER(AnyImageConverter, Magnum::Trade::AnyImageConverter, + "cz.mosra.magnum.Trade.AbstractImageConverter/0.2.1") From 81c485dd624a4930e131baa0d6d2a8582a53d9f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 8 Sep 2015 00:09:44 +0200 Subject: [PATCH 25/59] New AnyAudioImporter plugin. Similar to AnyImageImporter. Currently knows only WAV files, more to come with upcoming plugins. --- .../AnyAudioImporter/AnyAudioImporter.conf | 0 .../AnyAudioImporter/AnyImporter.cpp | 80 +++++++++++++++++ .../AnyAudioImporter/AnyImporter.h | 85 ++++++++++++++++++ .../AnyAudioImporter/CMakeLists.txt | 61 +++++++++++++ .../AnyAudioImporter/Test/CMakeLists.txt | 33 +++++++ .../AnyAudioImporter/Test/Test.cpp | 79 ++++++++++++++++ .../AnyAudioImporter/Test/configure.h.cmake | 32 +++++++ .../AnyAudioImporter/Test/stereo8.wav | Bin 0 -> 48 bytes .../AnyAudioImporter/pluginRegistration.cpp | 29 ++++++ 9 files changed, 399 insertions(+) create mode 100644 src/MagnumPlugins/AnyAudioImporter/AnyAudioImporter.conf create mode 100644 src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp create mode 100644 src/MagnumPlugins/AnyAudioImporter/AnyImporter.h create mode 100644 src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt create mode 100644 src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt create mode 100644 src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp create mode 100644 src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake create mode 100644 src/MagnumPlugins/AnyAudioImporter/Test/stereo8.wav create mode 100644 src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyAudioImporter.conf b/src/MagnumPlugins/AnyAudioImporter/AnyAudioImporter.conf new file mode 100644 index 000000000..e69de29bb diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp new file mode 100644 index 000000000..2c994aed7 --- /dev/null +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp @@ -0,0 +1,80 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include "AnyImporter.h" + +#include +#include +#include +#include + +namespace Magnum { namespace Audio { + +AnyImporter::AnyImporter(PluginManager::Manager& manager): AbstractImporter{manager} {} + +AnyImporter::AnyImporter(PluginManager::AbstractManager& manager, std::string plugin): AbstractImporter{manager, std::move(plugin)} {} + +AnyImporter::~AnyImporter() = default; + +auto AnyImporter::doFeatures() const -> Features { return {}; } + +bool AnyImporter::doIsOpened() const { return !!_in; } + +void AnyImporter::doClose() { _in = nullptr; } + +void AnyImporter::doOpenFile(const std::string& filename) { + CORRADE_INTERNAL_ASSERT(manager()); + + /* Detect type from extension */ + std::string plugin; + if(Utility::String::endsWith(filename, ".wav")) + plugin = "WavAudioImporter"; + else { + Error() << "Audio::AnyImporter::openFile(): cannot determine type of file" << filename; + return; + } + + /* Try to load the plugin */ + if(!(manager()->load(plugin) & PluginManager::LoadState::Loaded)) { + Error() << "Audio::AnyImporter::openFile(): cannot load" << plugin << "plugin"; + return; + } + + /* Try to open the file (error output should be printed by the plugin + itself) */ + std::unique_ptr importer = static_cast*>(manager())->instance(plugin); + if(!importer->openFile(filename)) return; + + /* Success, save the instance */ + _in = std::move(importer); +} + +Buffer::Format AnyImporter::doFormat() const { return _in->format(); } + +UnsignedInt AnyImporter::doFrequency() const { return _in->frequency(); } + +Containers::Array AnyImporter::doData() { return _in->data(); } + +}} diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h new file mode 100644 index 000000000..39a5f2da4 --- /dev/null +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -0,0 +1,85 @@ +#ifndef Magnum_Trade_AnyImporter_h +#define Magnum_Trade_AnyImporter_h +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +/** @file + * @brief Class @ref Magnum::Audio::AnyImporter + */ + +#include +#include + +namespace Magnum { namespace Audio { + +/** +@brief Any audio importer plugin + +Detects file type based on file extension, loads corresponding plugin and then +tries to open the file with it. + +This plugin is built if `WITH_ANYAUDIOIMPORTER` is enabled when building +Magnum Plugins. To use dynamic plugin, you need to load `AnyAudioImporter` +plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to +request `AnyAudioImporter` component of `MagnumPlugins` package in CMake and +link to `${MAGNUMPLUGINS_ANYAUDIOIMPORTER_LIBRARIES}`. To use this as a +dependency of another plugin, you additionally need to add +`${MAGNUMPLUGINS_ANYAUDIOIMPORTER_INCLUDE_DIRS}` to include path. See +@ref building-plugins, @ref cmake-plugins and @ref plugins for more +information. + +Supported formats: + +- WAV (`*.wav`), loaded with @ref WavImporter "WavAudioImporter" or any other + plugin that provides it + +Only loading from files is supported. +*/ +class AnyImporter: public AbstractImporter { + public: + /** @brief Constructor with access to plugin manager */ + explicit AnyImporter(PluginManager::Manager& manager); + + /** @brief Plugin manager constructor */ + explicit AnyImporter(PluginManager::AbstractManager& manager, std::string plugin); + + ~AnyImporter(); + + private: + Features doFeatures() const override; + bool doIsOpened() const override; + void doClose() override; + void doOpenFile(const std::string& filename) override; + + Buffer::Format doFormat() const override; + UnsignedInt doFrequency() const override; + Containers::Array doData() override; + + std::unique_ptr _in; +}; + +}} + +#endif diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt new file mode 100644 index 000000000..9a2e3a319 --- /dev/null +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -0,0 +1,61 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +find_package(Magnum REQUIRED Audio) + +include_directories(${MAGNUM_AUDIO_INCLUDE_DIRS}) + +set(AnyAudioImporter_SRCS + AnyImporter.cpp) + +set(AnyAudioImporter_HEADERS + AnyImporter.h) + +# Objects shared between plugin and test library +add_library(AnyAudioImporterObjects OBJECT + ${AnyAudioImporter_SRCS} + ${AnyAudioImporter_HEADERS}) +if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) + set_target_properties(AnyAudioImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() + +# AnyAudioImporter plugin +add_plugin(AnyAudioImporter ${MAGNUM_PLUGINS_AUDIOIMPORTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_AUDIOIMPORTER_RELEASE_INSTALL_DIR} + AnyAudioImporter.conf + $ + pluginRegistration.cpp) +if(BUILD_STATIC_PIC) + set_target_properties(AnyAudioImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() + +target_link_libraries(AnyAudioImporter ${MAGNUM_LIBRARIES} ${MAGNUM_AUDIO_LIBRARIES}) + +install(FILES ${AnyAudioImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyAudioImporter) + +if(BUILD_TESTS) + add_library(MagnumAnyAudioImporterTestLib STATIC $) + target_link_libraries(MagnumAnyAudioImporterTestLib ${MAGNUM_LIBRARIES} ${MAGNUM_AUDIO_LIBRARIES}) + add_subdirectory(Test) +endif() diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt new file mode 100644 index 000000000..dfed4c423 --- /dev/null +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -0,0 +1,33 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) + +set(WAV_FILE ${CMAKE_CURRENT_SOURCE_DIR}/stereo8.wav) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/configure.h) + +corrade_add_test(AnyAudioImporterTest Test.cpp LIBRARIES MagnumAnyAudioImporterTestLib) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp new file mode 100644 index 000000000..af87d1de2 --- /dev/null +++ b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp @@ -0,0 +1,79 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include + +#include "Magnum/Trade/ImageData.h" + +#include "MagnumPlugins/AnyAudioImporter/AnyImporter.h" + +#include "configure.h" + +namespace Magnum { namespace Audio { namespace Test { + +struct AnyImporterTest: TestSuite::Tester { + explicit AnyImporterTest(); + + void wav(); + + void unknown(); + +private: + PluginManager::Manager _manager; +}; + +AnyImporterTest::AnyImporterTest(): _manager{MAGNUM_PLUGINS_AUDIOIMPORTER_DIR} { + addTests({&AnyImporterTest::wav, + + &AnyImporterTest::unknown}); +} + +void AnyImporterTest::wav() { + if(_manager.loadState("WavAudioImporter") == PluginManager::LoadState::NotFound) + CORRADE_SKIP("WavAudioImporter plugin not found, cannot test"); + + AnyImporter importer{_manager}; + CORRADE_VERIFY(importer.openFile(WAV_FILE)); + + /* Check only parameters, as it is good enough proof that it is working */ + CORRADE_COMPARE(importer.format(), Buffer::Format::Stereo8); + CORRADE_COMPARE(importer.frequency(), 96000); +} + +void AnyImporterTest::unknown() { + std::ostringstream output; + Error::setOutput(&output); + + AnyImporter importer{_manager}; + CORRADE_VERIFY(!importer.openFile("sound.mid")); + + CORRADE_COMPARE(output.str(), "Audio::AnyImporter::openFile(): cannot determine type of file sound.mid\n"); +} + +}}} + +CORRADE_TEST_MAIN(Magnum::Audio::Test::AnyImporterTest) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake new file mode 100644 index 000000000..5bec68853 --- /dev/null +++ b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake @@ -0,0 +1,32 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#ifdef CORRADE_IS_DEBUG_BUILD +#define MAGNUM_PLUGINS_AUDIOIMPORTER_DIR "${MAGNUM_PLUGINS_AUDIOIMPORTER_DEBUG_DIR}" +#else +#define MAGNUM_PLUGINS_AUDIOIMPORTER_DIR "${MAGNUM_PLUGINS_AUDIOIMPORTER_DIR}" +#endif + +#define WAV_FILE "${WAV_FILE}" diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/stereo8.wav b/src/MagnumPlugins/AnyAudioImporter/Test/stereo8.wav new file mode 100644 index 0000000000000000000000000000000000000000..02298ef3b1b44a5f186092b15dd675ac457ea6b4 GIT binary patch literal 48 zcmWIYbaT^SU| + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include "MagnumPlugins/AnyAudioImporter/AnyImporter.h" + +CORRADE_PLUGIN_REGISTER(AnyAudioImporter, Magnum::Audio::AnyImporter, + "cz.mosra.magnum.Audio.AbstractImporter/0.1") From 2f10505349a60627b2c97b24a9a4facbec689749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 10 Oct 2015 12:30:22 +0200 Subject: [PATCH 26/59] AnyAudioImporter: support loading OGG Vorbis files. --- src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp | 4 +++- src/MagnumPlugins/AnyAudioImporter/AnyImporter.h | 2 ++ .../AnyAudioImporter/Test/CMakeLists.txt | 1 + src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp | 14 ++++++++++++++ .../AnyAudioImporter/Test/configure.h.cmake | 1 + 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp index 2c994aed7..75de033b2 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp @@ -49,7 +49,9 @@ void AnyImporter::doOpenFile(const std::string& filename) { /* Detect type from extension */ std::string plugin; - if(Utility::String::endsWith(filename, ".wav")) + if(Utility::String::endsWith(filename, ".ogg")) + plugin = "VorbisAudioImporter"; + else if(Utility::String::endsWith(filename, ".wav")) plugin = "WavAudioImporter"; else { Error() << "Audio::AnyImporter::openFile(): cannot determine type of file" << filename; diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index 39a5f2da4..f47a3cc00 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -52,6 +52,8 @@ information. Supported formats: +- OGG Vorbis (`*.ogg`), loaded with any plugin that provides + `VorbisAudioImporter` - WAV (`*.wav`), loaded with @ref WavImporter "WavAudioImporter" or any other plugin that provides it diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index dfed4c423..48393c120 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -26,6 +26,7 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) set(WAV_FILE ${CMAKE_CURRENT_SOURCE_DIR}/stereo8.wav) +set(OGG_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp index af87d1de2..6b42b4580 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp @@ -39,6 +39,7 @@ struct AnyImporterTest: TestSuite::Tester { explicit AnyImporterTest(); void wav(); + void ogg(); void unknown(); @@ -48,6 +49,7 @@ private: AnyImporterTest::AnyImporterTest(): _manager{MAGNUM_PLUGINS_AUDIOIMPORTER_DIR} { addTests({&AnyImporterTest::wav, + &AnyImporterTest::ogg, &AnyImporterTest::unknown}); } @@ -64,6 +66,18 @@ void AnyImporterTest::wav() { CORRADE_COMPARE(importer.frequency(), 96000); } +void AnyImporterTest::ogg() { + if(_manager.loadState("VorbisAudioImporter") == PluginManager::LoadState::NotFound) + CORRADE_SKIP("VorbisAudioImporter plugin not found, cannot test"); + + AnyImporter importer{_manager}; + CORRADE_VERIFY(importer.openFile(OGG_FILE)); + + /* Check only parameters, as it is good enough proof that it is working */ + CORRADE_COMPARE(importer.format(), Buffer::Format::Mono16); + CORRADE_COMPARE(importer.frequency(), 96000); +} + void AnyImporterTest::unknown() { std::ostringstream output; Error::setOutput(&output); diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake index 5bec68853..87ee44b30 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake @@ -30,3 +30,4 @@ #endif #define WAV_FILE "${WAV_FILE}" +#define OGG_FILE "${OGG_FILE}" From 3f7cfc4980567255dc0b345fc478ad84d4c0af57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 29 Nov 2015 16:50:03 +0100 Subject: [PATCH 27/59] AnyImageConverter: recognize OpenEXR format. --- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp | 4 +++- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp index d1f131bcf..6578b7049 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp @@ -48,7 +48,9 @@ bool AnyImageConverter::doExportToFile(const ImageView2D& image, const std::stri /* Detect type from extension */ std::string plugin; - if(Utility::String::endsWith(filename, ".png")) + if(Utility::String::endsWith(filename, ".exr")) + plugin = "OpenExrImageConverter"; + else if(Utility::String::endsWith(filename, ".png")) plugin = "PngImageConverter"; else if(Utility::String::endsWith(filename, ".tga")) plugin = "TgaImageConverter"; diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index c5f7d5e9f..c62cb1710 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -51,8 +51,10 @@ information. Supported formats for uncompressed data: -- PNG (`*.png`), loaded with any plugin that provides `PngImageConverer` -- TGA (`*.tga`), loaded with @ref TgaImageConverter or any other plugin that +- OpenEXR (`*.exr`), converted with any plugin that provides + `OpenExrImageConverter` +- PNG (`*.png`), converted with any plugin that provides `PngImageConverer` +- TGA (`*.tga`), converted with @ref TgaImageConverter or any other plugin that provides it No supported formats for compressed data yet. From 4580ebb1408a244f825bf1651f3456dd291b6866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 4 Dec 2015 20:48:32 +0100 Subject: [PATCH 28/59] CMake subproject support, part 1: use project-relative paths. Otherwise it would reference directory relative to source root and not project root, which is not always the same. --- src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt | 6 +++--- src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index 48393c120..88c22f4c6 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -26,7 +26,7 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) set(WAV_FILE ${CMAKE_CURRENT_SOURCE_DIR}/stereo8.wav) -set(OGG_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) +set(OGG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index 006619e4e..cdc911b54 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -25,9 +25,9 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) -set(TGA_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/ColladaImporter/Test/ColladaImporterTestFiles/image.tga) -set(JPEG_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/JpegImporter/Test/rgb.jpg) -set(PNG_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/PngImporter/Test/rgb.png) +set(TGA_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ColladaImporter/Test/ColladaImporterTestFiles/image.tga) +set(JPEG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/JpegImporter/Test/rgb.jpg) +set(PNG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/PngImporter/Test/rgb.png) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index a4ba0cd3c..f8aa0d601 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -25,8 +25,8 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) -set(OBJ_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj) -set(PLY_FILE ${CMAKE_SOURCE_DIR}/src/MagnumPlugins/StanfordImporter/Test/common.ply) +set(OBJ_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj) +set(PLY_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StanfordImporter/Test/common.ply) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) From afe6d7fa9ceaa9b978436338b992736398cdcd93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 5 Dec 2015 18:57:30 +0100 Subject: [PATCH 29/59] CMake subproject support, part 3: export MAGNUMPLUGINS_* variables. This way the FindMagnumPlugins.cmake module will have everything found already and so it will do only some additional management on top. --- src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt | 3 +++ src/MagnumPlugins/AnyImageConverter/CMakeLists.txt | 3 +++ src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 3 +++ src/MagnumPlugins/AnySceneImporter/CMakeLists.txt | 3 +++ 4 files changed, 12 insertions(+) diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index 9a2e3a319..5a857f126 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -59,3 +59,6 @@ if(BUILD_TESTS) target_link_libraries(MagnumAnyAudioImporterTestLib ${MAGNUM_LIBRARIES} ${MAGNUM_AUDIO_LIBRARIES}) add_subdirectory(Test) endif() + +# Magnum AnyAudioImporter library for superprojects +set(MAGNUMPLUGINS_ANYAUDIOIMPORTER_LIBRARY AnyAudioImporter CACHE INTERNAL "") diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index 8bf5125d4..fa6a39f45 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -55,3 +55,6 @@ if(BUILD_TESTS) target_link_libraries(MagnumAnyImageConverterTestLib ${MAGNUM_LIBRARIES}) add_subdirectory(Test) endif() + +# Magnum AnyImageConverter library for superprojects +set(MAGNUMPLUGINS_ANYIMAGECONVERTER_LIBRARY AnyImageConverter CACHE INTERNAL "") diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index 39c2d48af..e98a89489 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -64,3 +64,6 @@ if(BUILD_TESTS) target_link_libraries(MagnumAnyImageImporterTestLib ${MAGNUM_LIBRARIES}) add_subdirectory(Test) endif() + +# Magnum AnyImageImporter library for superprojects +set(MAGNUMPLUGINS_ANYIMAGEIMPORTER_LIBRARY AnyImageImporter CACHE INTERNAL "") diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index dfed08ed3..2f5a42bd0 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -56,3 +56,6 @@ if(BUILD_TESTS) target_link_libraries(MagnumAnySceneImporterTestLib ${MAGNUM_LIBRARIES}) add_subdirectory(Test) endif() + +# Magnum AnySceneImporter library for superprojects +set(MAGNUMPLUGINS_ANYSCENEIMPORTER_LIBRARY AnySceneImporter CACHE INTERNAL "") From 5d38175a068ed7ea5394ef7f1b19f6d4dae81a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 17 Jan 2016 00:19:46 +0100 Subject: [PATCH 30/59] Adapted to Corrade changes. --- src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/Test/Test.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp index 6b42b4580..165521feb 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp @@ -80,7 +80,7 @@ void AnyImporterTest::ogg() { void AnyImporterTest::unknown() { std::ostringstream output; - Error::setOutput(&output); + Error redirectError{&output}; AnyImporter importer{_manager}; CORRADE_VERIFY(!importer.openFile("sound.mid")); diff --git a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp index de288cddd..51d2fa982 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp @@ -79,7 +79,7 @@ void AnyImageConverterTest::png() { void AnyImageConverterTest::unknown() { std::ostringstream output; - Error::setOutput(&output); + Error redirectError{&output}; AnyImageConverter converter{_manager}; CORRADE_VERIFY(!converter.exportToFile(Image, "image.xcf")); diff --git a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp index e77f4a266..67063e7c8 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp @@ -97,7 +97,7 @@ void AnyImageImporterTest::png() { void AnyImageImporterTest::unknown() { std::ostringstream output; - Error::setOutput(&output); + Error redirectError{&output}; AnyImageImporter importer{_manager}; CORRADE_VERIFY(!importer.openFile("image.xcf")); diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index 226c593be..e262d75c6 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -82,7 +82,7 @@ void AnySceneImporterTest::ply() { void AnySceneImporterTest::unknown() { std::ostringstream output; - Error::setOutput(&output); + Error redirectError{&output}; AnySceneImporter importer{_manager}; CORRADE_VERIFY(!importer.openFile("mesh.stl")); From c118c91dddb6059911f852687b44f455a530656d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 5 Feb 2016 22:43:44 +0100 Subject: [PATCH 31/59] Updated copyright year. --- src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp | 2 +- src/MagnumPlugins/AnyAudioImporter/AnyImporter.h | 2 +- src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h | 2 +- src/MagnumPlugins/AnyImageConverter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageConverter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 2 +- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageImporter/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 2 +- src/MagnumPlugins/AnySceneImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnySceneImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp | 2 +- 29 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp index 75de033b2..42b3e81e3 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index f47a3cc00..155938b06 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index 5a857f126..9b5fe6ab2 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index 88c22f4c6..3be989e35 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp index 165521feb..544044e75 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake index 87ee44b30..c31a1d05e 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp index a0d7bb03c..241432f5e 100644 --- a/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp index 6578b7049..0b0003a4f 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index c62cb1710..862da1356 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index fa6a39f45..b9e0c8878 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index c2f799158..d5c1a94b1 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp index 51d2fa982..5c3b9d5b3 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake index a7472cc7a..7c1c64324 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp index f396c5095..d7e13653a 100644 --- a/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index 93ebfcf38..807ad7579 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index a8f709bd5..593f65ada 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index e98a89489..aa5d1692d 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index cdc911b54..6a593351f 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp index 67063e7c8..1df47fd5d 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake index ac34f017b..7b06d4a1b 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/configure.h.cmake index 0684d9f20..c6aa46f79 100644 --- a/src/MagnumPlugins/AnyImageImporter/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageImporter/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp index ef59da083..8682b40e9 100644 --- a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index 4e04c1f5a..01090f24b 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index c11c2c2fe..2df65d629 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index 2f5a42bd0..3a53da61e 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index f8aa0d601..64f5242ca 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index e262d75c6..2f6e730e0 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake index d16392d56..4abe44dd3 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp index feef6d6ff..81044d010 100644 --- a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a From c987f39b7b1c89709406041708015ad900249c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 16 Mar 2016 14:00:19 +0100 Subject: [PATCH 32/59] Added PngImageConverter plugin. Uses libPNG directly and compared to StbPngImageConverter knows also how to convert 16bit images. --- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index 862da1356..4f254d192 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -53,9 +53,10 @@ Supported formats for uncompressed data: - OpenEXR (`*.exr`), converted with any plugin that provides `OpenExrImageConverter` -- PNG (`*.png`), converted with any plugin that provides `PngImageConverer` -- TGA (`*.tga`), converted with @ref TgaImageConverter or any other plugin that - provides it +- PNG (`*.png`), converted with @ref PngImageConverer or any other plugin + that provides it +- TGA (`*.tga`), converted with @ref TgaImageConverter or any other plugin + that provides it No supported formats for compressed data yet. From 129c8cdbf1128b5523fc1ec76f404018bb974dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 29 Feb 2016 22:31:49 +0100 Subject: [PATCH 33/59] Modern CMake usage: reworked to use target-specific properties. Please note that this is not exactly backwards compatible, but as most uses of the plugin library are without interacting with CMake, it shouldn't be as painful, hopefully. In any case, recreate the build dir and update your copy of Find*.cmake modules to avoid weird things happening. User-facing changes: * Documentation of Find*.cmake modules converted to reStructuredText to follow official CMake guidelines. * The newfangled way to link the plugins is to use MagnumPlugins::JpegImporter instead of ${MAGNUMPLUGINS_JPEGIMPORTER_LIBRARIES} and ${MAGNUMPLUGINS_JPEGIMPORTER_INCLUDE_DIRS}. * The old ${MAGNUMPLUGINS_*_LIBRARIES} are deprecated and just expand to MagnumPlugins::* target and are exposed only if building with BUILD_DEPRECATED. * The old ${MAGNUMPLUGINS_*_INCLUDE_DIRS} are removed, as the MagnumPlugins::* targets cover that now as well. Internal changes: * Removed global state in favor of target-specific settings. --- .../AnyAudioImporter/AnyImporter.h | 7 ++----- .../AnyAudioImporter/CMakeLists.txt | 16 +++++++------- .../AnyAudioImporter/Test/CMakeLists.txt | 3 +-- .../AnyImageConverter/AnyImageConverter.h | 7 ++----- .../AnyImageConverter/CMakeLists.txt | 14 ++++++++----- .../AnyImageConverter/Test/CMakeLists.txt | 3 +-- .../AnyImageImporter/AnyImageImporter.h | 7 ++----- .../AnyImageImporter/CMakeLists.txt | 21 +++++++++++++------ .../AnyImageImporter/Test/CMakeLists.txt | 5 ++--- .../AnySceneImporter/AnySceneImporter.h | 7 ++----- .../AnySceneImporter/CMakeLists.txt | 16 ++++++++------ .../AnySceneImporter/Test/CMakeLists.txt | 3 +-- 12 files changed, 56 insertions(+), 53 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index 155938b06..9e5165c79 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -44,11 +44,8 @@ This plugin is built if `WITH_ANYAUDIOIMPORTER` is enabled when building Magnum Plugins. To use dynamic plugin, you need to load `AnyAudioImporter` plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to request `AnyAudioImporter` component of `MagnumPlugins` package in CMake and -link to `${MAGNUMPLUGINS_ANYAUDIOIMPORTER_LIBRARIES}`. To use this as a -dependency of another plugin, you additionally need to add -`${MAGNUMPLUGINS_ANYAUDIOIMPORTER_INCLUDE_DIRS}` to include path. See -@ref building-plugins, @ref cmake-plugins and @ref plugins for more -information. +link to `MagnumPlugins::AnyAudioImporter` target. See @ref building-plugins, +@ref cmake-plugins and @ref plugins for more information. Supported formats: diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index 9b5fe6ab2..450b6633f 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -25,8 +25,6 @@ find_package(Magnum REQUIRED Audio) -include_directories(${MAGNUM_AUDIO_INCLUDE_DIRS}) - set(AnyAudioImporter_SRCS AnyImporter.cpp) @@ -37,6 +35,9 @@ set(AnyAudioImporter_HEADERS add_library(AnyAudioImporterObjects OBJECT ${AnyAudioImporter_SRCS} ${AnyAudioImporter_HEADERS}) +target_include_directories(AnyAudioImporterObjects PUBLIC + $ + ${PROJECT_SOURCE_DIR}/src) if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnyAudioImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() @@ -49,16 +50,17 @@ add_plugin(AnyAudioImporter ${MAGNUM_PLUGINS_AUDIOIMPORTER_DEBUG_INSTALL_DIR} ${ if(BUILD_STATIC_PIC) set_target_properties(AnyAudioImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() - -target_link_libraries(AnyAudioImporter ${MAGNUM_LIBRARIES} ${MAGNUM_AUDIO_LIBRARIES}) +target_include_directories(AnyAudioImporter PUBLIC ${PROJECT_SOURCE_DIR}/src) +target_link_libraries(AnyAudioImporter Magnum::Magnum Magnum::Audio) install(FILES ${AnyAudioImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyAudioImporter) if(BUILD_TESTS) add_library(MagnumAnyAudioImporterTestLib STATIC $) - target_link_libraries(MagnumAnyAudioImporterTestLib ${MAGNUM_LIBRARIES} ${MAGNUM_AUDIO_LIBRARIES}) + target_include_directories(MagnumAnyAudioImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src) + target_link_libraries(MagnumAnyAudioImporterTestLib Magnum::Magnum Magnum::Audio) add_subdirectory(Test) endif() -# Magnum AnyAudioImporter library for superprojects -set(MAGNUMPLUGINS_ANYAUDIOIMPORTER_LIBRARY AnyAudioImporter CACHE INTERNAL "") +# MagnumPlugins AnyAudioImporter target alias for superprojects +add_library(MagnumPlugins::AnyAudioImporter ALIAS AnyAudioImporter) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index 3be989e35..42ff4b549 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -23,8 +23,6 @@ # DEALINGS IN THE SOFTWARE. # -include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) - set(WAV_FILE ${CMAKE_CURRENT_SOURCE_DIR}/stereo8.wav) set(OGG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) @@ -32,3 +30,4 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) corrade_add_test(AnyAudioImporterTest Test.cpp LIBRARIES MagnumAnyAudioImporterTestLib) +target_include_directories(AnyAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index 4f254d192..94080470e 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -43,11 +43,8 @@ This plugin is built if `WITH_ANYIMAGECONVERTER` is enabled when building Magnum Plugins. To use dynamic plugin, you need to load `AnyImageConverter` plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to request `AnyImageConverter` component of `MagnumPlugins` package in CMake and -link to `${MAGNUMPLUGINS_ANYIMAGECONVERTER_LIBRARIES}`. To use this as a -dependency of another plugin, you additionally need to add -`${MAGNUMPLUGINS_ANYIMAGECONVERTER_INCLUDE_DIRS}` to include path. See -@ref building-plugins, @ref cmake-plugins and @ref plugins for more -information. +link to `MagnumPlugins::AnyImageConverter` target. See @ref building-plugins, +@ref cmake-plugins and @ref plugins for more information. Supported formats for uncompressed data: diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index b9e0c8878..4fac8c16f 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -33,6 +33,9 @@ set(AnyImageConverter_HEADERS add_library(AnyImageConverterObjects OBJECT ${AnyImageConverter_SRCS} ${AnyImageConverter_HEADERS}) +target_include_directories(AnyImageConverterObjects PUBLIC + $ + ${PROJECT_SOURCE_DIR}/src) if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnyImageConverterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() @@ -45,16 +48,17 @@ add_plugin(AnyImageConverter ${MAGNUM_PLUGINS_IMAGECONVERTER_DEBUG_INSTALL_DIR} if(BUILD_STATIC_PIC) set_target_properties(AnyImageConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() - -target_link_libraries(AnyImageConverter ${MAGNUM_LIBRARIES}) +target_include_directories(AnyImageConverter PUBLIC ${PROJECT_SOURCE_DIR}/src) +target_link_libraries(AnyImageConverter Magnum::Magnum) install(FILES ${AnyImageConverter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter) if(BUILD_TESTS) add_library(MagnumAnyImageConverterTestLib STATIC $) - target_link_libraries(MagnumAnyImageConverterTestLib ${MAGNUM_LIBRARIES}) + target_include_directories(MagnumAnyImageConverterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src) + target_link_libraries(MagnumAnyImageConverterTestLib Magnum::Magnum) add_subdirectory(Test) endif() -# Magnum AnyImageConverter library for superprojects -set(MAGNUMPLUGINS_ANYIMAGECONVERTER_LIBRARY AnyImageConverter CACHE INTERNAL "") +# MagnumPlugins AnyImageConverter target alias for superprojects +add_library(MagnumPlugins::AnyImageConverter ALIAS AnyImageConverter) diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index d5c1a94b1..b03048b44 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -23,11 +23,10 @@ # DEALINGS IN THE SOFTWARE. # -include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) - set(PNG_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/output.png) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) corrade_add_test(AnyImageConverterTest Test.cpp LIBRARIES MagnumAnyImageConverterTestLib) +target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 593f65ada..706756974 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -58,11 +58,8 @@ This plugin is built if `WITH_ANYIMAGEIMPORTER` is enabled when building Magnum Plugins. To use dynamic plugin, you need to load `AnyImageImporter` plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to request `AnyImageImporter` component of `MagnumPlugins` package in CMake and -link to `${MAGNUMPLUGINS_ANYIMAGEIMPORTER_LIBRARIES}`. To use this as a -dependency of another plugin, you additionally need to add -`${MAGNUMPLUGINS_ANYIMAGEIMPORTER_INCLUDE_DIRS}` to include path. See -@ref building-plugins, @ref cmake-plugins and @ref plugins for more -information. +link to `MagnumPlugins::AnyImageImporter` target. See @ref building-plugins, +@ref cmake-plugins and @ref plugins for more information. Supported formats: diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index aa5d1692d..28c38de65 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -40,7 +40,11 @@ set(AnyImageImporter_HEADERS add_library(AnyImageImporterObjects OBJECT ${AnyImageImporter_SRCS} ${AnyImageImporter_HEADERS}) -set_target_properties(AnyImageImporterObjects PROPERTIES COMPILE_FLAGS "-DAnyImageImporterObjects_EXPORTS") +target_include_directories(AnyImageImporterObjects PUBLIC + $ + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) +target_compile_definitions(AnyImageImporterObjects PRIVATE "AnyImageImporterObjects_EXPORTS") if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnyImageImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() @@ -53,17 +57,22 @@ add_plugin(AnyImageImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNU if(BUILD_STATIC_PIC) set_target_properties(AnyImageImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() - -target_link_libraries(AnyImageImporter ${MAGNUM_LIBRARIES}) +target_include_directories(AnyImageImporter PUBLIC + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) +target_link_libraries(AnyImageImporter Magnum::Magnum) install(FILES ${AnyImageImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) if(BUILD_TESTS) add_library(MagnumAnyImageImporterTestLib STATIC $) - target_link_libraries(MagnumAnyImageImporterTestLib ${MAGNUM_LIBRARIES}) + target_include_directories(MagnumAnyImageImporterTestLib PUBLIC + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) + target_link_libraries(MagnumAnyImageImporterTestLib Magnum::Magnum) add_subdirectory(Test) endif() -# Magnum AnyImageImporter library for superprojects -set(MAGNUMPLUGINS_ANYIMAGEIMPORTER_LIBRARY AnyImageImporter CACHE INTERNAL "") +# MagnumPlugins AnyImageImporter target alias for superprojects +add_library(MagnumPlugins::AnyImageImporter ALIAS AnyImageImporter) diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index 6a593351f..c17a984c8 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -23,8 +23,6 @@ # DEALINGS IN THE SOFTWARE. # -include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) - set(TGA_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ColladaImporter/Test/ColladaImporterTestFiles/image.tga) set(JPEG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/JpegImporter/Test/rgb.jpg) set(PNG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/PngImporter/Test/rgb.png) @@ -33,10 +31,11 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) corrade_add_test(AnyImageImporterTest Test.cpp LIBRARIES MagnumAnyImageImporterTestLib) +target_include_directories(AnyImageImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting AnyImageImporter symbols, because it # would search for the symbols in some DLL even when they were linked # statically. However it apparently doesn't matter that they were dllexported # when building the static library. EH. if(WIN32) - set_target_properties(AnyImageImporterTest PROPERTIES COMPILE_FLAGS "-DMAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC") + target_compile_definitions(AnyImageImporterTest PRIVATE "MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC") endif() diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 2df65d629..a5aafe694 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -43,11 +43,8 @@ This plugin is built if `WITH_ANYSCENEIMPORTER` is enabled when building Magnum Plugins. To use dynamic plugin, you need to load `AnySceneImporter` plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to request `AnySceneImporter` component of `MagnumPlugins` package in CMake and -link to `${MAGNUMPLUGINS_ANYSCENEIMPORTER_LIBRARIES}`. To use this as a -dependency of another plugin, you additionally need to add -`${MAGNUMPLUGINS_ANYSCENEIMPORTER_INCLUDE_DIRS}` to include path. See -@ref building-plugins, @ref cmake-plugins and @ref plugins for more -information. +link to `MagnumPlugins::AnySceneImporter` target. See @ref building-plugins, +@ref cmake-plugins and @ref plugins for more information. Supported formats: diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index 3a53da61e..2a78aece1 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -33,7 +33,10 @@ set(AnySceneImporter_HEADERS add_library(AnySceneImporterObjects OBJECT ${AnySceneImporter_SRCS} ${AnySceneImporter_HEADERS}) -set_target_properties(AnySceneImporterObjects PROPERTIES COMPILE_FLAGS "-DAnySceneImporterObjects_EXPORTS") +target_include_directories(AnySceneImporterObjects PUBLIC + $ + ${PROJECT_SOURCE_DIR}/src) +target_compile_definitions(AnySceneImporterObjects PRIVATE "AnySceneImporterObjects_EXPORTS") if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnySceneImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() @@ -46,16 +49,17 @@ add_plugin(AnySceneImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNU if(BUILD_STATIC_PIC) set_target_properties(AnySceneImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() - -target_link_libraries(AnySceneImporter ${MAGNUM_LIBRARIES}) +target_include_directories(AnySceneImporter PUBLIC ${PROJECT_SOURCE_DIR}/src) +target_link_libraries(AnySceneImporter Magnum::Magnum) install(FILES ${AnySceneImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter) if(BUILD_TESTS) add_library(MagnumAnySceneImporterTestLib STATIC $) - target_link_libraries(MagnumAnySceneImporterTestLib ${MAGNUM_LIBRARIES}) + target_include_directories(MagnumAnySceneImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src) + target_link_libraries(MagnumAnySceneImporterTestLib Magnum::Magnum) add_subdirectory(Test) endif() -# Magnum AnySceneImporter library for superprojects -set(MAGNUMPLUGINS_ANYSCENEIMPORTER_LIBRARY AnySceneImporter CACHE INTERNAL "") +# MagnumPlugins AnySceneImporter target alias for superprojects +add_library(MagnumPlugins::AnySceneImporter ALIAS AnySceneImporter) diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 64f5242ca..78988fa96 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -23,8 +23,6 @@ # DEALINGS IN THE SOFTWARE. # -include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) - set(OBJ_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj) set(PLY_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StanfordImporter/Test/common.ply) @@ -32,3 +30,4 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) corrade_add_test(AnySceneImporterTest Test.cpp LIBRARIES MagnumAnySceneImporterTestLib) +target_include_directories(AnySceneImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) From ee83876edae67edaaedf6148dc5202c6a0ecd65a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 18 Mar 2016 02:26:56 +0100 Subject: [PATCH 34/59] Doc++ --- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index 94080470e..bf45d6b55 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -50,7 +50,7 @@ Supported formats for uncompressed data: - OpenEXR (`*.exr`), converted with any plugin that provides `OpenExrImageConverter` -- PNG (`*.png`), converted with @ref PngImageConverer or any other plugin +- PNG (`*.png`), converted with @ref PngImageConverter or any other plugin that provides it - TGA (`*.tga`), converted with @ref TgaImageConverter or any other plugin that provides it From 57bf0e678976963981c239899f310c99de4ad6a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 2 Aug 2016 11:38:48 +0200 Subject: [PATCH 35/59] Fix building of tests in Xcode. That dreaded CMake bug AGAIN. --- src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt | 4 +++- src/MagnumPlugins/AnyImageConverter/CMakeLists.txt | 4 +++- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 4 +++- src/MagnumPlugins/AnySceneImporter/CMakeLists.txt | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index 450b6633f..bd3ac0a5a 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -56,7 +56,9 @@ target_link_libraries(AnyAudioImporter Magnum::Magnum Magnum::Audio) install(FILES ${AnyAudioImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyAudioImporter) if(BUILD_TESTS) - add_library(MagnumAnyAudioImporterTestLib STATIC $) + add_library(MagnumAnyAudioImporterTestLib STATIC + $ + ${PROJECT_SOURCE_DIR}/src/dummy.cpp) # XCode workaround, see file comment for details target_include_directories(MagnumAnyAudioImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(MagnumAnyAudioImporterTestLib Magnum::Magnum Magnum::Audio) add_subdirectory(Test) diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index 4fac8c16f..6cbf3cc33 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -54,7 +54,9 @@ target_link_libraries(AnyImageConverter Magnum::Magnum) install(FILES ${AnyImageConverter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter) if(BUILD_TESTS) - add_library(MagnumAnyImageConverterTestLib STATIC $) + add_library(MagnumAnyImageConverterTestLib STATIC + $ + ${PROJECT_SOURCE_DIR}/src/dummy.cpp) # XCode workaround, see file comment for details target_include_directories(MagnumAnyImageConverterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(MagnumAnyImageConverterTestLib Magnum::Magnum) add_subdirectory(Test) diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index 28c38de65..d4933534c 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -66,7 +66,9 @@ install(FILES ${AnyImageImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_I install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) if(BUILD_TESTS) - add_library(MagnumAnyImageImporterTestLib STATIC $) + add_library(MagnumAnyImageImporterTestLib STATIC + $ + ${PROJECT_SOURCE_DIR}/src/dummy.cpp) # XCode workaround, see file comment for details target_include_directories(MagnumAnyImageImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src) diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index 2a78aece1..5d30ad24c 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -55,7 +55,9 @@ target_link_libraries(AnySceneImporter Magnum::Magnum) install(FILES ${AnySceneImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter) if(BUILD_TESTS) - add_library(MagnumAnySceneImporterTestLib STATIC $) + add_library(MagnumAnySceneImporterTestLib STATIC + $ + ${PROJECT_SOURCE_DIR}/src/dummy.cpp) # XCode workaround, see file comment for details target_include_directories(MagnumAnySceneImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(MagnumAnySceneImporterTestLib Magnum::Magnum) add_subdirectory(Test) From 3281d60b3e1d6178858644d36a387d9b7f23f735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 29 Aug 2016 23:57:28 +0200 Subject: [PATCH 36/59] Unconditionally export symbols of all plugins. --- .../AnyAudioImporter/AnyImporter.h | 33 ++-- .../AnyAudioImporter/CMakeLists.txt | 20 ++- .../AnyAudioImporter/Test/CMakeLists.txt | 7 + .../AnyAudioImporter/configure.h.cmake | 26 +++ .../AnyImageConverter/AnyImageConverter.h | 23 ++- .../AnyImageConverter/CMakeLists.txt | 20 ++- .../AnyImageConverter/Test/CMakeLists.txt | 7 + .../AnyImageConverter/configure.h.cmake | 26 +++ .../AnySceneImporter/AnySceneImporter.h | 150 ++++++++++-------- .../AnySceneImporter/CMakeLists.txt | 19 ++- .../AnySceneImporter/Test/CMakeLists.txt | 7 + .../AnySceneImporter/configure.h.cmake | 26 +++ 12 files changed, 274 insertions(+), 90 deletions(-) create mode 100644 src/MagnumPlugins/AnyAudioImporter/configure.h.cmake create mode 100644 src/MagnumPlugins/AnyImageConverter/configure.h.cmake create mode 100644 src/MagnumPlugins/AnySceneImporter/configure.h.cmake diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index 9e5165c79..d0cc8905f 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -32,6 +32,21 @@ #include #include +#include "MagnumPlugins/AnyAudioImporter/configure.h" + +#ifndef DOXYGEN_GENERATING_OUTPUT +#ifndef MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC + #if defined(AnyAudioImporter_EXPORTS) || defined(AnyAudioImporterObjects_EXPORTS) + #define MAGNUM_ANYAUDIOIMPORTER_EXPORT CORRADE_VISIBILITY_EXPORT + #else + #define MAGNUM_ANYAUDIOIMPORTER_EXPORT CORRADE_VISIBILITY_IMPORT + #endif +#else + #define MAGNUM_ANYAUDIOIMPORTER_EXPORT CORRADE_VISIBILITY_STATIC +#endif +#define MAGNUM_ANYAUDIOIMPORTER_LOCAL CORRADE_VISIBILITY_LOCAL +#endif + namespace Magnum { namespace Audio { /** @@ -56,7 +71,7 @@ Supported formats: Only loading from files is supported. */ -class AnyImporter: public AbstractImporter { +class MAGNUM_ANYAUDIOIMPORTER_EXPORT AnyImporter: public AbstractImporter { public: /** @brief Constructor with access to plugin manager */ explicit AnyImporter(PluginManager::Manager& manager); @@ -67,14 +82,14 @@ class AnyImporter: public AbstractImporter { ~AnyImporter(); private: - Features doFeatures() const override; - bool doIsOpened() const override; - void doClose() override; - void doOpenFile(const std::string& filename) override; - - Buffer::Format doFormat() const override; - UnsignedInt doFrequency() const override; - Containers::Array doData() override; + MAGNUM_ANYAUDIOIMPORTER_LOCAL Features doFeatures() const override; + MAGNUM_ANYAUDIOIMPORTER_LOCAL bool doIsOpened() const override; + MAGNUM_ANYAUDIOIMPORTER_LOCAL void doClose() override; + MAGNUM_ANYAUDIOIMPORTER_LOCAL void doOpenFile(const std::string& filename) override; + + MAGNUM_ANYAUDIOIMPORTER_LOCAL Buffer::Format doFormat() const override; + MAGNUM_ANYAUDIOIMPORTER_LOCAL UnsignedInt doFrequency() const override; + MAGNUM_ANYAUDIOIMPORTER_LOCAL Containers::Array doData() override; std::unique_ptr _in; }; diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index bd3ac0a5a..ee9b50e1d 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -25,6 +25,13 @@ find_package(Magnum REQUIRED Audio) +if(BUILD_STATIC) + set(MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC 1) +endif() + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/configure.h) + set(AnyAudioImporter_SRCS AnyImporter.cpp) @@ -37,7 +44,9 @@ add_library(AnyAudioImporterObjects OBJECT ${AnyAudioImporter_HEADERS}) target_include_directories(AnyAudioImporterObjects PUBLIC $ - ${PROJECT_SOURCE_DIR}/src) + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) +target_compile_definitions(AnyAudioImporterObjects PRIVATE "AnyAudioImporterObjects_EXPORTS") if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnyAudioImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() @@ -50,16 +59,21 @@ add_plugin(AnyAudioImporter ${MAGNUM_PLUGINS_AUDIOIMPORTER_DEBUG_INSTALL_DIR} ${ if(BUILD_STATIC_PIC) set_target_properties(AnyAudioImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_include_directories(AnyAudioImporter PUBLIC ${PROJECT_SOURCE_DIR}/src) +target_include_directories(AnyAudioImporter PUBLIC + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) target_link_libraries(AnyAudioImporter Magnum::Magnum Magnum::Audio) install(FILES ${AnyAudioImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyAudioImporter) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyAudioImporter) if(BUILD_TESTS) add_library(MagnumAnyAudioImporterTestLib STATIC $ ${PROJECT_SOURCE_DIR}/src/dummy.cpp) # XCode workaround, see file comment for details - target_include_directories(MagnumAnyAudioImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src) + target_include_directories(MagnumAnyAudioImporterTestLib PUBLIC + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) target_link_libraries(MagnumAnyAudioImporterTestLib Magnum::Magnum Magnum::Audio) add_subdirectory(Test) endif() diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index 42ff4b549..e14711732 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -31,3 +31,10 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake corrade_add_test(AnyAudioImporterTest Test.cpp LIBRARIES MagnumAnyAudioImporterTestLib) target_include_directories(AnyAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +# On Win32 we need to avoid dllimporting AnyAudioImporter symbols, because it +# would search for the symbols in some DLL even when they were linked +# statically. However it apparently doesn't matter that they were dllexported +# when building the static library. EH. +if(WIN32) + target_compile_definitions(AnyAudioImporterTest PRIVATE "MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC") +endif() diff --git a/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake b/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake new file mode 100644 index 000000000..a5fa13df2 --- /dev/null +++ b/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake @@ -0,0 +1,26 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#cmakedefine MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index bf45d6b55..c20332d4a 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -31,6 +31,21 @@ #include +#include "MagnumPlugins/AnyImageConverter/configure.h" + +#ifndef DOXYGEN_GENERATING_OUTPUT +#ifndef MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC + #if defined(AnyImageConverter_EXPORTS) || defined(AnyImageConverterObjects_EXPORTS) + #define MAGNUM_ANYIMAGECONVERTER_EXPORT CORRADE_VISIBILITY_EXPORT + #else + #define MAGNUM_ANYIMAGECONVERTER_EXPORT CORRADE_VISIBILITY_IMPORT + #endif +#else + #define MAGNUM_ANYIMAGECONVERTER_EXPORT CORRADE_VISIBILITY_STATIC +#endif +#define MAGNUM_ANYIMAGECONVERTER_LOCAL CORRADE_VISIBILITY_LOCAL +#endif + namespace Magnum { namespace Trade { /** @@ -59,7 +74,7 @@ No supported formats for compressed data yet. Only exporting to files is supported. */ -class AnyImageConverter: public AbstractImageConverter { +class MAGNUM_ANYIMAGECONVERTER_EXPORT AnyImageConverter: public AbstractImageConverter { public: /** @brief Constructor with access to plugin manager */ explicit AnyImageConverter(PluginManager::Manager& manager); @@ -70,9 +85,9 @@ class AnyImageConverter: public AbstractImageConverter { ~AnyImageConverter(); private: - Features doFeatures() const override; - bool doExportToFile(const ImageView2D& image, const std::string& filename) override; - bool doExportToFile(const CompressedImageView2D& image, const std::string& filename) override; + MAGNUM_ANYIMAGECONVERTER_LOCAL Features doFeatures() const override; + MAGNUM_ANYIMAGECONVERTER_LOCAL bool doExportToFile(const ImageView2D& image, const std::string& filename) override; + MAGNUM_ANYIMAGECONVERTER_LOCAL bool doExportToFile(const CompressedImageView2D& image, const std::string& filename) override; }; }} diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index 6cbf3cc33..e910522a5 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -23,6 +23,13 @@ # DEALINGS IN THE SOFTWARE. # +if(BUILD_STATIC) + set(MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC 1) +endif() + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/configure.h) + set(AnyImageConverter_SRCS AnyImageConverter.cpp) @@ -35,7 +42,9 @@ add_library(AnyImageConverterObjects OBJECT ${AnyImageConverter_HEADERS}) target_include_directories(AnyImageConverterObjects PUBLIC $ - ${PROJECT_SOURCE_DIR}/src) + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) +target_compile_definitions(AnyImageConverterObjects PRIVATE "AnyImageConverterObjects_EXPORTS") if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnyImageConverterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() @@ -48,16 +57,21 @@ add_plugin(AnyImageConverter ${MAGNUM_PLUGINS_IMAGECONVERTER_DEBUG_INSTALL_DIR} if(BUILD_STATIC_PIC) set_target_properties(AnyImageConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_include_directories(AnyImageConverter PUBLIC ${PROJECT_SOURCE_DIR}/src) +target_include_directories(AnyImageConverter PUBLIC + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) target_link_libraries(AnyImageConverter Magnum::Magnum) install(FILES ${AnyImageConverter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter) if(BUILD_TESTS) add_library(MagnumAnyImageConverterTestLib STATIC $ ${PROJECT_SOURCE_DIR}/src/dummy.cpp) # XCode workaround, see file comment for details - target_include_directories(MagnumAnyImageConverterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src) + target_include_directories(MagnumAnyImageConverterTestLib PUBLIC + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) target_link_libraries(MagnumAnyImageConverterTestLib Magnum::Magnum) add_subdirectory(Test) endif() diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index b03048b44..c2dc1105c 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -30,3 +30,10 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake corrade_add_test(AnyImageConverterTest Test.cpp LIBRARIES MagnumAnyImageConverterTestLib) target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +# On Win32 we need to avoid dllimporting AnyImageConverter symbols, because it +# would search for the symbols in some DLL even when they were linked +# statically. However it apparently doesn't matter that they were dllexported +# when building the static library. EH. +if(WIN32) + target_compile_definitions(AnyImageConverterTest PRIVATE "MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC") +endif() diff --git a/src/MagnumPlugins/AnyImageConverter/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/configure.h.cmake new file mode 100644 index 000000000..8330b7ef4 --- /dev/null +++ b/src/MagnumPlugins/AnyImageConverter/configure.h.cmake @@ -0,0 +1,26 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#cmakedefine MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index a5aafe694..986dfe83c 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -31,6 +31,21 @@ #include +#include "MagnumPlugins/AnySceneImporter/configure.h" + +#ifndef DOXYGEN_GENERATING_OUTPUT +#ifndef MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC + #if defined(AnySceneImporter_EXPORTS) || defined(AnySceneImporterObjects_EXPORTS) + #define MAGNUM_ANYSCENEIMPORTER_EXPORT CORRADE_VISIBILITY_EXPORT + #else + #define MAGNUM_ANYSCENEIMPORTER_EXPORT CORRADE_VISIBILITY_IMPORT + #endif +#else + #define MAGNUM_ANYSCENEIMPORTER_EXPORT CORRADE_VISIBILITY_STATIC +#endif +#define MAGNUM_ANYSCENEIMPORTER_LOCAL CORRADE_VISIBILITY_LOCAL +#endif + namespace Magnum { namespace Trade { /** @@ -59,7 +74,7 @@ Supported formats: Only loading from files is supported. */ -class AnySceneImporter: public AbstractImporter { +class MAGNUM_ANYSCENEIMPORTER_EXPORT AnySceneImporter: public AbstractImporter { public: /** @brief Constructor with access to plugin manager */ explicit AnySceneImporter(PluginManager::Manager& manager); @@ -70,74 +85,73 @@ class AnySceneImporter: public AbstractImporter { ~AnySceneImporter(); private: - Features doFeatures() const override; - bool doIsOpened() const override; - void doClose() override; - void doOpenFile(const std::string& filename) override; - - Int doDefaultScene() override; - - UnsignedInt doSceneCount() const override; - Int doSceneForName(const std::string& name) override; - std::string doSceneName(UnsignedInt id) override; - std::optional doScene(UnsignedInt id) override; - - UnsignedInt doLightCount() const override; - Int doLightForName(const std::string& name) override; - std::string doLightName(UnsignedInt id) override; - std::optional doLight(UnsignedInt id) override; - - UnsignedInt doCameraCount() const override; - Int doCameraForName(const std::string& name) override; - std::string doCameraName(UnsignedInt id) override; - std::optional doCamera(UnsignedInt id) override; - - UnsignedInt doObject2DCount() const override; - Int doObject2DForName(const std::string& name) override; - std::string doObject2DName(UnsignedInt id) override; - std::unique_ptr doObject2D(UnsignedInt id) override; - - UnsignedInt doObject3DCount() const override; - Int doObject3DForName(const std::string& name) override; - std::string doObject3DName(UnsignedInt id) override; - std::unique_ptr doObject3D(UnsignedInt id) override; - - UnsignedInt doMesh2DCount() const override; - Int doMesh2DForName(const std::string& name) override; - std::string doMesh2DName(UnsignedInt id) override; - std::optional doMesh2D(UnsignedInt id) override; - - UnsignedInt doMesh3DCount() const override; - Int doMesh3DForName(const std::string& name) override; - std::string doMesh3DName(UnsignedInt id) override; - std::optional doMesh3D(UnsignedInt id) override; - - UnsignedInt doMaterialCount() const override; - Int doMaterialForName(const std::string& name) override; - std::string doMaterialName(UnsignedInt id) override; - std::unique_ptr doMaterial(UnsignedInt id) override; - - UnsignedInt doTextureCount() const override; - Int doTextureForName(const std::string& name) override; - std::string doTextureName(UnsignedInt id) override; - std::optional doTexture(UnsignedInt id) override; - - UnsignedInt doImage1DCount() const override; - Int doImage1DForName(const std::string& name) override; - std::string doImage1DName(UnsignedInt id) override; - std::optional doImage1D(UnsignedInt id) override; - - UnsignedInt doImage2DCount() const override; - Int doImage2DForName(const std::string& name) override; - std::string doImage2DName(UnsignedInt id) override; - std::optional doImage2D(UnsignedInt id) override; - - UnsignedInt doImage3DCount() const override; - Int doImage3DForName(const std::string& name) override; - std::string doImage3DName(UnsignedInt id) override; - std::optional doImage3D(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Features doFeatures() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL bool doIsOpened() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL void doClose() override; + MAGNUM_ANYSCENEIMPORTER_LOCAL void doOpenFile(const std::string& filename) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doDefaultScene() override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doSceneCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doSceneForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doSceneName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doScene(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doLightCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doLightForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doLightName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doLight(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doCameraCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doCameraForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doCameraName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doCamera(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doObject2DCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doObject2DForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doObject2DName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::unique_ptr doObject2D(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doObject3DCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doObject3DForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doObject3DName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::unique_ptr doObject3D(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doMesh2DCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doMesh2DForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doMesh2DName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doMesh2D(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doMesh3DCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doMesh3DForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doMesh3DName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doMesh3D(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doMaterialCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doMaterialForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doMaterialName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::unique_ptr doMaterial(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doTextureCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doTextureForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doTextureName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doTexture(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doImage1DCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doImage1DForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doImage1DName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doImage1D(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doImage2DCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doImage2DForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doImage2DName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doImage2D(UnsignedInt id) override; + + MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doImage3DCount() const override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Int doImage3DForName(const std::string& name) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doImage3DName(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doImage3D(UnsignedInt id) override; - private: std::unique_ptr _in; }; diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index 5d30ad24c..31f91c80e 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -23,6 +23,13 @@ # DEALINGS IN THE SOFTWARE. # +if(BUILD_STATIC) + set(MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC 1) +endif() + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/configure.h) + set(AnySceneImporter_SRCS AnySceneImporter.cpp) @@ -35,7 +42,8 @@ add_library(AnySceneImporterObjects OBJECT ${AnySceneImporter_HEADERS}) target_include_directories(AnySceneImporterObjects PUBLIC $ - ${PROJECT_SOURCE_DIR}/src) + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) target_compile_definitions(AnySceneImporterObjects PRIVATE "AnySceneImporterObjects_EXPORTS") if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnySceneImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) @@ -49,16 +57,21 @@ add_plugin(AnySceneImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNU if(BUILD_STATIC_PIC) set_target_properties(AnySceneImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_include_directories(AnySceneImporter PUBLIC ${PROJECT_SOURCE_DIR}/src) +target_include_directories(AnySceneImporter PUBLIC + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) target_link_libraries(AnySceneImporter Magnum::Magnum) install(FILES ${AnySceneImporter_HEADERS} DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter) if(BUILD_TESTS) add_library(MagnumAnySceneImporterTestLib STATIC $ ${PROJECT_SOURCE_DIR}/src/dummy.cpp) # XCode workaround, see file comment for details - target_include_directories(MagnumAnySceneImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src) + target_include_directories(MagnumAnySceneImporterTestLib PUBLIC + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_BINARY_DIR}/src) target_link_libraries(MagnumAnySceneImporterTestLib Magnum::Magnum) add_subdirectory(Test) endif() diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 78988fa96..92b9e270c 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -31,3 +31,10 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake corrade_add_test(AnySceneImporterTest Test.cpp LIBRARIES MagnumAnySceneImporterTestLib) target_include_directories(AnySceneImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +# On Win32 we need to avoid dllimporting AnySceneImporter symbols, because it +# would search for the symbols in some DLL even when they were linked +# statically. However it apparently doesn't matter that they were dllexported +# when building the static library. EH. +if(WIN32) + target_compile_definitions(AnySceneImporterTest PRIVATE "MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC") +endif() diff --git a/src/MagnumPlugins/AnySceneImporter/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/configure.h.cmake new file mode 100644 index 000000000..d0e6813a2 --- /dev/null +++ b/src/MagnumPlugins/AnySceneImporter/configure.h.cmake @@ -0,0 +1,26 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#cmakedefine MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC From 4c099f3b2dbd513a841ed3e35c58116e6b0ee7fd Mon Sep 17 00:00:00 2001 From: Alice Date: Sat, 10 Sep 2016 13:41:13 -0400 Subject: [PATCH 37/59] Add FLAC importing via dr_flac --- src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp | 2 ++ src/MagnumPlugins/AnyAudioImporter/AnyImporter.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp index 42b3e81e3..aa9b290b1 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp @@ -53,6 +53,8 @@ void AnyImporter::doOpenFile(const std::string& filename) { plugin = "VorbisAudioImporter"; else if(Utility::String::endsWith(filename, ".wav")) plugin = "WavAudioImporter"; + else if(Utility::String::endsWith(filename, ".flac")) + plugin = "FlacAudioImporter"; else { Error() << "Audio::AnyImporter::openFile(): cannot determine type of file" << filename; return; diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index d0cc8905f..b15a3809c 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -68,6 +68,7 @@ Supported formats: `VorbisAudioImporter` - WAV (`*.wav`), loaded with @ref WavImporter "WavAudioImporter" or any other plugin that provides it +- FLAC (`*.flac`), loaded with any plugin that provides `FlacAudioImporter` Only loading from files is supported. */ From 2a429e1b267b6c9d47fd25f754f18ad78a639d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 11 Oct 2016 16:13:54 +0200 Subject: [PATCH 38/59] CMake: install plugin binary / library to different places. In order to have it correct on Windows where DLLs should be next to executables. --- src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt | 4 +++- src/MagnumPlugins/AnyImageConverter/CMakeLists.txt | 4 +++- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 4 +++- src/MagnumPlugins/AnySceneImporter/CMakeLists.txt | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index ee9b50e1d..bb5ae0816 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -52,7 +52,9 @@ if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) endif() # AnyAudioImporter plugin -add_plugin(AnyAudioImporter ${MAGNUM_PLUGINS_AUDIOIMPORTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_AUDIOIMPORTER_RELEASE_INSTALL_DIR} +add_plugin(AnyAudioImporter + "${MAGNUM_PLUGINS_AUDIOIMPORTER_DEBUG_BINARY_INSTALL_DIR};${MAGNUM_PLUGINS_AUDIOIMPORTER_DEBUG_LIBRARY_INSTALL_DIR}" + "${MAGNUM_PLUGINS_AUDIOIMPORTER_RELEASE_BINARY_INSTALL_DIR};${MAGNUM_PLUGINS_AUDIOIMPORTER_RELEASE_LIBRARY_INSTALL_DIR}" AnyAudioImporter.conf $ pluginRegistration.cpp) diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index e910522a5..784871bde 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -50,7 +50,9 @@ if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) endif() # AnyImageConverter plugin -add_plugin(AnyImageConverter ${MAGNUM_PLUGINS_IMAGECONVERTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_IMAGECONVERTER_RELEASE_INSTALL_DIR} +add_plugin(AnyImageConverter + "${MAGNUM_PLUGINS_IMAGECONVERTER_DEBUG_BINARY_INSTALL_DIR};${MAGNUM_PLUGINS_IMAGECONVERTER_DEBUG_LIBRARY_INSTALL_DIR}" + "${MAGNUM_PLUGINS_IMAGECONVERTER_RELEASE_BINARY_INSTALL_DIR};${MAGNUM_PLUGINS_IMAGECONVERTER_RELEASE_LIBRARY_INSTALL_DIR}" AnyImageConverter.conf $ pluginRegistration.cpp) diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index d4933534c..ffae99d0c 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -50,7 +50,9 @@ if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) endif() # AnyImageImporter plugin -add_plugin(AnyImageImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_IMPORTER_RELEASE_INSTALL_DIR} +add_plugin(AnyImageImporter + "${MAGNUM_PLUGINS_IMPORTER_DEBUG_BINARY_INSTALL_DIR};${MAGNUM_PLUGINS_IMPORTER_DEBUG_LIBRARY_INSTALL_DIR}" + "${MAGNUM_PLUGINS_IMPORTER_RELEASE_BINARY_INSTALL_DIR};${MAGNUM_PLUGINS_IMPORTER_RELEASE_LIBRARY_INSTALL_DIR}" AnyImageImporter.conf $ pluginRegistration.cpp) diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index 31f91c80e..d6cac6882 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -50,7 +50,9 @@ if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) endif() # AnySceneImporter plugin -add_plugin(AnySceneImporter ${MAGNUM_PLUGINS_IMPORTER_DEBUG_INSTALL_DIR} ${MAGNUM_PLUGINS_IMPORTER_RELEASE_INSTALL_DIR} +add_plugin(AnySceneImporter + "${MAGNUM_PLUGINS_IMPORTER_DEBUG_BINARY_INSTALL_DIR};${MAGNUM_PLUGINS_IMPORTER_DEBUG_LIBRARY_INSTALL_DIR}" + "${MAGNUM_PLUGINS_IMPORTER_RELEASE_BINARY_INSTALL_DIR};${MAGNUM_PLUGINS_IMPORTER_RELEASE_LIBRARY_INSTALL_DIR}" AnySceneImporter.conf $ pluginRegistration.cpp) From e2c1a2473fcccf4bd202d4af5d7981278e98341d Mon Sep 17 00:00:00 2001 From: Alice Date: Sun, 23 Oct 2016 01:54:58 -0400 Subject: [PATCH 39/59] DevilImageImporter: Fast and full featured image loader and manipulator --- .../AnyImageImporter/AnyImageImporter.cpp | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index 807ad7579..0b36afcfb 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -60,10 +60,24 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { plugin = "GifImporter"; else if(Utility::String::endsWith(filename, ".hdr")) plugin = "HdrImporter"; - else if(Utility::String::endsWith(filename, ".jpg") || Utility::String::endsWith(filename, ".jpeg")) + else if(Utility::String::endsWith(filename, ".jpg") + || Utility::String::endsWith(filename, ".jpeg") + || Utility::String::endsWith(filename, ".jpe") ) plugin = "JpegImporter"; + else if(Utility::String::endsWith(filename, ".jp2")) + plugin = "Jp2Importer"; + else if(Utility::String::endsWith(filename, ".mng")) + plugin = "MngImporter"; + else if(Utility::String::endsWith(filename, ".pal")) + plugin = "PalImporter"; + else if(Utility::String::endsWith(filename, ".pbm")) + plugin = "PbmImporter"; else if(Utility::String::endsWith(filename, ".pgm")) plugin = "PgmImporter"; + else if(Utility::String::endsWith(filename, ".pnm")) + plugin = "PnmImporter"; + else if(Utility::String::endsWith(filename, ".pcx")) + plugin = "PcxImporter"; else if(Utility::String::endsWith(filename, ".pic")) plugin = "PicImporter"; else if(Utility::String::endsWith(filename, ".png")) @@ -72,7 +86,20 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { plugin = "PpmImporter"; else if(Utility::String::endsWith(filename, ".psd")) plugin = "PsdImporter"; - else if(Utility::String::endsWith(filename, ".tga")) + else if(Utility::String::endsWith(filename, ".raw")) + plugin = "RawImporter"; + else if(Utility::String::endsWith(filename, ".sgi") + || Utility::String::endsWith(filename, ".bw") + || Utility::String::endsWith(filename, ".rgb") + || Utility::String::endsWith(filename, ".rgba")) + plugin = "SgiImporter"; + else if(Utility::String::endsWith(filename, ".tif") + || Utility::String::endsWith(filename, ".tiff")) + plugin = "TiffImporter"; + else if(Utility::String::endsWith(filename, ".tga") + || Utility::String::endsWith(filename, ".vda") + || Utility::String::endsWith(filename, ".icb") + || Utility::String::endsWith(filename, ".vst")) plugin = "TgaImporter"; else { Error() << "Trade::AnyImageImporter::openFile(): cannot determine type of file" << filename; From 648a35bb78d9657edbc1bbb19bd0ac9b678eb8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 23 Nov 2016 23:01:57 +0100 Subject: [PATCH 40/59] AnyImageImporter: coding style cleanup. --- .../AnyImageImporter/AnyImageImporter.cpp | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index 0b36afcfb..125cb7643 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -60,9 +60,9 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { plugin = "GifImporter"; else if(Utility::String::endsWith(filename, ".hdr")) plugin = "HdrImporter"; - else if(Utility::String::endsWith(filename, ".jpg") - || Utility::String::endsWith(filename, ".jpeg") - || Utility::String::endsWith(filename, ".jpe") ) + else if(Utility::String::endsWith(filename, ".jpg") || + Utility::String::endsWith(filename, ".jpeg") || + Utility::String::endsWith(filename, ".jpe") ) plugin = "JpegImporter"; else if(Utility::String::endsWith(filename, ".jp2")) plugin = "Jp2Importer"; @@ -72,14 +72,14 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { plugin = "PalImporter"; else if(Utility::String::endsWith(filename, ".pbm")) plugin = "PbmImporter"; - else if(Utility::String::endsWith(filename, ".pgm")) - plugin = "PgmImporter"; - else if(Utility::String::endsWith(filename, ".pnm")) - plugin = "PnmImporter"; else if(Utility::String::endsWith(filename, ".pcx")) plugin = "PcxImporter"; + else if(Utility::String::endsWith(filename, ".pgm")) + plugin = "PgmImporter"; else if(Utility::String::endsWith(filename, ".pic")) plugin = "PicImporter"; + else if(Utility::String::endsWith(filename, ".pnm")) + plugin = "PnmImporter"; else if(Utility::String::endsWith(filename, ".png")) plugin = "PngImporter"; else if(Utility::String::endsWith(filename, ".ppm")) @@ -88,18 +88,18 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { plugin = "PsdImporter"; else if(Utility::String::endsWith(filename, ".raw")) plugin = "RawImporter"; - else if(Utility::String::endsWith(filename, ".sgi") - || Utility::String::endsWith(filename, ".bw") - || Utility::String::endsWith(filename, ".rgb") - || Utility::String::endsWith(filename, ".rgba")) + else if(Utility::String::endsWith(filename, ".sgi") || + Utility::String::endsWith(filename, ".bw") || + Utility::String::endsWith(filename, ".rgb") || + Utility::String::endsWith(filename, ".rgba")) plugin = "SgiImporter"; - else if(Utility::String::endsWith(filename, ".tif") - || Utility::String::endsWith(filename, ".tiff")) + else if(Utility::String::endsWith(filename, ".tif") || + Utility::String::endsWith(filename, ".tiff")) plugin = "TiffImporter"; - else if(Utility::String::endsWith(filename, ".tga") - || Utility::String::endsWith(filename, ".vda") - || Utility::String::endsWith(filename, ".icb") - || Utility::String::endsWith(filename, ".vst")) + else if(Utility::String::endsWith(filename, ".tga") || + Utility::String::endsWith(filename, ".vda") || + Utility::String::endsWith(filename, ".icb") || + Utility::String::endsWith(filename, ".vst")) plugin = "TgaImporter"; else { Error() << "Trade::AnyImageImporter::openFile(): cannot determine type of file" << filename; From 5c48bb8ad7eacb1078a14fbe3da02a08ac9262ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 23 Nov 2016 23:05:32 +0100 Subject: [PATCH 41/59] Removed PalImporter and RawImporter aliases. They are too broad -- for example there is PaintShopPro PAL file or Halo PAL file with nothing in common, I know at least 10 formats that are RAW and all of them are completely different (camera bayer? compressed camera bayer? how much bits? what? videos? memory dump? huh?). --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index 125cb7643..e9f43014c 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -68,8 +68,6 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { plugin = "Jp2Importer"; else if(Utility::String::endsWith(filename, ".mng")) plugin = "MngImporter"; - else if(Utility::String::endsWith(filename, ".pal")) - plugin = "PalImporter"; else if(Utility::String::endsWith(filename, ".pbm")) plugin = "PbmImporter"; else if(Utility::String::endsWith(filename, ".pcx")) @@ -86,8 +84,6 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { plugin = "PpmImporter"; else if(Utility::String::endsWith(filename, ".psd")) plugin = "PsdImporter"; - else if(Utility::String::endsWith(filename, ".raw")) - plugin = "RawImporter"; else if(Utility::String::endsWith(filename, ".sgi") || Utility::String::endsWith(filename, ".bw") || Utility::String::endsWith(filename, ".rgb") || From c9cf96b7a3ec8db406ef445a5e238b9885ee1202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 23 Nov 2016 23:09:07 +0100 Subject: [PATCH 42/59] AnyImageImporter: adapt docs to recent changes. --- .../AnyImageImporter/AnyImageImporter.h | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 706756974..9c079174b 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -63,21 +63,34 @@ link to `MagnumPlugins::AnyImageImporter` target. See @ref building-plugins, Supported formats: -- BMP (`*.bmp`), loaded with any plugin that provides `BmpImporter` -- DDS (`*.dds`), loaded with @ref DdsImporter or any other plugin that - provides it -- GIF (`*.gif`), loaded with any plugin that provides `GifImporter` -- HDR (`*.hdr`), loaded with any plugin that provides `HdrImporter` -- JPEG (`*.jpg`, `*.jpeg`), loaded with @ref JpegImporter or any other plugin - that provides it -- PIC (`*.pic`), loaded with any plugin that provides `PicImporter` -- PGM (`*.pgm`), loaded with any plugin that provides `PgmImporter` -- PNG (`*.png`), loaded with @ref PngImporter or any other plugin that - provides it -- PPM (`*.ppm`), loaded with any plugin that provides `PpmImporter` -- PSD (`*.psd`), loaded with any plugin that provides `PsdImporter` -- TGA (`*.tga`), loaded with @ref TgaImporter or any other plugin that - provides it +- Windows Bitmap (`*.bmp`), loaded with any plugin that provides `BmpImporter` +- DirectDraw Surface (`*.dds`), loaded with @ref DdsImporter or any other + plugin that provides it +- Graphics Interchange Format (`*.gif`), loaded with any plugin that provides + `GifImporter` +- Radiance HDR (`*.hdr`), loaded with any plugin that provides `HdrImporter` +- JPEG (`*.jpg`, `*.jpe`, `*.jpeg`), loaded with @ref JpegImporter or any + other plugin that provides it +- JPEG 2000 (`*.jp2`), loaded with any plugin that provides `Jp2Importer` +- Multiple-image Network Graphics (`*.mng`), loaded with any plugin that + provides `MngImporter` +- Portable Bitmap (`*.pbm`), loaded with any plugin that provides `PbmImporter` +- ZSoft PCX (`*.pcx`), loaded with any plugin that provides `PcxImporter` +- Portable Graymap (`*.pgm`), loaded with any plugin that provides + `PgmImporter` +- Softimage PIC (`*.pic`), loaded with any plugin that provides `PicImporter` +- Portable Anymap (`*.pnm`), loaded with any plugin that provides + `PnmImporter` +- Portable Network Graphics (`*.png`), loaded with @ref PngImporter or any + other plugin that provides it +- Portable Pixmap (`*.ppm`), loaded with any plugin that provides `PpmImporter` +- Adobe Photoshop (`*.psd`), loaded with any plugin that provides `PsdImporter` +- Silicon Graphics (`*.sgi`, `*.bw`, `*.rgb`, `*.rgba`), loaded with any + plugin that provides `SgiImporter` +- Tagged Image File Format (`*.tif`, `*.tiff`), loaded with any plugin that + provides `TiffImporter` +- Truevision TGA (`*.tga`, `*.vda`, `*.icb`, `*.vst`), loaded with + @ref TgaImporter or any other plugin that provides it Only loading from files is supported. */ From d9d547d8b5cc52dc98e5e1b95199128e25d34bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 26 Nov 2016 22:11:39 +0100 Subject: [PATCH 43/59] AnyAudioImporter: removed duplicate file. That one is now part of DrWavAudioImporter tests. --- .../AnyAudioImporter/Test/CMakeLists.txt | 2 +- .../AnyAudioImporter/Test/stereo8.wav | Bin 48 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 src/MagnumPlugins/AnyAudioImporter/Test/stereo8.wav diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index e14711732..22f0de120 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -23,7 +23,7 @@ # DEALINGS IN THE SOFTWARE. # -set(WAV_FILE ${CMAKE_CURRENT_SOURCE_DIR}/stereo8.wav) +set(WAV_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/DrWavAudioImporter/Test/stereo8.wav) set(OGG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/stereo8.wav b/src/MagnumPlugins/AnyAudioImporter/Test/stereo8.wav deleted file mode 100644 index 02298ef3b1b44a5f186092b15dd675ac457ea6b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48 zcmWIYbaT^SU| Date: Sat, 26 Nov 2016 22:13:39 +0100 Subject: [PATCH 44/59] Include cleanup. In particular, don't use "" for including dependency headers. --- src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp | 4 +--- src/MagnumPlugins/AnyImageConverter/Test/Test.cpp | 5 ++--- src/MagnumPlugins/AnyImageImporter/Test/Test.cpp | 5 ++--- src/MagnumPlugins/AnySceneImporter/Test/Test.cpp | 6 +++--- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp index 544044e75..ebf8ec077 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp @@ -24,10 +24,8 @@ */ #include -#include #include - -#include "Magnum/Trade/ImageData.h" +#include #include "MagnumPlugins/AnyAudioImporter/AnyImporter.h" diff --git a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp index 5c3b9d5b3..d242972fb 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp @@ -27,9 +27,8 @@ #include #include #include - -#include "Magnum/PixelFormat.h" -#include "Magnum/Trade/ImageData.h" +#include +#include #include "MagnumPlugins/AnyImageConverter/AnyImageConverter.h" diff --git a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp index 1df47fd5d..a23d214cf 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp @@ -24,10 +24,9 @@ */ #include -#include #include - -#include "Magnum/Trade/ImageData.h" +#include +#include #include "MagnumPlugins/AnyImageImporter/AnyImageImporter.h" diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index 2f6e730e0..fa426f320 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -24,11 +24,11 @@ */ #include -#include #include +#include +#include +#include -#include "Magnum/Trade/ImageData.h" -#include "Magnum/Trade/MeshData3D.h" #include "MagnumPlugins/AnySceneImporter/AnySceneImporter.h" #include "configure.h" From 68898e70fcd30f2df12c2dda45a01fb2e5a248ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 26 Nov 2016 22:16:52 +0100 Subject: [PATCH 45/59] Bundle required files for all tests. Similarly to changes done in Magnum itself, this now generalizes the Emscripten file bundling to Android as well and additionally makes CTest check for file presence before running the tests. --- .../AnyAudioImporter/Test/CMakeLists.txt | 15 ++++++++++++--- .../AnyImageConverter/Test/CMakeLists.txt | 9 +++++++-- .../AnyImageConverter/Test/Test.cpp | 10 ++++++---- .../AnyImageConverter/Test/configure.h.cmake | 2 +- .../AnyImageImporter/Test/CMakeLists.txt | 19 +++++++++++++++---- .../AnySceneImporter/Test/CMakeLists.txt | 15 ++++++++++++--- 6 files changed, 53 insertions(+), 17 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index 22f0de120..e9c2585f4 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -23,13 +23,22 @@ # DEALINGS IN THE SOFTWARE. # -set(WAV_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/DrWavAudioImporter/Test/stereo8.wav) -set(OGG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) +if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) + set(WAV_FILE stereo8.wav) + set(OGG_FILE mono16.ogg) +else() + set(WAV_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/DrWavAudioImporter/Test/stereo8.wav) + set(OGG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(AnyAudioImporterTest Test.cpp LIBRARIES MagnumAnyAudioImporterTestLib) +corrade_add_test(AnyAudioImporterTest Test.cpp + LIBRARIES MagnumAnyAudioImporterTestLib + FILES + ../../DrWavAudioImporter/Test/stereo8.wav + ../../StbVorbisAudioImporter/Test/mono16.ogg) target_include_directories(AnyAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting AnyAudioImporter symbols, because it # would search for the symbols in some DLL even when they were linked diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index c2dc1105c..4612151d4 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -23,12 +23,17 @@ # DEALINGS IN THE SOFTWARE. # -set(PNG_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/output.png) +if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) + set(ANYIMAGECONVERTER_TEST_DIR "write") +else() + set(ANYIMAGECONVERTER_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}) +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(AnyImageConverterTest Test.cpp LIBRARIES MagnumAnyImageConverterTestLib) +corrade_add_test(AnyImageConverterTest Test.cpp + LIBRARIES MagnumAnyImageConverterTestLib) target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting AnyImageConverter symbols, because it # would search for the symbols in some DLL even when they were linked diff --git a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp index d242972fb..9d617578f 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp @@ -67,13 +67,15 @@ void AnyImageConverterTest::png() { if(_manager.loadState("PngImageConverter") == PluginManager::LoadState::NotFound) CORRADE_SKIP("PngImageConverter plugin not found, cannot test"); - if(Utility::Directory::fileExists(PNG_OUTPUT_FILE)) - CORRADE_VERIFY(Utility::Directory::rm(PNG_OUTPUT_FILE)); + const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_DIR, "output.png"); + + if(Utility::Directory::fileExists(filename)) + CORRADE_VERIFY(Utility::Directory::rm(filename)); /* Just test that the exported file exists */ AnyImageConverter converter{_manager}; - CORRADE_VERIFY(converter.exportToFile(Image, PNG_OUTPUT_FILE)); - CORRADE_VERIFY(Utility::Directory::fileExists(PNG_OUTPUT_FILE)); + CORRADE_VERIFY(converter.exportToFile(Image, filename)); + CORRADE_VERIFY(Utility::Directory::fileExists(filename)); } void AnyImageConverterTest::unknown() { diff --git a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake index 7c1c64324..932ed56c7 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake @@ -29,4 +29,4 @@ #define MAGNUM_PLUGINS_IMAGECONVERTER_DIR "${MAGNUM_PLUGINS_IMAGECONVERTER_DIR}" #endif -#define PNG_OUTPUT_FILE "${PNG_OUTPUT_FILE}" +#define ANYIMAGECONVERTER_TEST_DIR "${ANYIMAGECONVERTER_TEST_DIR}" diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index c17a984c8..b8608192d 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -23,14 +23,25 @@ # DEALINGS IN THE SOFTWARE. # -set(TGA_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ColladaImporter/Test/ColladaImporterTestFiles/image.tga) -set(JPEG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/JpegImporter/Test/rgb.jpg) -set(PNG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/PngImporter/Test/rgb.png) +if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) + set(TGA_FILE image.tga) + set(JPEG_FILE rgb.jpg) + set(PNG_FILE rgb.png) +else() + set(TGA_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ColladaImporter/Test/ColladaImporterTestFiles/image.tga) + set(JPEG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/JpegImporter/Test/rgb.jpg) + set(PNG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/PngImporter/Test/rgb.png) +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(AnyImageImporterTest Test.cpp LIBRARIES MagnumAnyImageImporterTestLib) +corrade_add_test(AnyImageImporterTest Test.cpp + LIBRARIES MagnumAnyImageImporterTestLib + FILES + ../../ColladaImporter/Test/ColladaImporterTestFiles/image.tga + ../../JpegImporter/Test/rgb.jpg + ../../PngImporter/Test/rgb.png) target_include_directories(AnyImageImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting AnyImageImporter symbols, because it # would search for the symbols in some DLL even when they were linked diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 92b9e270c..136e24837 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -23,13 +23,22 @@ # DEALINGS IN THE SOFTWARE. # -set(OBJ_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj) -set(PLY_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StanfordImporter/Test/common.ply) +if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) + set(OBJ_FILE mesh.obj) + set(PLY_FILE common.ply) +else() + set(OBJ_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mesh.obj) + set(PLY_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StanfordImporter/Test/common.ply) +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(AnySceneImporterTest Test.cpp LIBRARIES MagnumAnySceneImporterTestLib) +corrade_add_test(AnySceneImporterTest Test.cpp + LIBRARIES MagnumAnySceneImporterTestLib + FILES + mesh.obj + ../../StanfordImporter/Test/common.ply) target_include_directories(AnySceneImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting AnySceneImporter symbols, because it # would search for the symbols in some DLL even when they were linked From b00fea60a07ebbdcb851f29d8ef9e5d75621cf24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 7 Jan 2017 22:11:21 +0100 Subject: [PATCH 46/59] Adapt to changes in Corrade::PluginManager. --- src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp | 2 +- src/MagnumPlugins/AnyAudioImporter/AnyImporter.h | 2 +- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp index aa9b290b1..2e24d4669 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp @@ -34,7 +34,7 @@ namespace Magnum { namespace Audio { AnyImporter::AnyImporter(PluginManager::Manager& manager): AbstractImporter{manager} {} -AnyImporter::AnyImporter(PluginManager::AbstractManager& manager, std::string plugin): AbstractImporter{manager, std::move(plugin)} {} +AnyImporter::AnyImporter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractImporter{manager, plugin} {} AnyImporter::~AnyImporter() = default; diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index b15a3809c..7343f355b 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -78,7 +78,7 @@ class MAGNUM_ANYAUDIOIMPORTER_EXPORT AnyImporter: public AbstractImporter { explicit AnyImporter(PluginManager::Manager& manager); /** @brief Plugin manager constructor */ - explicit AnyImporter(PluginManager::AbstractManager& manager, std::string plugin); + explicit AnyImporter(PluginManager::AbstractManager& manager, const std::string& plugin); ~AnyImporter(); diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp index 0b0003a4f..ff7c4c9c3 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp @@ -35,7 +35,7 @@ namespace Magnum { namespace Trade { AnyImageConverter::AnyImageConverter(PluginManager::Manager& manager): AbstractImageConverter{manager} {} -AnyImageConverter::AnyImageConverter(PluginManager::AbstractManager& manager, std::string plugin): AbstractImageConverter{manager, std::move(plugin)} {} +AnyImageConverter::AnyImageConverter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractImageConverter{manager, plugin} {} AnyImageConverter::~AnyImageConverter() = default; diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index c20332d4a..488cb328a 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -80,7 +80,7 @@ class MAGNUM_ANYIMAGECONVERTER_EXPORT AnyImageConverter: public AbstractImageCon explicit AnyImageConverter(PluginManager::Manager& manager); /** @brief Plugin manager constructor */ - explicit AnyImageConverter(PluginManager::AbstractManager& manager, std::string plugin); + explicit AnyImageConverter(PluginManager::AbstractManager& manager, const std::string& plugin); ~AnyImageConverter(); diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index e9f43014c..ec5c00fa6 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -35,7 +35,7 @@ namespace Magnum { namespace Trade { AnyImageImporter::AnyImageImporter(PluginManager::Manager& manager): AbstractImporter{manager} {} -AnyImageImporter::AnyImageImporter(PluginManager::AbstractManager& manager, std::string plugin): AbstractImporter{manager, std::move(plugin)} {} +AnyImageImporter::AnyImageImporter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractImporter{manager, plugin} {} AnyImageImporter::~AnyImageImporter() = default; diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 9c079174b..f0b854234 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -100,7 +100,7 @@ class MAGNUM_ANYIMAGEIMPORTER_EXPORT AnyImageImporter: public AbstractImporter { explicit AnyImageImporter(PluginManager::Manager& manager); /** @brief Plugin manager constructor */ - explicit AnyImageImporter(PluginManager::AbstractManager& manager, std::string plugin); + explicit AnyImageImporter(PluginManager::AbstractManager& manager, const std::string& plugin); ~AnyImageImporter(); diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index 01090f24b..403214a57 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -44,7 +44,7 @@ namespace Magnum { namespace Trade { AnySceneImporter::AnySceneImporter(PluginManager::Manager& manager): AbstractImporter{manager} {} -AnySceneImporter::AnySceneImporter(PluginManager::AbstractManager& manager, std::string plugin): AbstractImporter{manager, std::move(plugin)} {} +AnySceneImporter::AnySceneImporter(PluginManager::AbstractManager& manager, const std::string& plugin): AbstractImporter{manager, plugin} {} AnySceneImporter::~AnySceneImporter() = default; diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 986dfe83c..094301140 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -80,7 +80,7 @@ class MAGNUM_ANYSCENEIMPORTER_EXPORT AnySceneImporter: public AbstractImporter { explicit AnySceneImporter(PluginManager::Manager& manager); /** @brief Plugin manager constructor */ - explicit AnySceneImporter(PluginManager::AbstractManager& manager, std::string plugin); + explicit AnySceneImporter(PluginManager::AbstractManager& manager, const std::string& plugin); ~AnySceneImporter(); From ba4538ef5a0412adefeadde63a213b951c2ce595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 8 Jan 2017 01:51:29 +0100 Subject: [PATCH 47/59] AnyImageConverter: recognize BMP, HDR and other TGA formats. --- .../AnyImageConverter/AnyImageConverter.cpp | 11 +++++++++-- .../AnyImageConverter/AnyImageConverter.h | 12 ++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp index ff7c4c9c3..35898b00b 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp @@ -48,11 +48,18 @@ bool AnyImageConverter::doExportToFile(const ImageView2D& image, const std::stri /* Detect type from extension */ std::string plugin; - if(Utility::String::endsWith(filename, ".exr")) + if(Utility::String::endsWith(filename, ".bmp")) + plugin = "BmpImageConverter"; + else if(Utility::String::endsWith(filename, ".exr")) plugin = "OpenExrImageConverter"; + else if(Utility::String::endsWith(filename, ".hdr")) + plugin = "HdrImageConverter"; else if(Utility::String::endsWith(filename, ".png")) plugin = "PngImageConverter"; - else if(Utility::String::endsWith(filename, ".tga")) + else if(Utility::String::endsWith(filename, ".tga") || + Utility::String::endsWith(filename, ".vda") || + Utility::String::endsWith(filename, ".icb") || + Utility::String::endsWith(filename, ".vst")) plugin = "TgaImageConverter"; else { Error() << "Trade::AnyImageConverter::exportToFile(): cannot determine type of file" << filename; diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index 488cb328a..633214a70 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -65,10 +65,14 @@ Supported formats for uncompressed data: - OpenEXR (`*.exr`), converted with any plugin that provides `OpenExrImageConverter` -- PNG (`*.png`), converted with @ref PngImageConverter or any other plugin - that provides it -- TGA (`*.tga`), converted with @ref TgaImageConverter or any other plugin - that provides it +- Windows Bitmap (`*.bmp`), converted with any plugin that provides + `BmpImageConverter` +- Radiance HDR (`*.hdr`), converted with any plugin that provides + `HdrImageConverter` +- Portable Network Graphics (`*.png`), converted with @ref PngImageConverter + or any other plugin that provides it +- Truevision TGA (`*.tga`, `*.vda`, `*.icb`, `*.vst`), converted with + @ref TgaImageConverter or any other plugin that provides it No supported formats for compressed data yet. From 6bed5541e7c88b7e929bd9b51b051579702cf8fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 8 Jan 2017 01:59:16 +0100 Subject: [PATCH 48/59] AnyImageImporter: missing else. Not a big deal, just some unnecessary comparisons in case of BMP. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index ec5c00fa6..9195a7c2e 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -54,7 +54,7 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { std::string plugin; if(Utility::String::endsWith(filename, ".bmp")) plugin = "BmpImporter"; - if(Utility::String::endsWith(filename, ".dds")) + else if(Utility::String::endsWith(filename, ".dds")) plugin = "DdsImporter"; else if(Utility::String::endsWith(filename, ".gif")) plugin = "GifImporter"; From 8e3f1820f2310c6d5ada6741376f95a8fea5e9d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 8 Jan 2017 02:00:34 +0100 Subject: [PATCH 49/59] Rename Jp2ImageImporter alias to Jpeg2000ImageImporter for better clarity. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index 9195a7c2e..95e4b0060 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -65,7 +65,7 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { Utility::String::endsWith(filename, ".jpe") ) plugin = "JpegImporter"; else if(Utility::String::endsWith(filename, ".jp2")) - plugin = "Jp2Importer"; + plugin = "Jpeg2000Importer"; else if(Utility::String::endsWith(filename, ".mng")) plugin = "MngImporter"; else if(Utility::String::endsWith(filename, ".pbm")) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index f0b854234..9b90b70bd 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -71,7 +71,8 @@ Supported formats: - Radiance HDR (`*.hdr`), loaded with any plugin that provides `HdrImporter` - JPEG (`*.jpg`, `*.jpe`, `*.jpeg`), loaded with @ref JpegImporter or any other plugin that provides it -- JPEG 2000 (`*.jp2`), loaded with any plugin that provides `Jp2Importer` +- JPEG 2000 (`*.jp2`), loaded with any plugin that provides + `Jpeg2000Importer` - Multiple-image Network Graphics (`*.mng`), loaded with any plugin that provides `MngImporter` - Portable Bitmap (`*.pbm`), loaded with any plugin that provides `PbmImporter` From 641ecb2c8d6dd9baafc8dc3019259309c753bd62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 8 Jan 2017 02:01:49 +0100 Subject: [PATCH 50/59] AnyImageImporter: recognize OpenEXR files. --- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 2 ++ src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index 95e4b0060..b2aace41a 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -56,6 +56,8 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { plugin = "BmpImporter"; else if(Utility::String::endsWith(filename, ".dds")) plugin = "DdsImporter"; + else if(Utility::String::endsWith(filename, ".exr")) + plugin = "OpenExrImporter"; else if(Utility::String::endsWith(filename, ".gif")) plugin = "GifImporter"; else if(Utility::String::endsWith(filename, ".hdr")) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 9b90b70bd..fad76113e 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -68,6 +68,7 @@ Supported formats: plugin that provides it - Graphics Interchange Format (`*.gif`), loaded with any plugin that provides `GifImporter` +- OpenEXR (`*.exr`), loaded with any plugin that provides `OpenExrImporter` - Radiance HDR (`*.hdr`), loaded with any plugin that provides `HdrImporter` - JPEG (`*.jpg`, `*.jpe`, `*.jpeg`), loaded with @ref JpegImporter or any other plugin that provides it From 0674b0886c893dbd32aa9b1c9461b2c7ac1f8be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 20 Mar 2017 18:11:01 +0100 Subject: [PATCH 51/59] Use angle-bracket-includes for dependencies. --- .../AnyImageConverter/AnyImageConverter.cpp | 3 +-- .../AnyImageImporter/AnyImageImporter.cpp | 3 +-- .../AnySceneImporter/AnySceneImporter.cpp | 21 +++++++++---------- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp index 35898b00b..5be2ed315 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp @@ -28,8 +28,7 @@ #include #include #include - -#include "Magnum/Trade/ImageData.h" +#include namespace Magnum { namespace Trade { diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index b2aace41a..d7c2dc8a3 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -28,8 +28,7 @@ #include #include #include - -#include "Magnum/Trade/ImageData.h" +#include namespace Magnum { namespace Trade { diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index 403214a57..00e161885 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -28,17 +28,16 @@ #include #include #include - -#include "Magnum/Trade/AbstractMaterialData.h" -#include "Magnum/Trade/CameraData.h" -#include "Magnum/Trade/ImageData.h" -#include "Magnum/Trade/LightData.h" -#include "Magnum/Trade/MeshData2D.h" -#include "Magnum/Trade/MeshData3D.h" -#include "Magnum/Trade/ObjectData2D.h" -#include "Magnum/Trade/ObjectData3D.h" -#include "Magnum/Trade/SceneData.h" -#include "Magnum/Trade/TextureData.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include namespace Magnum { namespace Trade { From e9cebf4fa5a97d0c7c0da8942696c2eca7d8b03b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 21 Mar 2017 01:49:32 +0100 Subject: [PATCH 52/59] Updated copyright year. --- src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp | 2 +- src/MagnumPlugins/AnyAudioImporter/AnyImporter.h | 2 +- src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyAudioImporter/configure.h.cmake | 2 +- src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h | 2 +- src/MagnumPlugins/AnyImageConverter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageConverter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageConverter/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 2 +- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageImporter/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 2 +- src/MagnumPlugins/AnySceneImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnySceneImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnySceneImporter/configure.h.cmake | 2 +- src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp index 2e24d4669..f81c86b43 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index 7343f355b..77b9ce0af 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index bb5ae0816..005c94f75 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index e9c2585f4..bb29f8360 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp index ebf8ec077..8cfe4f89e 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake index c31a1d05e..16c336e7a 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake b/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake index a5fa13df2..a39a52e38 100644 --- a/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake +++ b/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp index 241432f5e..00b5e42b6 100644 --- a/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp index 5be2ed315..edcb52d7b 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index 633214a70..0233406ae 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index 784871bde..bcaee99eb 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index 4612151d4..b71f33844 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp index 9d617578f..f59306bf6 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake index 932ed56c7..40f1a351f 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/configure.h.cmake index 8330b7ef4..5f2f3707c 100644 --- a/src/MagnumPlugins/AnyImageConverter/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageConverter/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp index d7e13653a..dbcd8412c 100644 --- a/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index d7c2dc8a3..04d9eec0c 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index fad76113e..2ca5a4389 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index ffae99d0c..c2d77a5cd 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index b8608192d..060987510 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp index a23d214cf..668c2821f 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake index 7b06d4a1b..a71f3d7f2 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/configure.h.cmake index c6aa46f79..b0a8f7a19 100644 --- a/src/MagnumPlugins/AnyImageImporter/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageImporter/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp index 8682b40e9..59fe8517a 100644 --- a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index 00e161885..92be2be6c 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 094301140..09d90c5e2 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index d6cac6882..2f8c5db49 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 136e24837..a13a6b3d7 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index fa426f320..579b67ef3 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake index 4abe44dd3..54b48f2c3 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/configure.h.cmake index d0e6813a2..3c37df02f 100644 --- a/src/MagnumPlugins/AnySceneImporter/configure.h.cmake +++ b/src/MagnumPlugins/AnySceneImporter/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp index 81044d010..5a5d8aa19 100644 --- a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a From 7cb5848ea649f935be272b355b6a9ae0ebb1d6f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 20 Jun 2017 17:59:58 +0200 Subject: [PATCH 53/59] CMake: organize targets in folders. --- src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt | 2 ++ src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt | 1 + src/MagnumPlugins/AnyImageConverter/CMakeLists.txt | 2 ++ src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt | 1 + src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 2 ++ src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt | 1 + src/MagnumPlugins/AnySceneImporter/CMakeLists.txt | 2 ++ src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt | 1 + 8 files changed, 12 insertions(+) diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index 005c94f75..7640756c9 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -50,6 +50,7 @@ target_compile_definitions(AnyAudioImporterObjects PRIVATE "AnyAudioImporterObje if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnyAudioImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() +set_target_properties(AnyAudioImporterObjects PROPERTIES FOLDER "MagnumPlugins/AnyAudioImporter") # AnyAudioImporter plugin add_plugin(AnyAudioImporter @@ -76,6 +77,7 @@ if(BUILD_TESTS) target_include_directories(MagnumAnyAudioImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src) + set_target_properties(MagnumAnyAudioImporterTestLib PROPERTIES FOLDER "MagnumPlugins/AnyAudioImporter") target_link_libraries(MagnumAnyAudioImporterTestLib Magnum::Magnum Magnum::Audio) add_subdirectory(Test) endif() diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index bb29f8360..d83615d73 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -47,3 +47,4 @@ target_include_directories(AnyAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_D if(WIN32) target_compile_definitions(AnyAudioImporterTest PRIVATE "MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC") endif() +set_target_properties(AnyAudioImporterTest PROPERTIES FOLDER "MagnumPlugins/AnyAudioImporter/Test") diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index bcaee99eb..79ec87100 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -48,6 +48,7 @@ target_compile_definitions(AnyImageConverterObjects PRIVATE "AnyImageConverterOb if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnyImageConverterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() +set_target_properties(AnyImageConverterObjects PROPERTIES FOLDER "MagnumPlugins/AnyImageConverter") # AnyImageConverter plugin add_plugin(AnyImageConverter @@ -74,6 +75,7 @@ if(BUILD_TESTS) target_include_directories(MagnumAnyImageConverterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src) + set_target_properties(MagnumAnyImageConverterTestLib PROPERTIES FOLDER "MagnumPlugins/AnyImageConverter") target_link_libraries(MagnumAnyImageConverterTestLib Magnum::Magnum) add_subdirectory(Test) endif() diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index b71f33844..1ade66cf7 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -42,3 +42,4 @@ target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_ if(WIN32) target_compile_definitions(AnyImageConverterTest PRIVATE "MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC") endif() +set_target_properties(AnyImageConverterTest PROPERTIES FOLDER "MagnumPlugins/AnyImageConverter/Test") diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index c2d77a5cd..fa480b9f4 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -48,6 +48,7 @@ target_compile_definitions(AnyImageImporterObjects PRIVATE "AnyImageImporterObje if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnyImageImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() +set_target_properties(AnyImageImporterObjects PROPERTIES FOLDER "MagnumPlugins/AnyImageImporter") # AnyImageImporter plugin add_plugin(AnyImageImporter @@ -74,6 +75,7 @@ if(BUILD_TESTS) target_include_directories(MagnumAnyImageImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src) + set_target_properties(MagnumAnyImageImporterTestLib PROPERTIES FOLDER "MagnumPlugins/AnyImageImporter") target_link_libraries(MagnumAnyImageImporterTestLib Magnum::Magnum) add_subdirectory(Test) endif() diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index 060987510..0c2f89977 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -50,3 +50,4 @@ target_include_directories(AnyImageImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_D if(WIN32) target_compile_definitions(AnyImageImporterTest PRIVATE "MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC") endif() +set_target_properties(AnyImageImporterTest PROPERTIES FOLDER "MagnumPlugins/AnyImageImporter/Test") diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index 2f8c5db49..656aa79ce 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -48,6 +48,7 @@ target_compile_definitions(AnySceneImporterObjects PRIVATE "AnySceneImporterObje if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) set_target_properties(AnySceneImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() +set_target_properties(AnySceneImporterObjects PROPERTIES FOLDER "MagnumPlugins/AnySceneImporter") # AnySceneImporter plugin add_plugin(AnySceneImporter @@ -74,6 +75,7 @@ if(BUILD_TESTS) target_include_directories(MagnumAnySceneImporterTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src) + set_target_properties(MagnumAnySceneImporterTestLib PROPERTIES FOLDER "MagnumPlugins/AnySceneImporter") target_link_libraries(MagnumAnySceneImporterTestLib Magnum::Magnum) add_subdirectory(Test) endif() diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index a13a6b3d7..8924f8346 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -47,3 +47,4 @@ target_include_directories(AnySceneImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_D if(WIN32) target_compile_definitions(AnySceneImporterTest PRIVATE "MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC") endif() +set_target_properties(AnySceneImporterTest PROPERTIES FOLDER "MagnumPlugins/AnySceneImporter/Test") From 3811a1b208dddcdeb6bcf46b695f466d1127f239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 22 Jul 2017 23:38:56 +0200 Subject: [PATCH 54/59] AnySceneImporter: support most of new formats from AssimpImporter. --- .../AnySceneImporter/AnySceneImporter.cpp | 49 ++++++++++++++++++- .../AnySceneImporter/AnySceneImporter.h | 35 ++++++++++++- .../AnySceneImporter/Test/Test.cpp | 4 +- 3 files changed, 83 insertions(+), 5 deletions(-) diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index 92be2be6c..a2383757a 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -60,14 +60,61 @@ void AnySceneImporter::doOpenFile(const std::string& filename) { /* Detect type from extension */ std::string plugin; - if(Utility::String::endsWith(filename, ".dae")) + if(Utility::String::endsWith(filename, ".3ds") || + Utility::String::endsWith(filename, ".ase")) + plugin = "3dsImporter"; + else if(Utility::String::endsWith(filename, ".ac")) + plugin = "Ac3dImporter"; + else if(Utility::String::endsWith(filename, ".blend")) + plugin = "BlenderImporter"; + else if(Utility::String::endsWith(filename, ".bvh")) + plugin = "BvhImporter"; + else if(Utility::String::endsWith(filename, ".csm")) + plugin = "CsmImporter"; + else if(Utility::String::endsWith(filename, ".dae")) plugin = "ColladaImporter"; + else if(Utility::String::endsWith(filename, ".x")) + plugin = "DirectXImporter"; + else if(Utility::String::endsWith(filename, ".dxf")) + plugin = "DxfImporter"; + else if(Utility::String::endsWith(filename, ".fbx")) + plugin = "FbxImporter"; + else if(Utility::String::endsWith(filename, ".gltf") || + Utility::String::endsWith(filename, ".glb")) + plugin = "GltfImporter"; + else if(Utility::String::endsWith(filename, ".ifc")) + plugin = "IfcImporter"; + else if(Utility::String::endsWith(filename, ".irrmesh") || + Utility::String::endsWith(filename, ".irr")) + plugin = "IrrlichtImporter"; + else if(Utility::String::endsWith(filename, ".lwo") || + Utility::String::endsWith(filename, ".lws")) + plugin = "LightWaveImporter"; + else if(Utility::String::endsWith(filename, ".lxo")) + plugin = "ModoImporter"; + else if(Utility::String::endsWith(filename, ".ms3d")) + plugin = "MilkshapeImporter"; else if(Utility::String::endsWith(filename, ".obj")) plugin = "ObjImporter"; + else if(Utility::String::endsWith(filename, ".xml")) + plugin = "OgreImporter"; else if(Utility::String::endsWith(filename, ".ogex")) plugin = "OpenGexImporter"; else if(Utility::String::endsWith(filename, ".ply")) plugin = "StanfordImporter"; + else if(Utility::String::endsWith(filename, ".stl")) + plugin = "StlImporter"; + else if(Utility::String::endsWith(filename, ".cob") || + Utility::String::endsWith(filename, ".scn")) + plugin = "TrueSpaceImporter"; + else if(Utility::String::endsWith(filename, ".3d")) + plugin = "UnrealImporter"; + else if(Utility::String::endsWith(filename, ".smd") || + Utility::String::endsWith(filename, ".vta")) + plugin = "ValveImporter"; + else if(Utility::String::endsWith(filename, ".xgl") || + Utility::String::endsWith(filename, ".zgl")) + plugin = "XglImporter"; else { Error() << "Trade::AnySceneImporter::openFile(): cannot determine type of file" << filename; return; diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 09d90c5e2..f21946a67 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -63,14 +63,45 @@ link to `MagnumPlugins::AnySceneImporter` target. See @ref building-plugins, Supported formats: +- 3ds Max 3DS and ASE (`*.3ds`, `*.ase`), loaded with any plugin that + provides `3dsImporter`` +- AC3D (`*.ac`), loaded with any plugin that provides `Ac3dImporter` +- Blender 3D (`*.blend`), loaded with any plugin that provides + `BlenderImporter` +- Biovision BVH (`*.bvh`), loaded with any plugin that provides `BvhImporter` +- CharacterStudio Motion (`*.csm`), loaded with any plugin that provides + `CsmImporter` - COLLADA (`*.dae`), loaded with @ref ColladaImporter or any other plugin that provides it -- OBJ (`*.obj`), loaded with @ref ObjImporter or any other plugin that - provides it +- DirectX X (`*.x`), loaded with any plugin that provides `DirectXImporter` +- AutoCAD DXF (`*.dxf`), loaded with any plugin that provides `DxfImporter` +- Autodesk FBX (`*.fbx`), loaded with any plugin that provides `FbxImporter` +- glTF (`*.gltf`, `*.glb`), loaded with any plugin that provides + `GltfImporter` +- Industry Foundation Classes (IFC/Step) (`*.ifc`), loaded with any plugin + that provides `IfcImporter` +- Irrlicht Mesh and Scene (`*.irrmesh`, `*.irr`), loaded with any plugin that + provides `IrrlichtImporter` +- LightWave, LightWave Scene (`*.lwo`, `*.lws`), loaded with any plugin that + provides `LightWaveImporter` +- Modo (`*.lxo`), loaded with any plugin that provides `ModoImporter` +- Milkshape 3D (`*.ms3d`), loaded with any plugin that provides + `MilkshapeImporter` +- Wavefront OBJ (`*.obj`), loaded with @ref ObjImporter or any other plugin + that provides it +- Ogre XML (`*.xml`), loaded with any plugin that provides `OgreImporter` - OpenGEX (`*.ogex`), loaded with @ref OpenGexImporter or any other plugin that provides it - Stanford (`*.ply`), loaded with @ref StanfordImporter or any other plugin that provides it +- Stereolitography (`*.stl`), loaded with any plugin that provides + `StlImporter` +- TrueSpace (`*.cob`, `*.scn`), loaded with any plugin that provides + `TrueSpaceImporter` +- Unreal (`*.3d`), loaded with any plugin that provides `UnrealImporter` +- Valve Model (`*.smd`, `*.vta`), loaded with any plugin that provides + `ValveImporter` +- XGL (`*.xgl`, `*.zgl`), loaded with any plugin that provides `XglImporter` Only loading from files is supported. */ diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index 579b67ef3..3509717ef 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -85,9 +85,9 @@ void AnySceneImporterTest::unknown() { Error redirectError{&output}; AnySceneImporter importer{_manager}; - CORRADE_VERIFY(!importer.openFile("mesh.stl")); + CORRADE_VERIFY(!importer.openFile("mesh.wtf")); - CORRADE_COMPARE(output.str(), "Trade::AnySceneImporter::openFile(): cannot determine type of file mesh.stl\n"); + CORRADE_COMPARE(output.str(), "Trade::AnySceneImporter::openFile(): cannot determine type of file mesh.wtf\n"); } }}} From e524912f92ce36506a8dd8d963acb141eb9b0ca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 3 Jan 2018 01:27:14 +0100 Subject: [PATCH 55/59] Properly ignore symbol export macros for Doxygen. --- src/MagnumPlugins/AnyAudioImporter/AnyImporter.h | 3 +++ src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h | 3 +++ src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 3 +++ src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 3 +++ 4 files changed, 12 insertions(+) diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index 77b9ce0af..6dfdac8cd 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -45,6 +45,9 @@ #define MAGNUM_ANYAUDIOIMPORTER_EXPORT CORRADE_VISIBILITY_STATIC #endif #define MAGNUM_ANYAUDIOIMPORTER_LOCAL CORRADE_VISIBILITY_LOCAL +#else +#define MAGNUM_ANYAUDIOIMPORTER_EXPORT +#define MAGNUM_ANYAUDIOIMPORTER_LOCAL #endif namespace Magnum { namespace Audio { diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index 0233406ae..9011ca043 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -44,6 +44,9 @@ #define MAGNUM_ANYIMAGECONVERTER_EXPORT CORRADE_VISIBILITY_STATIC #endif #define MAGNUM_ANYIMAGECONVERTER_LOCAL CORRADE_VISIBILITY_LOCAL +#else +#define MAGNUM_ANYIMAGECONVERTER_EXPORT +#define MAGNUM_ANYIMAGECONVERTER_LOCAL #endif namespace Magnum { namespace Trade { diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 2ca5a4389..bdf95d459 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -44,6 +44,9 @@ #define MAGNUM_ANYIMAGEIMPORTER_EXPORT CORRADE_VISIBILITY_STATIC #endif #define MAGNUM_ANYIMAGEIMPORTER_LOCAL CORRADE_VISIBILITY_LOCAL +#else +#define MAGNUM_ANYIMAGEIMPORTER_EXPORT +#define MAGNUM_ANYIMAGEIMPORTER_LOCAL #endif namespace Magnum { namespace Trade { diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index f21946a67..fc97e11b4 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -44,6 +44,9 @@ #define MAGNUM_ANYSCENEIMPORTER_EXPORT CORRADE_VISIBILITY_STATIC #endif #define MAGNUM_ANYSCENEIMPORTER_LOCAL CORRADE_VISIBILITY_LOCAL +#else +#define MAGNUM_ANYSCENEIMPORTER_EXPORT +#define MAGNUM_ANYSCENEIMPORTER_LOCAL #endif namespace Magnum { namespace Trade { From c1dc6b98aeea5cb6be6425270eb6d04446835cc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 3 Jan 2018 01:27:47 +0100 Subject: [PATCH 56/59] AnySceneImporter: doc++ --- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index fc97e11b4..852a6af9c 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -67,7 +67,7 @@ link to `MagnumPlugins::AnySceneImporter` target. See @ref building-plugins, Supported formats: - 3ds Max 3DS and ASE (`*.3ds`, `*.ase`), loaded with any plugin that - provides `3dsImporter`` + provides `3dsImporter` - AC3D (`*.ac`), loaded with any plugin that provides `Ac3dImporter` - Blender 3D (`*.blend`), loaded with any plugin that provides `BlenderImporter` From 8133ef31b0bcf0223aef1ca8c2a08c021f37c018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 5 Jan 2018 23:09:08 +0100 Subject: [PATCH 57/59] Updated copyright year. --- src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp | 2 +- src/MagnumPlugins/AnyAudioImporter/AnyImporter.h | 2 +- src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyAudioImporter/configure.h.cmake | 2 +- src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h | 2 +- src/MagnumPlugins/AnyImageConverter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageConverter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageConverter/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h | 2 +- src/MagnumPlugins/AnyImageImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnyImageImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageImporter/configure.h.cmake | 2 +- src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h | 2 +- src/MagnumPlugins/AnySceneImporter/CMakeLists.txt | 2 +- src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt | 2 +- src/MagnumPlugins/AnySceneImporter/Test/Test.cpp | 2 +- src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake | 2 +- src/MagnumPlugins/AnySceneImporter/configure.h.cmake | 2 +- src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp index f81c86b43..caf387edd 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index 6dfdac8cd..179e3b1c1 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index 7640756c9..c4b0bd72f 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index d83615d73..76b6b54b8 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp index 8cfe4f89e..f9cd630a1 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake index 16c336e7a..61770c1ce 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake b/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake index a39a52e38..01d549bd3 100644 --- a/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake +++ b/src/MagnumPlugins/AnyAudioImporter/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp index 00b5e42b6..67af6d38c 100644 --- a/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp index edcb52d7b..37c39eb61 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index 9011ca043..2cca7e1be 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index 79ec87100..5c87818a2 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index 1ade66cf7..d3f2be57c 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp index f59306bf6..bc2b13fae 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake index 40f1a351f..6bc996f64 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/configure.h.cmake index 5f2f3707c..5049950c8 100644 --- a/src/MagnumPlugins/AnyImageConverter/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageConverter/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp index dbcd8412c..7a0ecc66b 100644 --- a/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyImageConverter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index 04d9eec0c..c7c50839c 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index bdf95d459..f08adfb9d 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index fa480b9f4..cebf0433c 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index 0c2f89977..210a56c3d 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp index 668c2821f..65b77bd55 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake index a71f3d7f2..6c1865db5 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/configure.h.cmake index b0a8f7a19..d92d464fe 100644 --- a/src/MagnumPlugins/AnyImageImporter/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageImporter/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp index 59fe8517a..9d4239cd7 100644 --- a/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnyImageImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index a2383757a..2d500604f 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 852a6af9c..ed2401710 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -3,7 +3,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index 656aa79ce..a11e854b7 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 8924f8346..fcb8de90c 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of Magnum. # -# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 +# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 # Vladimír Vondruš # # Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index 3509717ef..409fb4022 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake index 54b48f2c3..a89919953 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/configure.h.cmake index 3c37df02f..6ca8ef0d6 100644 --- a/src/MagnumPlugins/AnySceneImporter/configure.h.cmake +++ b/src/MagnumPlugins/AnySceneImporter/configure.h.cmake @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp index 5a5d8aa19..444619567 100644 --- a/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp +++ b/src/MagnumPlugins/AnySceneImporter/pluginRegistration.cpp @@ -1,7 +1,7 @@ /* This file is part of Magnum. - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a From be8f19cc667fc984cebd5986f16ec73e80e3662f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 8 Jan 2018 22:59:15 +0100 Subject: [PATCH 58/59] Adapted to Magnum changes regarding Containers::Optional. --- .../AnyImageImporter/AnyImageImporter.cpp | 2 +- .../AnyImageImporter/AnyImageImporter.h | 2 +- .../AnyImageImporter/Test/Test.cpp | 6 +++--- .../AnySceneImporter/AnySceneImporter.cpp | 18 +++++++++--------- .../AnySceneImporter/AnySceneImporter.h | 18 +++++++++--------- .../AnySceneImporter/Test/Test.cpp | 4 ++-- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp index c7c50839c..fa6a9b9c7 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp @@ -120,6 +120,6 @@ void AnyImageImporter::doOpenFile(const std::string& filename) { UnsignedInt AnyImageImporter::doImage2DCount() const { return _in->image2DCount(); } -std::optional AnyImageImporter::doImage2D(const UnsignedInt id) { return _in->image2D(id); } +Containers::Optional AnyImageImporter::doImage2D(const UnsignedInt id) { return _in->image2D(id); } }} diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index f08adfb9d..5f8037d11 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -116,7 +116,7 @@ class MAGNUM_ANYIMAGEIMPORTER_EXPORT AnyImageImporter: public AbstractImporter { MAGNUM_ANYIMAGEIMPORTER_LOCAL void doOpenFile(const std::string& filename) override; MAGNUM_ANYIMAGEIMPORTER_LOCAL UnsignedInt doImage2DCount() const override; - MAGNUM_ANYIMAGEIMPORTER_LOCAL std::optional doImage2D(UnsignedInt id) override; + MAGNUM_ANYIMAGEIMPORTER_LOCAL Containers::Optional doImage2D(UnsignedInt id) override; std::unique_ptr _in; }; diff --git a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp index 65b77bd55..1933e0908 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageImporter/Test/Test.cpp @@ -63,7 +63,7 @@ void AnyImageImporterTest::tga() { CORRADE_VERIFY(importer.openFile(TGA_FILE)); /* Check only size, as it is good enough proof that it is working */ - std::optional image = importer.image2D(0); + Containers::Optional image = importer.image2D(0); CORRADE_VERIFY(image); CORRADE_COMPARE(image->size(), Vector2i(2, 3)); } @@ -76,7 +76,7 @@ void AnyImageImporterTest::jpeg() { CORRADE_VERIFY(importer.openFile(JPEG_FILE)); /* Check only size, as it is good enough proof that it is working */ - std::optional image = importer.image2D(0); + Containers::Optional image = importer.image2D(0); CORRADE_VERIFY(image); CORRADE_COMPARE(image->size(), Vector2i(3, 2)); } @@ -89,7 +89,7 @@ void AnyImageImporterTest::png() { CORRADE_VERIFY(importer.openFile(PNG_FILE)); /* Check only size, as it is good enough proof that it is working */ - std::optional image = importer.image2D(0); + Containers::Optional image = importer.image2D(0); CORRADE_VERIFY(image); CORRADE_COMPARE(image->size(), Vector2i(3, 2)); } diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp index 2d500604f..5c61c2d87 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp @@ -140,17 +140,17 @@ Int AnySceneImporter::doDefaultScene() { return _in->defaultScene(); } UnsignedInt AnySceneImporter::doSceneCount() const { return _in->sceneCount(); } Int AnySceneImporter::doSceneForName(const std::string& name) { return _in->sceneForName(name); } std::string AnySceneImporter::doSceneName(const UnsignedInt id) { return _in->sceneName(id); } -std::optional AnySceneImporter::doScene(const UnsignedInt id) { return _in->scene(id); } +Containers::Optional AnySceneImporter::doScene(const UnsignedInt id) { return _in->scene(id); } UnsignedInt AnySceneImporter::doLightCount() const { return _in->lightCount(); } Int AnySceneImporter::doLightForName(const std::string& name) { return _in->lightForName(name); } std::string AnySceneImporter::doLightName(const UnsignedInt id) { return _in->lightName(id); } -std::optional AnySceneImporter::doLight(const UnsignedInt id) { return _in->light(id); } +Containers::Optional AnySceneImporter::doLight(const UnsignedInt id) { return _in->light(id); } UnsignedInt AnySceneImporter::doCameraCount() const { return _in->cameraCount(); } Int AnySceneImporter::doCameraForName(const std::string& name) { return _in->cameraForName(name); } std::string AnySceneImporter::doCameraName(const UnsignedInt id) { return _in->cameraName(id); } -std::optional AnySceneImporter::doCamera(const UnsignedInt id) { return _in->camera(id); } +Containers::Optional AnySceneImporter::doCamera(const UnsignedInt id) { return _in->camera(id); } UnsignedInt AnySceneImporter::doObject2DCount() const { return _in->object2DCount(); } Int AnySceneImporter::doObject2DForName(const std::string& name) { return _in->object2DForName(name); } @@ -165,12 +165,12 @@ std::unique_ptr AnySceneImporter::doObject3D(const UnsignedInt id) UnsignedInt AnySceneImporter::doMesh2DCount() const { return _in->mesh2DCount(); } Int AnySceneImporter::doMesh2DForName(const std::string& name) { return _in->mesh2DForName(name); } std::string AnySceneImporter::doMesh2DName(const UnsignedInt id) { return _in->mesh2DName(id); } -std::optional AnySceneImporter::doMesh2D(const UnsignedInt id) { return _in->mesh2D(id); } +Containers::Optional AnySceneImporter::doMesh2D(const UnsignedInt id) { return _in->mesh2D(id); } UnsignedInt AnySceneImporter::doMesh3DCount() const { return _in->mesh3DCount(); } Int AnySceneImporter::doMesh3DForName(const std::string& name) { return _in->mesh3DForName(name); } std::string AnySceneImporter::doMesh3DName(const UnsignedInt id) { return _in->mesh3DName(id); } -std::optional AnySceneImporter::doMesh3D(const UnsignedInt id) { return _in->mesh3D(id); } +Containers::Optional AnySceneImporter::doMesh3D(const UnsignedInt id) { return _in->mesh3D(id); } UnsignedInt AnySceneImporter::doMaterialCount() const { return _in->materialCount(); } Int AnySceneImporter::doMaterialForName(const std::string& name) { return _in->materialForName(name); } @@ -180,21 +180,21 @@ std::unique_ptr AnySceneImporter::doMaterial(const Unsigne UnsignedInt AnySceneImporter::doTextureCount() const { return _in->textureCount(); } Int AnySceneImporter::doTextureForName(const std::string& name) { return _in->textureForName(name); } std::string AnySceneImporter::doTextureName(const UnsignedInt id) { return _in->textureName(id); } -std::optional AnySceneImporter::doTexture(const UnsignedInt id) { return _in->texture(id); } +Containers::Optional AnySceneImporter::doTexture(const UnsignedInt id) { return _in->texture(id); } UnsignedInt AnySceneImporter::doImage1DCount() const { return _in->image1DCount(); } Int AnySceneImporter::doImage1DForName(const std::string& name) { return _in->image1DForName(name); } std::string AnySceneImporter::doImage1DName(const UnsignedInt id) { return _in->image1DName(id); } -std::optional AnySceneImporter::doImage1D(const UnsignedInt id) { return _in->image1D(id); } +Containers::Optional AnySceneImporter::doImage1D(const UnsignedInt id) { return _in->image1D(id); } UnsignedInt AnySceneImporter::doImage2DCount() const { return _in->image2DCount(); } Int AnySceneImporter::doImage2DForName(const std::string& name) { return _in->image2DForName(name); } std::string AnySceneImporter::doImage2DName(const UnsignedInt id) { return _in->image2DName(id); } -std::optional AnySceneImporter::doImage2D(const UnsignedInt id) { return _in->image2D(id); } +Containers::Optional AnySceneImporter::doImage2D(const UnsignedInt id) { return _in->image2D(id); } UnsignedInt AnySceneImporter::doImage3DCount() const { return _in->image3DCount(); } Int AnySceneImporter::doImage3DForName(const std::string& name) { return _in->image3DForName(name); } std::string AnySceneImporter::doImage3DName(const UnsignedInt id) { return _in->image3DName(id); } -std::optional AnySceneImporter::doImage3D(const UnsignedInt id) { return _in->image3D(id); } +Containers::Optional AnySceneImporter::doImage3D(const UnsignedInt id) { return _in->image3D(id); } }} diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index ed2401710..8c69d440b 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -129,17 +129,17 @@ class MAGNUM_ANYSCENEIMPORTER_EXPORT AnySceneImporter: public AbstractImporter { MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doSceneCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doSceneForName(const std::string& name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doSceneName(UnsignedInt id) override; - MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doScene(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional doScene(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doLightCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doLightForName(const std::string& name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doLightName(UnsignedInt id) override; - MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doLight(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional doLight(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doCameraCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doCameraForName(const std::string& name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doCameraName(UnsignedInt id) override; - MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doCamera(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional doCamera(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doObject2DCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doObject2DForName(const std::string& name) override; @@ -154,12 +154,12 @@ class MAGNUM_ANYSCENEIMPORTER_EXPORT AnySceneImporter: public AbstractImporter { MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doMesh2DCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doMesh2DForName(const std::string& name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doMesh2DName(UnsignedInt id) override; - MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doMesh2D(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional doMesh2D(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doMesh3DCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doMesh3DForName(const std::string& name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doMesh3DName(UnsignedInt id) override; - MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doMesh3D(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional doMesh3D(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doMaterialCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doMaterialForName(const std::string& name) override; @@ -169,22 +169,22 @@ class MAGNUM_ANYSCENEIMPORTER_EXPORT AnySceneImporter: public AbstractImporter { MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doTextureCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doTextureForName(const std::string& name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doTextureName(UnsignedInt id) override; - MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doTexture(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional doTexture(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doImage1DCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doImage1DForName(const std::string& name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doImage1DName(UnsignedInt id) override; - MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doImage1D(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional doImage1D(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doImage2DCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doImage2DForName(const std::string& name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doImage2DName(UnsignedInt id) override; - MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doImage2D(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional doImage2D(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL UnsignedInt doImage3DCount() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doImage3DForName(const std::string& name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL std::string doImage3DName(UnsignedInt id) override; - MAGNUM_ANYSCENEIMPORTER_LOCAL std::optional doImage3D(UnsignedInt id) override; + MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional doImage3D(UnsignedInt id) override; std::unique_ptr _in; }; diff --git a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp index 409fb4022..a43bea6bf 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/Test.cpp @@ -62,7 +62,7 @@ void AnySceneImporterTest::obj() { CORRADE_VERIFY(importer.openFile(OBJ_FILE)); /* Check only size, as it is good enough proof that it is working */ - std::optional mesh = importer.mesh3D(0); + Containers::Optional mesh = importer.mesh3D(0); CORRADE_VERIFY(mesh); CORRADE_COMPARE(mesh->positions(0).size(), 3); } @@ -75,7 +75,7 @@ void AnySceneImporterTest::ply() { CORRADE_VERIFY(importer.openFile(PLY_FILE)); /* Check only size, as it is good enough proof that it is working */ - std::optional mesh = importer.mesh3D(0); + Containers::Optional mesh = importer.mesh3D(0); CORRADE_VERIFY(mesh); CORRADE_COMPARE(mesh->positions(0).size(), 5); } From 2af16e9360ffa5223b68c6a2e1f7475628e32701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 12 Jan 2018 14:42:04 +0100 Subject: [PATCH 59/59] doc: building documentation updates etc. --- src/MagnumPlugins/AnyAudioImporter/AnyImporter.h | 12 +++++++----- .../AnyImageConverter/AnyImageConverter.h | 12 +++++++----- .../AnyImageImporter/AnyImageImporter.h | 12 +++++++----- .../AnySceneImporter/AnySceneImporter.h | 12 +++++++----- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index 179e3b1c1..4c0eb8f67 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -58,11 +58,13 @@ namespace Magnum { namespace Audio { Detects file type based on file extension, loads corresponding plugin and then tries to open the file with it. -This plugin is built if `WITH_ANYAUDIOIMPORTER` is enabled when building -Magnum Plugins. To use dynamic plugin, you need to load `AnyAudioImporter` -plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to -request `AnyAudioImporter` component of `MagnumPlugins` package in CMake and -link to `MagnumPlugins::AnyAudioImporter` target. See @ref building-plugins, +This plugin depends on the @ref Audio library and is built if +`WITH_ANYAUDIOIMPORTER` is enabled when building Magnum Plugins. To use as a +dynamic plugin, you need to load the @cpp "AnyAudioImporter" @ce plugin from +`MAGNUM_PLUGINS_IMPORTER_DIR`. To use as a static plugin or as a dependency of +another plugin with CMake, you need to request the `AnyAudioImporter` component +of the `MagnumPlugins` package and link to the +`MagnumPlugins::AnyAudioImporter` target. See @ref building-plugins, @ref cmake-plugins and @ref plugins for more information. Supported formats: diff --git a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h index 2cca7e1be..fc3fb15c0 100644 --- a/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h +++ b/src/MagnumPlugins/AnyImageConverter/AnyImageConverter.h @@ -57,11 +57,13 @@ namespace Magnum { namespace Trade { Detects file type based on file extension, loads corresponding plugin and then tries to convert the file with it. -This plugin is built if `WITH_ANYIMAGECONVERTER` is enabled when building -Magnum Plugins. To use dynamic plugin, you need to load `AnyImageConverter` -plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to -request `AnyImageConverter` component of `MagnumPlugins` package in CMake and -link to `MagnumPlugins::AnyImageConverter` target. See @ref building-plugins, +This plugin depends on the @ref Trade library and is built if +`WITH_ANYIMAGECONVERTER` is enabled when building Magnum Plugins. To use as a +dynamic plugin, you need to load the @cpp "AnyImageConverter" @ce plugin from +`MAGNUM_PLUGINS_IMPORTER_DIR`. To use as a static plugin or as a dependency of +another plugin with CMake, you need to request the `AnyImageConverter` +component of the `MagnumPlugins` package and link to the +`MagnumPlugins::AnyImageConverter` target. See @ref building-plugins, @ref cmake-plugins and @ref plugins for more information. Supported formats for uncompressed data: diff --git a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h index 5f8037d11..bcaca9c39 100644 --- a/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h +++ b/src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h @@ -57,11 +57,13 @@ namespace Magnum { namespace Trade { Detects file type based on file extension, loads corresponding plugin and then tries to open the file with it. -This plugin is built if `WITH_ANYIMAGEIMPORTER` is enabled when building -Magnum Plugins. To use dynamic plugin, you need to load `AnyImageImporter` -plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to -request `AnyImageImporter` component of `MagnumPlugins` package in CMake and -link to `MagnumPlugins::AnyImageImporter` target. See @ref building-plugins, +This plugin depends on the @ref Trade library and is built if +`WITH_ANYIMAGEIMPORTER` is enabled when building Magnum Plugins. To use as a +dynamic plugin, you need to load the @cpp "AnyImageImporter" @ce plugin from +`MAGNUM_PLUGINS_IMPORTER_DIR`. To use as a static plugin or as a dependency of +another plugin with CMake, you need to request the `AnyImageImporter` component +of the `MagnumPlugins` package and link to the +`MagnumPlugins::AnyImageImporter` target. See @ref building-plugins, @ref cmake-plugins and @ref plugins for more information. Supported formats: diff --git a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h index 8c69d440b..03071e385 100644 --- a/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h +++ b/src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h @@ -57,11 +57,13 @@ namespace Magnum { namespace Trade { Detects file type based on file extension, loads corresponding plugin and then tries to open the file with it. -This plugin is built if `WITH_ANYSCENEIMPORTER` is enabled when building -Magnum Plugins. To use dynamic plugin, you need to load `AnySceneImporter` -plugin from `MAGNUM_PLUGINS_IMPORTER_DIR`. To use static plugin, you need to -request `AnySceneImporter` component of `MagnumPlugins` package in CMake and -link to `MagnumPlugins::AnySceneImporter` target. See @ref building-plugins, +This plugin depends on the @ref Trade library and is built if +`WITH_ANYSCENEIMPORTER` is enabled when building Magnum Plugins. To use as a +dynamic plugin, you need to load the @cpp "AnySceneImporter" @ce plugin from +`MAGNUM_PLUGINS_IMPORTER_DIR`. To use as a static plugin or as a dependency of +another plugin with CMake, you need to request the `AnySceneImporter` component +of the `MagnumPlugins` package in CMake and link to the +`MagnumPlugins::AnySceneImporter` target. See @ref building-plugins, @ref cmake-plugins and @ref plugins for more information. Supported formats: