Skip to content

343864 HDR gradients

Amy spark requested to merge lsegovia/krita:work/amyspark/hdr-gradients2 into master

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.

BUG: 343864

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

Merge request reports