January 2014 updates to Magnum
Since the previous October snapshot Magnum gained Visual Studio port, font conversion utility, improved text rendering along with example application, support for OpenGL debug output, documentation updates, better test coverage and many more usability improvements and fixes.
The version 2014.01 is available under the v2014.01
tag in
Corrade, Magnum,
Magnum Plugins and
Magnum Integration GitHub
repositories. This article will describe the most important changes, for
detailed list follow the changelog links at the end of this announcement.
For compatibility branch there is the snapshot-2014-01-compatibility
tag in
Corrade,
Magnum and
Magnum Plugins
repositories.
Google Groups discussion
You can now ask for help, share your work or participiate in development at the new Google Groups forum. The group is open to everyone, you just need Google account to post. In my opinion this is better than requiring everyone to create new account on some self-hosted forum.
New text rendering example
I added text rendering example to showcase new features such as text alignment and multi-line text, in addition to already existing distance-field rendering capabilities. See showcase page for live application running on both Emscripten and Native Client. I also added live Textured Triangle example.
Using absolute includes by default
All projects were switched to use absolute includes by default, i.e. headers are included this way:
#include <Magnum/Math/Vector3.h>
rather than this way:
#include <Math/Vector3.h>
This solves many problems with filename collisions (namely with Visual Studio
compiler, Doxygen and possibly elsewhere), see mosra/magnum#36 for more
information. As this is a very drastic change, you may need to recreate your
build directories and update at least FindCorrade.cmake
and
FindMagnum.cmake
CMake modules with new ones from modules/
subdirectory
in Corrade and
Magnum repositories (and possibly also
other ones).
If you are building with deprecated features enabled (BUILD_DEPRECATED
CMake parameter in both Corrade and Magnum), you can still use the old
non-absolute includes, but you are encouraged to switch to absolute ones.
Visual Studio 2013 support
This release is the first one with experimental Visual Studio 2013 support.
Because the compiler still lacks some required features (constexpr
and
noexcept
keywords) and has some serious bugs in C++11 implementation,
the support is provided only through compatibility
branch. The port
involves some ugly hacks and workarounds which can’t be put in master
,
hopefully the next MSVC release will make my life easier. Snapshot of
compatibility
branch with MSVC 2013 support is available under
snapshot-2014-01-compatibility
tag in
Corrade and
Magnum GitHub repositories.
The compatibility branch doesn’t contain anything new except workarounds for
said compilers.
Complete changelog
You can find a detailed list of changes in version 2014.01 in the documentation: