Plugins
Contents
2018.04
Released 2018-05-01, tagged as v2018.04.
Dependency changes
- 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.
New features
- New TinyGltfImporter plugin for importing glTF and binary glTF files (see mosra/
magnum-plugins#40) - The AssimpImporter plugin now supports external configuration for postprocessing
Changes and improvements
- 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
Build system
- 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
FindMagnum.cmake
andFindMagnumPlugins.cmake
modules. 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
[community]
repo - 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/
corrade#44.)
Bug fixes
- Unloading the HarfBuzzFont plugin also implictly unloaded the FreeType library, making the FreeTypeFont plugin unusable after.
- TinyGltfImporter was improperly loading Trade::
TextureData:: minificationFilter(), Trade:: TextureData:: mipmapFilter() and Trade:: TextureData:: wrapping() properties
Deprecated APIs
- OpenDdl headers in
MagnumPlugins/OpenGexImporter/OpenDdl
are deprecated, include them from theMagnum/OpenDdl
directory instead.
Potential compatibility breakages
- 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_STATIC
CMake option toBUILD_PLUGINS_STATIC
for consistency with the core Magnum library and possibility to control the static build better when using subprojects. TheBUILD_STATIC
option now controls just building of extra libraries exposing internal plugin state. See Enabling or disabling features for more information.
2018.02
Released 2018-02-15, tagged as v2018.02. See the release announcement for a high-level overview.
Dependency changes
- 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
compatibility
branch and all support for MSVC 2013 and GCC < 4.7
New features
- MSVC 2015 and MSVC 2017 support in
master
branch (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:
- AnyImageConverter
- AnyAudioImporter
- 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) - MiniExrImageConverter
- PngImageConverter
- StbTrueTypeFont (see mosra/
magnum-plugins#12) - DrFlacAudioImporter (see mosra/
magnum-plugins#18, mosra/ magnum-plugins#19, mosra/ magnum-plugins#20) - DrWavAudioImporter (see mosra/
magnum-plugins#21) - DevIlImageImporter (see mosra/
magnum-plugins#23)
- Camera and light data import in OpenGexImporter
- Support for OpenGEX extensions in OpenGexImporter using
importerState()
getters
Changes and improvements
- OpenGexImporter is working on Android now (see mosra/
magnum#95) - 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/
magnum#215) - Various code modernization improvements (see mosra/
magnum-plugins#30) - StbImageConverter now supports BMP, HDR and TGA output in addition to PNG
Build system
- 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/
magnum-plugins#15) - Support for CMake subprojects. You can now clone Magnum Plugins into a subdirectory in your project and add it using
add_subdirectory()
. Thefind_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
BUILD_GL_TESTS
CMake option) MACOSX_RPATH
is 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.cmake
which 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
FindMagnumPlugins.cmake
(see mosra/magnum-plugins#10) - Unconditionally exporting symbols of all plugins to make them usable as dependencies
FindMagnumPlugins.cmake
now 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/
magnum-plugins#38) - Various fixes to
FindMagnumPlugins.cmake
(see mosra/magnum-plugins#11)
Bug fixes
- OpenGexImporter crashed on file ending unexpectedly after array comma (see mosra/
magnum#144) - Fixed OpenGexImporter light import (see mosra/
magnum-plugins#16) - StanfordImporter had string-to-number conversion broken on Android
- Plugged huge data leaks in StbImageImporter and StbImageConverter
- Various compilation fixes (see mosra/
magnum-examples#9)
Potential compatibility breakages
StbPngImageConverter
was renamed to StbImageConverter, supporting more than just PNG now. Loading it viaStbPngImageConverter
continues to work. See mosra/magnum-plugins#24.
Documentation
- 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.