Magnum is developed with a “Zen Garden” philosophy
in mind, focusing on productivity, predictability and ease of use. Let’s
see how can that extend beyond just the library itself — into your daily
If you build your Magnum apps for the web, you can now make use of
a new feature-packed, smaller and more power-efficient application
implementation. It is using the Emscripten HTML5 APIs directly instead of
going through compatibility layers.
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
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.
Engines supporting more than one graphics backend very often need to
translate various enum values — pixel formats, primitive types etc. —
from a generic API-agnostic value to the one used by a particular
implementation, in the fastest-possible and most robust way.
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 new version puts a focus on usability with tweakable constants
for live coding, Dear ImGui integration, new packages, Gradle-less Android
development, compile time speedup and other general polishing.
Whether you are browsing Magnum docs or use Doxygen for your own C++
documentation, there’s always a way to improve your workflow. This article
presents the most recent additions to the
m.css Doxygen theme.