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.
Last year, Magnum was used to introduce students to virtual reality
programming at the Ludwig-Maximilians-Universität München — powering a
CAVE-like
environment, a room-scale five-sided projection installation.
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.
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.
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.
Among other highlights is a new glTF player app, HiDPI support,
spline interpolation, a Box2D example and productivity improvements all
across the board.
Coming to an established workflow for the first time is always an
interesting experience because I don’t have any “it’s been like this since
forever” insights forming my opinion yet. This time it’s about quaternion
interpolation and a sudden optimization opportunity.