Linear compositing, take 2
This is a rework of !7366 (closed) with the goal of refactoring in a way that keeps things working properly for as long as possible, so the testsuite can sanity-check those refactorings.
It introduces color states to GTK and ports the renderers to respect the color states. Currently only 2 color states exist: srgb and srgb-linear. The colorstates are not selectable for anything by public API and they are always sRGB.
The branch enables running with GDK_DEBUG=linear
to enable linear compositing. The environment variables works with the Vulkan, NGL and Cairo renderers. If set, it will pick the srgb-linear colorstate for rendering and convert things accordingly.
Edited by Benjamin Otte