Changelog » Extras

Changes since 2020.06

Dependency changes

  • Minimal supported CMake version is now 3.5, changed from 3.4, since CMake 3.27+ warns if a compatibility with CMake below 3.5 is requested. Older versions are not supported anymore and all workarounds for them were removed. This is a conservative change, as there are no known supported distributions which would have anything older than 3.5.

Changes and improvements

Build system

  • The oldest supported Clang version is now 6.0 (available on Ubuntu 18.04), or equivalently Apple Clang 10.0 (Xcode 10). Oldest supported GCC version is still 4.8.
  • The versionExtras.h header now gets populated from Git correctly also when inside a CMake subproject
  • Travis banned everyone from using their CI and so all Linux, macOS, Emscripten, Android and iOS builds were migrated from Travis to Circle CI, together with adding also an explicit ARM64 build and an ability to test GLES and Vulkan functionality on Android. See also mosra/magnum#350 and mosra/magnum#523.
  • UseEmscripten is no longer implicitly included on Emscripten as it's not needed for anything (see mosra/magnum#490)
  • 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)
  • It's now possible to use <PackageName>_ROOT to point to install locations of dependencies such as Corrade on CMake 3.12+, in addition to putting them all together inside CMAKE_PREFIX_PATH. See also mosra/magnum#614.
  • On CMake 3.16 and newer, FindMagnumExtras.cmake can provide additional details if some component is not found
  • Updated Debian build instructions to pass --no-sign to dpkg-buildpackage, avoiding a confusing error message that might lead people to think the packaging failed (see mosra/magnum-plugins#105)
  • It's now possible to build dynamic libraries on Android and Emscripten with the usual options. Static libraries are still a default but it isn't enforced anymore. See mosra/magnum#617.
  • Added MAGNUM_PLAYER_STATIC_PLUGINS CMake option for linking static plugins to the magnum-player application. See Enabling or disabling features for more information.
  • Fixed most remaining warnings on MSVC, in particular those related to "conversion from T to void * of greater size" (see mosra/magnum#544).
  • Fixed FindMagnumExtras.cmake to correctly find the Magnum Extras include directory when it's installed to a different directory than Magnum itself (see mosra/magnum-integration#105)
  • Created a RPM package with a helper script for building (see mosra/magnum-extras#13 and mosra/magnum-extras#16)

Deprecated APIs

Potential compatibility breakages, removed APIs

  • The old UI library that was living in the Ui namespace is removed and replaced by a completely new implementation

Documentation

2020.06

Released 2020-06-27, tagged as v2020.06.

Changes and improvements

  • magnum-player now accepts -i / --importer-options and -v / --verbose command-line arguments similarly to magnum-imageconverter and magnum-sceneconverter
  • magnum-player can now visualize also point and line meshes, triangle strips and fans can now have their normals generated as well
  • magnum-player now supports normal maps and texture transformation in materials
  • Tangent space, object and primitive ID visualization in magnum-player
  • Integrated DebugTools::GLFrameProfiler in magnum-player, enable using the P key and configure with the --profile command-line option
  • Ability to disable UI rendering in magnum-player using the Esc key

Build system

  • The library again compiles and tests cleanly with CORRADE_NO_ASSERT enabled, and this setup is verified on the CI to avoid further regressions

Potential compatibility breakages, removed APIs

  • Removed Ui::AbstractPlane::Flag enum and Ui::AbstractPlane::Flags enum set deprecated in 2018.02, use Ui::PlaneFlag and Ui::PlaneFlags instead

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

  • ES 2.0 and ES 3.0 subset of tests requiring GL context is now run on Travis CI using SwiftShader for better code coverage (see mosra/magnum#207)
  • 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)

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.

2018.10

Released 2018-10-23, tagged as v2018.10.

New features

  • New magnum-player app for previewing, playing back and inspecting animated scene files (see mosra/magnum-extras#6)
  • Rudimentary support for user interface relayouting using Ui::UserInterface::relayout()

Changes and improvements

  • Ui::UserInterface can now take an explicit framebuffer size parameter for more flexibility when rendering on HiDPI screens or in VR.
  • Ui::UserInterface can now take an external font plugin mananger to work better together with code that does text rendering on its own
  • It's now possible to change style of a Ui::Modal as well

Build system

Bug fixes

  • Ui::Button::setStyle() was mistakenly not returning a reference to self, breaking method chaining

Deprecated APIs

  • Ui::UserInterface constructors taking a font without a corresponding glyph cache instance are deprecated, use either Ui::UserInterface::UserInterface(const Vector2&, const Vector2i&, const StyleConfiguration&, const std::string&) or Ui::UserInterface::UserInterface(const Vector2&, const Vector2i&, Text::AbstractFont&, Text::GlyphCache&, const StyleConfiguration&) instead.

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.

Build system

  • Fixed the Debian package after introducing SOVERSION to all libraries (see mosra/magnum#237)
  • By mistake it was not possible to control static build of the Ui library independently on the core Magnum libraries
  • 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.)

2018.02

Released 2018-02-15, tagged as v2018.02. See the release announcement for a high-level overview.

New features

  • MSVC 2015 and MSVC 2017 support in master branch
  • 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 experimental Ui library

Build system

Deprecated APIs

  • Ui::AbstractPlane::Flag enum and Ui::AbstractPlane::Flags enum set are deprecated, use Ui::PlaneFlag and Ui::PlaneFlags instead

Documentation

  • New documentation theme powered by m.css and related massive updates of everything
  • The Downloading and building extras documentation now prefers package installation instead of manual build