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
  • 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.

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)

Bug fixes

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

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.