343864 HDR gradients
This MR upgrades the gradient rendering code to:
- make use (if not specified otherwise, see next) of Rec.709, 16-bit integer RGB.
- render the gradients directly on the destination colorspace, upgrading it to at least 16-bit integer if it's 8-bit.
Additionally, I implemented a new dither op in KoColorSpace
, based on Pixman's and Skia's source. These are, in order, blue-noise Ulichney dithering with a 64x64 matrix, and 8x8 Bayer ordered dithering.
The first is plugged in (as a demo) to KisGradientPainter
and the second to the preview generator in KoAbstractGradient
.
I tested this using two monitors, one is an old LG M2380A (which reeks of banding) and the other is a Samsung S24F350.
Test Plan
Formalities Checklist
-
I confirmed this builds. -
I confirmed Krita ran and the relevant functions work. -
I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!) -
I made sure my commits build individually and have good descriptions as per KDE guidelines. -
I made sure my code conforms to the standards set in the HACKING file. -
I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.
Edited by Amy spark