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 Cross-compiling 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 OpenDDL parser and OpenGexImporter plugin for importing
OpenGEX_ files (see mosra/
- New StanfordImporter plugin for importing Stanford (
- New StbImageImporter plugin for importing BMP, GIF, HDR, JPEG, PIC, PNG, PSD, TGA and more formats using stb_
- New StbPngImageConverter plugin for exporting PNG files using stb_
- New AnyImageImporter plugin that detects image file type and delegates the loading to plugin dedicated for given format (see mosra/
- New AnySceneImporter plugin that detects scene file type and delegates the loading to plugin dedicated for given format.
- Plugin aliases, as explained above.
- All functionality deprecated in 2014.01 snapshot has been removed, namely removed deprecated ability to use relative includes (e.g.
#include <PngImporter/PngImporter.h>), use absolute paths (
#include <MagnumPlugins/PngImporter/PngImporter.h>) instead.
- CMake now always installs
FindMagnumPlugins.cmaketo library-specific location, making it usable without providing own copy of the file in depending projects. The
WITH_FIND_MODULEoption is no longer needed.
- Displaying all header files, plugin metadata files and resource files in project view to make use of some IDEs less painful (such as QtCreator).
- FindMagnumPlugins.cmake was not really working (see mosra/
- Workaround to find proper FreeType when Mono is installed on macOS (see mosra/
- Gentoo ebuild (see mosra/
- Minimal required GCC version is now 4.7. Support for GCC 4.6 has been moved to the
- Libraries and plugins in debug build configuration are installed to different locations, making it possible to have debug and release libraries installed alongside each other.
No dependency changes in this release.
- All classes in documentation are now shown with corresponding
- Fixed various compilation errors on various compilers (see mosra/
- Using Jenkins Continuous Integration to maintain compilable and bug-free state of the project more easily. Currently GCC 4.8, 4.7, 4.6, 4.5, 4.4, Clang 3.3, Clang 3.3 with libc++, Emscripten, x86-32/x86-64 Native Client and MinGW32 compilers are tested with both shared and static libraries. Separately testing builds with deprecated features enabled and disabled. Also explicitly testing desktop OpenGL, OpenGL ES 2.0, desktop OpenGL ES 2.0 emulation, OpenGL ES 3.0 and desktop OpenGL ES 3.0 emulation.
- All files from
src/directory were moved to
src/MagnumPlugins(required to make inter-project includes absolute, as mentioned above)
No dependency changes in this release.
ColladaImporterinternals to avoid double deletions
- Documentation updates and improvements to make the library more accessible for newcomers
- Various build system updates for better compile times and easier installation
- Fixed compilation of plugins using std::
u32string on MinGW
- Fixed linker errors on MinGW