The new release brings Python bindings, Basis Universal texture
compression, improved STL interoperability, better Unicode experience for
Windows users, a more efficient Emscripten application implementation,
single-header libraries, new OpenGL driver workarounds and much more.
During the past four months, Magnum began its adventure into the
Python world. Not just with some autogenerated bindings and not just with
some autogenerated Sphinx docs — that simply wouldn’t be Magnum enough.
Brace yourselves, this article will show you everything.
Similarly to the pointer and reference wrappers
described in the last article,
Magnum’s array views recently received STL compatibility as well. Let’s
take that as an opportunity to compare them with the standard
implementation in std::span.
The Magnum C++11/C++14 and OpenGL graphics engine gained OpenGEX
format support, a bunch of new importer plugins, cross-platform extension
loader, transform feedback support and new features from OpenGL ES 3.1 and
OpenGL 4.5, among other things.
The Magnum C++11 and OpenGL/OpenGL ES/WebGL graphics engine gained
experimental Android support, windowless applications on OS X and Windows,
uses SDL2 as the default toolkit, adds new texture and mesh features,
improves build system and got huge documentation review.
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.
Large C++ projects often suffer with very long times for both full
and incremental compilation, severely hurting productivity. The following
series will overview some techniques employed in Magnum to make iteration
times smaller, this article focuses on code-based optimizations.