Plugins
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 Cross-compiling 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
2015.05
Released 2015-05-09, tagged as v2015.05. See the release announcement for a high-level overview.
New features
- New OpenDDL parser and OpenGexImporter plugin for importing
OpenGEX
_ files (see mosra/magnum#44) - New StanfordImporter plugin for importing Stanford (
*.ply
) files. - New StbImageImporter plugin for importing BMP, GIF, HDR, JPEG, PIC, PNG, PSD, TGA and more formats using stb_
image - New StbPngImageConverter plugin for exporting PNG files using stb_
image_ write - New AnyImageImporter plugin that detects image file type and delegates the loading to plugin dedicated for given format (see mosra/
magnum#61). - New AnySceneImporter plugin that detects scene file type and delegates the loading to plugin dedicated for given format.
- Plugin aliases, as explained above.
Potential compatibility breakages, removed APIs
- 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.
Build system
- CMake now always installs
FindMagnumPlugins.cmake
to library-specific location, making it usable without providing own copy of the file in depending projects. TheWITH_FIND_MODULE
option 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/
magnum-plugins#4) - Workaround to find proper FreeType when Mono is installed on macOS (see mosra/
magnum-plugins#6) - Gentoo ebuild (see mosra/
magnum-plugins#5).
2014.06
Released 2014-06-30, tagged as v2014.06. See the release announcement for a high-level overview.
Dependency changes
- Minimal required GCC version is now 4.7. Support for GCC 4.6 has been moved to the
compatibility
branch.
Changes
- 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.
2014.01
Released 2014-01-21, tagged as v2014.01. See the release announcement for a high-level overview.
Dependency changes
No dependency changes in this release.
New features
- All classes in documentation are now shown with corresponding
#include
path
Changes
- MagnumFont, MagnumFontConverter, TgaImporter, TgaImageConverter and WavAudioImporter plugins were moved to core Magnum repository
- Various documentation updates and improvements
Bug fixes
- Fixed various compilation errors on various compilers (see mosra/
magnum-plugins#3)
Internal changes
- 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 tosrc/MagnumPlugins
(required to make inter-project includes absolute, as mentioned above)
2013.10
Released 2013-10-30, tagged as v2013.10. See the release announcement for a high-level overview.
Dependency changes
No dependency changes in this release.
New features
- Emscripten port of dependency-less TgaImporter, TgaImageConverter and MagnumFont plugins
Changes
- Reworked
ColladaImporter
internals 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
Bug fixes
- Fixed compilation of plugins using std::
u32string on MinGW - Fixed linker errors on MinGW
2013.08
Released 2013-08-30, tagged as v2013.08. See the project announcement for a high-level overview.