A new Magnum feature provides efficient compile-time and runtime CPU
detection and dispatch on x86, ARM and WebAssembly. The core idea behind
allows adding new variants without having to write any dispatching code.
Redesigned geometry pipeline together with massive additions to
importer plugins, new debugging, visualization and profiling tools, new
examples including fluid simulation and raytracing, instancing in builtin
shaders and a gallery of cool projects to get inspired from.
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.
Magnum recently gained a new data structure usable for easy data
description, transformation and inspection, opening lots of new
possibilities for more efficient workflows with pixel, vertex and animation
data.
Some time ago, when looking into different ways how to reduce STL
header bloat, I discovered that libc++’s <iosfwd> has a forward
declaration for std::vector. Turns out, there are more of them —
and not just on one particular standard library implementation.
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.
Magnum got a new unique pointer implementation that’s much more
lightweight with better debug performance and compile times, but is still
fully compatible with std::unique_ptr.