- Changes since 2019.01
- Calling image2D() in AssimpImporter, OpenGexImporter and TinyGltfImporter now behaves consistently in regards to file loading callbacks — failing with an error if and only if image is not embedded, the file is not opened from a filesystem and file loading callbacks are not set. Previously it could errorneously assert even when loading embedded images, try to look for images on the filesystem when loading in-memory data or fail to open images when a file inside current working directory was opened.
- The AssimpImporter plugin now detects ambient color set to
0xffffff_srgbfand forces it back to
0x000000_srgbf. This is a bug in Assimp 4.1, causing all other color information to get discarded. See also assimp/
- JpegImporter now prints error info to Corrade::
Utility:: Error, allowing it to be redirected or suppressed consistently to other plugin implementations (see mosra/ magnum-plugins#53)
- PngImporter and PngImageConverter now print error and warning info to Corrade::
Utility:: Error and Corrade:: Utility:: Warning, allowing it to be redirected to suppressed consistently to other plugin implementations
- DevIlImageImporter now converts BGR data to RGB instead of expanding them to RGBA
- DevIlImageImporter, JpegImporter, PngImporter and StbImageImporter now properly report an error message when opening an empty file
- AssimpImporter was returning a random value for material shininess with STL models, now it correctly returns
0.0fwhen the shininess value is not present.
- 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
FindMagnumPlugins.cmaketo correctly look for the
- Removed the
ColladaImporterplugin, 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.
Released 2019-02-04, tagged as v2019.01.
- 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/
- 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/
MAGNUMPLUGINS_*_INCLUDE_DIRSCMake variables, which were deprecated in favor of
MagnumPlugins::*imported targets in February 2016.
Released 2018-10-23, tagged as v2018.10.
- Support for object transformation animation import in TinyGltfImporter (see mosra/
- New Trade::
JpegImageConverter plugin for writing JPEG files (see mosra/ magnum-plugins#26)
- Minimal support for the KHR_
materials_ pbrSpecularGlossiness extension in TinyGltfImporter
- The top-level
tinygltf::Modelstructure is now exposed through Trade::
TinyGltfImporter:: importerState() for easier access to extra data, exposing also Trade:: SceneData:: importerState() and Trade:: TextureData:: importerState()
- TinyGltfImporter now implements mapping between names and IDs for all currently imported data
- TinyGltfImporter now imports alpha mode, alpha mask and double sided material properties
- TinyGltfImporter now imports all camera properties together with type and aspect ratio / projection size
- AssimpImporter, OpenGexImporter and TinyGltfImporter now support Trade::
AbstractImporter:: Feature:: FileCallback for specifying custom callbacks to load extra files
- StbImageConverter was updated with a new version of
stb_image_write, supporting also JPEG export now (see mosra/
- StbTrueTypeFont was updated with a new version of
stb_truetype, supporting also OpenType fonts now
- FreeTypeFont, HarfBuzzFont and StbTrueTypeFont plugins can now be loaded also using the
OpenTypeFontalias, in addition to `TrueTypeFont
- OpenGexImporter now supports Trade::
AbstractImporter:: Feature:: FileCallback for specifying custom callbacks to load extra files (see mosra/ magnum-plugins#47)
- Texture coordinate, color vertex attribute and base object color import in TinyGltfImporter (see mosra/
magnum-plugins#41, mosra/ magnum-plugins#43)
- Mesh name and complete multi-primitive mesh loading in TinyGltfImporter (see mosra/
- OpenGexImporter and TinyGltfImporter now properly import alpha for Trade::
- TinyGltfImporter now exposes the translation/rotation/scaling properties of Trade::
ObjectData3D separately if they are separate in the source file
- HarfBuzzFont is now providing
TrueTypeFont, similarly to other plugins supporting TTF fonts
- StbImageImporter now properly supports Apple proprietary CgBI PNGs. Stock
libPNGdoesn't support that but there are forks that can do it, updated documentation of PngImporter to mention that.
- StbImageConverter no longer requires input data to be tightly packed, allowing to export image subrectangles
- StbImageConverter now prints warnings when channels are lost on output due to limitations of the output format (such as alpha channel for JPEGs)
TinyGltfImporter:: defaultScene() now returns the first scene if no default scene is present in the file
- New Trade::
TinyGltfImporter:: TinyGltfImporter(PluginManager:: Manager<Trade:: AbstractImporter>&) constructor for easier usage of statically-built plugins
- Cleaned up some unnecessary memory copies and reallocations in the TinyGltfImporter implementation
- Upstreamed local patches to
- There's now a PPA for Ubuntu packages. See Packages for Debian, Ubuntu and derivatives for more information. See also mosra/
- TinyGLTF headers are now installed alongside the plugin for easier access to importer state. See Access to internal importer state for more information.
- TinyGltfImporter no longer depends on StbImageImporter to import images embedded in buffers or data URIs. Instead it proxies the loading to AnyImageImporter, the same way as was already done for external files.
- Fixed a TinyGltfImporter crash on materials without a PBR extension (see mosra/
- Fixed improper order of applying translation/rotation/scaling node transformations in TinyGltfImporter
- TinyGltfImporter now loads external images from
*.glbfiles and images embedded as URI data properly
- TinyGltfImporter now properly imports non-indexed meshes and meshes without the normal attribute
- Fixed quite a few critical issues with TinyGltfImporter mesh data import (see mosra/
undefined symbol: __cpu_modelerror when compiling StbImageImporter on GCC 5
- AssimpImporter now properly prints out an message on file opening error instead of failing silently
- AssimpImporter incorrectly imported object transformation matrices transposed
- AssimpImporter incorrectly imported the scene twice, once as a scene and once as a object that all other objects were parented to. However, in presence of postprocessing flags such as
PreTransformVerticesAssimp collapses all nodes into one and then the node is imported as a single object.
- FreeTypeFont was not handling subsequent calls to Text::
FreeTypeFont:: initialize() properly (see mosra/ magnum-plugins#49)
ColladaImporteris 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.
Released 2018-05-01, tagged as v2018.04.
- Building for Android now requires CMake 3.7 with builtin Android crosscompilation support, the old toolchains were removed. Only the Clang and libc++ toolchain is now supported, support for GCC and libstdc++ was dropped, as it was still missing some important C++11 functionality. See Crosscompiling for Android for more information.
- The DdsImporter plugin now imports images with the generic PixelFormat / CompressedPixelFormat instead of the GL-specific GL::
PixelFormat / GL:: PixelType or GL:: CompressedPixelFormat
- The DevIlImageImporter, JpegImporter, PngImporter, StbImageImporter plugins now import images with the generic PixelFormat instead of the GL-specific GL::
PixelFormat / GL:: PixelType
- The MiniExrImageConverter, PngImageConverter and StbImageConverter plugins now accept the generic PixelFormat instead of GL-specific formats
- The AnyAudioImporter, AnyImageConverter, AnyImageImporter and AnySceneImporter plugins were moved to the core Magnum repository. If you are using them statically via CMake, you need to update your copies of
FindMagnumPlugins.cmakemodules. See Downloading and building and Usage with CMake for more information.
- Plugins now provide an automatic means of static plugin import via CMake targets, no need to call CORRADE_
PLUGIN_ IMPORT() implicitly anymore. See Static plugins for more information.
- The OpenDdl parser is now available as a separate library, which means you no longer need to build the Trade::
OpenGexImporter plugin as static in order to use it. See Enabling or disabling features for more information.
- Stable version of Magnum Plugins is now available as a binary package in the ArchLinux
- Homebrew macOS packages were updated to install the stable version by default
- Fixed the Debian package to not include a revision. While just a warning on Ubuntu, it's a hard error on Debian. (See mosra/
- OpenDdl headers in
MagnumPlugins/OpenGexImporter/OpenDdlare deprecated, include them from the
- The DdsImporter plugin no longer recognizes depth image formats. This may be re-added again in the future.
- The MiniExrImageConverter, PngImageConverter, StbImageConverter plugins no longer accept GL-specific GL::
PixelFormat / GL:: PixelType formats — use the generic PixelFormat instead
- Renamed the
BUILD_STATICCMake option to
BUILD_PLUGINS_STATICfor consistency with the core Magnum library and possibility to control the static build better when using subprojects. The
BUILD_STATICoption now controls just building of extra libraries exposing internal plugin state. See Enabling or disabling features for more information.
- Completely removed NaCl support (see https:/
/ blog.chromium.org/ 2017/ 05/ goodbye-pnacl-hello-webassembly.html)
- Dropped support for the old MinGW32 (only MinGW-w64 is supported now)
- Bumped minimal CMake version to 2.8.12
- Removed support for macOS 10.8 and older
- Dropped the
compatibilitybranch and all support for MSVC 2013 and GCC < 4.7
- MSVC 2015 and MSVC 2017 support in
masterbranch (see mosra/
magnum-plugins#32, mosra/ magnum-plugins#33)
- ANGLE ES2/ES3 support, ability to create desktop GLES contexts on Windows
- Windows Phone/Store support via ANGLE
- iOS support
- WebAssembly support when building for Emscripten
- WebGL 2.0 support
- New plugins:
- AssimpImporter (see mosra/
magnum-plugins#31, mosra/ magnum-plugins#35, mosra/ magnum-plugins#37, mosra/ magnum-plugins#39)
- DdsImporter (see mosra/
magnum-plugins#7, mosra/ magnum-plugins#34)
- StbVorbisAudioImporter (see mosra/
magnum-plugins#8, mosra/ magnum-plugins#22)
- StbTrueTypeFont (see mosra/
- DrFlacAudioImporter (see mosra/
magnum-plugins#18, mosra/ magnum-plugins#19, mosra/ magnum-plugins#20)
- DrWavAudioImporter (see mosra/
- DevIlImageImporter (see mosra/
- Camera and light data import in OpenGexImporter
- Support for OpenGEX extensions in OpenGexImporter using
- OpenGexImporter is working on Android now (see mosra/
- PngImporter and JpegImporter always import images with rows aligned to four bytes
- StbImageImporter properly specifies PixelStorage alignment for imported images
- PngImporter properly handles endianness in 16bpp images
- FreeTypeFont and HarfBuzzFont report font ascent and descent properties now
- Usage of Double in OpenGexImporter is not restricted to desktop GL anymore
- OpenGexImporter presents only an unique list of images, instead of duplicating them per texture
- PngImporter and PngImageConverter now gracefully handle library version mismatches (see mosra/
- Various code modernization improvements (see mosra/
- StbImageConverter now supports BMP, HDR and TGA output in addition to PNG
- Continuous testing for Linux, macOS, Windows MSVC, Windows MinGW, Windows RT, iOS, Android and Emscripten on Travis CI and AppVeyor CI, with code coverage on codecov.io; replacing the unmaintained and outdated Jenkins configuration (see mosra/
- Support for CMake subprojects. You can now clone Magnum Plugins into a subdirectory in your project and add it using
find_package()command will then use the CMake subproject instead of looking for it in system-wide locations.
- Reworked CMake buildsystem to use the new imported target workflow, see Plugin usage with CMake for more information
- CMake targets are now organized in folders for better development experience in IDEs such as Visual Studio or Xcode
- Added a Homebrew package
- Ability to build OpenGL tests also on Windows and macOS (see
MACOSX_RPATHis now enabled by default on CMake 3.0+
- Enabling only C++ in CMake
project()call, if possible, to speed up initial CMake run
- Removed our copy of
FindFreetype.cmakewhich attempted to link to all dependencies of FreeType if it discovered that it's built as static. But it got out of sync with upstream and the detection was broken on MSVC. See mosra/
magnum-plugins#13, mosra/ magnum-plugins#36.
- Fixed discovery of audio importer plugins from
- Unconditionally exporting symbols of all plugins to make them usable as dependencies
FindMagnumPlugins.cmakenow correctly handles cases where both debug and release libraries of libPNG or FreeType are available
- Updated the Debian package to depend on current version of libPNG (see mosra/
- Various fixes to
- OpenGexImporter crashed on file ending unexpectedly after array comma (see mosra/
- Fixed OpenGexImporter light import (see mosra/
- StanfordImporter had string-to-number conversion broken on Android
- Plugged huge data leaks in StbImageImporter and StbImageConverter
- Various compilation fixes (see mosra/
- New documentation theme powered by m.css and related massive updates of everything
- The Downloading and building examples documentation now prefers package installation instead of manual build
Changelogs for previous versions are available in Archived plugin changelogs.