Skip to content
  • Casian Andrei's avatar
    Implement color correction (per output) · 9bd47330
    Casian Andrei authored
    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
    9bd47330