Changelog » Plugins

Changes since 2020.06

New features

Changes and improvements

  • The workaround for an Assimp 4.1 white ambient bug in AssimpImporter can now be disabled using the forceWhiteAmbientToBlack plugin-specific option.
  • FreeTypeFont now treats its internal global library handle as thread-local on all platforms except Windows, making it possible to be used in multi-threaded environments
  • StanfordImporter now supports also indices specified as vertex_index, which is what Assimp uses for export (see mosra/magnum-plugins#94)
  • TinyGltfImporter now performs range checks on scene, node, camera, mesh, material, child and light references in the scene hierarchy for more robust handling of broken files
  • StbImageImporter now imports 16-bit PNG and PSD files as 16-bit instead of converting to 8 bit
  • StbImageImporter now makes it possible to override imported image channel count using forceChannelCount
  • StbImageConverter can now detect output format from the file extension when calling convertToData() without having to load the plugin with a concrete format alias
  • DrFlacAudioImporter no longer advertises support for 32-bit-per-channel FLAC files, as there's no known way to produce them and thus the case is impossible to test for.
  • BasisImageConverter no longer produces excessive log on output by default, only if Trade::ImporterFlag::Verbose is set (see mosra/magnum-plugins#112)

Build system

  • The versionPlugins.h header now gets populated from Git correctly also when inside a CMake subproject
  • Linux, Emscripten and macOS builds were migrated from Travis to Circle CI
  • UseEmscripten is no longer implicitly included on Emscripten as it's not needed for anything (see mosra/magnum#490)
  • On CMake 3.16 and newer, FindMagnumPlugins.cmake can provide additional details if some component is not found.
  • FindAssimp.cmake now attempts to use installed Assimp CMake config files, if they are not broken, to correctly find and link to all dependencies in case of a static build. This is mainly to support static builds in Vcpkg, vanilla Assimp 5.0.1 config files are irreparably broken on all platforms except dynamic Windows builds.
  • The Homebrew package now uses std_cmake_args instead of hardcoded build type and install prefix, which resolves certain build issues (see mosra/homebrew-magnum#6)
  • Suppressed a GCC 10 warning about a (harmless) uninitialized variable in TinyGltfImporter (see mosra/magnum-plugins#104)
  • Updated Debian build instructions to pass --no-sign to dpkg-buildpackage, avoiding a confusing error message that might lead people to think the packaging failed (see mosra/magnum-plugins#105)
  • Fixed Debian packages to use correctly named OpenEXR dependency on Ubuntu 20.04 and Debian Buster (see mosra/magnum-plugins#105, mosra/magnum-plugins#108)
  • Fixed StbImageImporter to build again with CORRADE_BUILD_MULTITHREADED disabled.

Bug fixes

  • AssimpImporter used to add a strange "skeleton visualizer" meshes to files such as COLLADA even though the file had no skeletons in the first place. Turns out this was due to insane defaults and it was enough to just disable such misfeature. See also mosra/magnum-plugins#99.
  • AssimpImporter now correctly imports files with backslashes in image paths also on non-Windows platforms (see mosra/magnum-plugins#101 and mosra/magnum-plugins#102)
  • JpegImageConverter was mistakenly using the BUILD_STATIC CMake option instead of BUILD_PLUGINS_STATIC
  • Fixed BasisImporter to work with direct instantiation without a plugin manager (see mosra/magnum-plugins#96)
  • Assorted TinyGltfImporter robustness improvements (see mosra/magnum-plugins#106, mosra/magnum-plugins#109):
    • Fixed an out-of-bounds read happening with empty animations when optimizeQuaternionShortestPath is enabled
    • Graceful handling of invalid texture sampler values, instead of asserting
    • Better checks for out-of-bounds image, sampler and accessor references
    • Robust handling of invalid scene hierarchies such as cycles or multiple parent nodes
    • Better warning messages in certain pathological cases
  • Passing a RG input to BasisImageConverter while also having swizzle=rrrg (or, previously, separate_rg_to_color_alpha=true) set led to the image having the red channel repeated four times, losing the green channel. This is now fixed to not perform an implicit RRRG swizzle if the swizzle option is set. See also mosra/magnum-plugins#112.

Deprecated APIs

  • Variables ASSIMP_LIBRARY_{DEBUG,RELEASE} and ASSIMP_INCLUDE_DIR that could be used to force Assimp location in FindAssimp.cmake are deprecated in favor of Assimp_LIBRARY_{DEBUG,RELEASE} and Assimp_INCLUDE_DIR

Potential compatibility breakages, removed APIs

Documentation

2020.06

Released 2020-06-27, tagged as v2020.06.

New features

Changes and improvements

Build system

Bug fixes

  • AssimpImporter could crash on a division-by-zero when custom file callbacks encounter an empty file
  • Importing one image multiple times with DevIlImageImporter would cause it being differently flipped every time
  • Fixed a crash in PngImporter when encountering palette files with less than 8 bits per pixel

Potential compatibility breakages, removed APIs

2019.10

Released 2019-10-24, tagged as v2019.10.

Dependency changes

  • Minimal supported CMake version is now 3.4. Older versions are not supported anymore and all workarounds for them were removed. Download a prebuilt release of a newer version if you need to use Corrade on older systems (such as Ubuntu 14.04 or Debian 8). This is a conservative change that shouldn't affect any additional distribution compared to the CMake 3.1 requirement in 2019.01.

New features

Changes and improvements

Build system

  • MSYS2 packages are now in official repositories, installable directly via pacman
  • The JpegImageConverter plugin was mistakenly using the JPEG_INCLUDE_DIRS CMake variable which was not present on versions before 3.12. The JpegImporter plugin is not affected by this. See also mosra/magnum-plugins#51.
  • Upgraded TinyGltfImporter to use json.hpp 3.3.0, fixing a compile error on some Clang versions (see mosra/magnum-plugins#54)
  • Fixed FindMagnumPlugins.cmake to behave correctly when both a debug and a release version of libjpeg is found
  • Fixed FindMagnumPlugins.cmake to correctly handle the AssimpImporter, and JpegImageConverter components
  • FindMagnumPlugins.cmake now correctly finds debug versions of statically built plugins when using Vcpkg
  • Fixed FindMagnumPlugins.cmake to correctly link to zlib also when both a debug and a release version of libpng is found
  • FindAssimp.cmake now can optionally link to the IrrXML library (needed for static builds on Vcpkg)
  • Emscripten builds now have the -fPIC option disabled by default as it causes linker errors related to __memory_base on 1.38.36 (see also emscripten-core/emscripten#8761)

Bug fixes

  • AssimpImporter was returning a random value for material shininess with STL models, now it correctly returns 0.0f when the shininess value is not present.
  • For files that had multiple textures, AssimpImporter was incorrectly importing only the first image, multiple times. Fixed independently also by mosra/magnum-plugins#66 which got submitted three minutes after the change was pushed to master.
  • StbImageImporter was not correctly handling image import failures, randomly hitting unreachable code assertions
  • Fixed DevIlImageImporter BGR(A)-to-RGB(A) conversion to not return random memory
  • PngImporter now handles too short files gracefully instead of aborting on an assertion
  • PngImporter now handles paletted images and images with tRNS alpha mask correctly
  • Fixed memory leaks in PngImporter error handling
  • Fixed FindMagnumPlugins.cmake to correctly look for the Assimp package
  • Fixed handling of corrupted / incomplete data in StbTrueTypeFont (see mosra/magnum-plugins#29)

Potential compatibility breakages, removed APIs

  • Removed the ColladaImporter plugin, deprecated since 2018.10, because it was based on an outdated toolkit and, due to the complexity of the COLLADA format and poor conformance of various exporters, it was not feasible to maintain a builtin importer anymore.

2019.01

Released 2019-02-04, tagged as v2019.01.

Dependency changes

  • Minimal supported GCC version is now 4.8.1, GCC 4.7 is not supported anymore. Minimal Clang version is now 3.3, since that's the first version with a complete C++11 support. See also mosra/magnum#274.
  • Minimal supported CMake version is now 3.1. Older versions are not supported anymore and all workarounds for them were removed. Download a prebuilt release of a newer version if you need to use Corrade on older systems (such as Ubuntu 14.04 or Debian 8). See also mosra/magnum#274.

New features

Changes and improvements

  • Fixed compatibility of the OpenDdl library with Emscripten 1.38.10 and newer, which defines std::size_t as unsigned long instead of unsigned int used previously (it's still a four-byte type, though)

Build system

Potential compatibility breakages, removed APIs

  • Removed MAGNUMPLUGINS_*_LIBRARIES and MAGNUMPLUGINS_*_INCLUDE_DIRS CMake variables, which were deprecated in favor of MagnumPlugins::* imported targets in February 2016.

2018.10

Released 2018-10-23, tagged as v2018.10.

New features

Changes and improvements

Build system

Bug fixes

Deprecated APIs

  • ColladaImporter is deprecated because it's based on an outdated toolkit. Moreover, due to the complexity of the COLLADA format and poor conformance of various exporters it's not feasible to maintain a builtin importer anymore and thus this plugin is scheduled for removal in a future release. Please consider either using AssimpImporter for COLLADA import or switching to simpler and better supported formats such as glTF or OpenGEX using TinyGltfImporter or OpenGexImporter. There's also the official COLLADA2GLTF converter.

Changelogs for previous versions are available in Archived plugin changelogs.