Implement color correction (per output)
Add an option to kcmcompositing in the 'Advanced' tab, to enable or disable color correction. It is specified that it's experimental and it needs Kolor Manager. Before painting for a particular screen, ColorCorrection::setupForOutput should be called. A screen property is added for WindowPaintData. In kwinglutils, The fragment shaders are intercepted before being compiled and they get a couple of lines of code inserted in order to do the color correction. This happens only when color correction is enabled, of course. For D-Bus communication with KolorServer, everything is async. The implementation basically manages a set of color lookup tables for different outputs and for different window regions. These are taken via D-Bus. Each lookup table has around 700 KB. This commit reintroduces the changes from the former merge with the "color2" branch. In this form, it can be easily reverted. REVIEW: 106141
This diff is collapsed.