Skip to content
  • Øyvind "pippin" Kolås's avatar
    app: correct usage of babl formats · ee97c1f4
    Øyvind "pippin" Kolås authored and Michael Natterer's avatar Michael Natterer committed
    GIMP was doing evil hacks lying to GEGL about it's pixels being in a linear
    color space when they are not. This causes incorrect rendering, makes gaussian
    blur misbehave etc.
    
    The legacy projection modes should be implemented using the same 2.2 gamma
    formats that are correct to specify for sRGB data. (for proper color
    management in higher bitdepths; icc backend babl formats should be used.)
    
    For the old image modes correct babl formats are:
    
    R'G'B'A u8  -  8 bit RGB with 2.2 gamma (sRGB) with linear alpha component
    R'G'B' u8   -  8 bit RGB with 2.2 gamma (sRGB)
    Y'A u8      -  8 bit Grayscale with 2.2 gamma with linear alpha component
    Y' u8       -  8 bit Grayscale with 2.2 gamma
    
    Y u8        -  8 bit linear data, used for masks/channels
    A u8        -  8 bit linear alpha
    
    -----------------------------------------------
    
    RGBA float  -     32bit floating point linear light RGB
    RaGaBaA float  -  32bit floating point linear light RGB, premultiplied alpha
                      to be used for processing that needs to scale by the alpha,
                      (blurs, resampling etc)
    R'G'B'A float  -  32bit floating point sRGB with gamma, to be used where
                      the result depends on being closer to perceptual when
                      processing, can be used a cheaper alternative to CIE Lab
                      based modes.
    
    -----------------------------------------------
    
    The legacy layer modes should use the formats with gamma 2.2 only for loading
    and rendering legacy XCF files correctly, in the brave new world compositing
    should most likely be done in linear light with "RGBA float" and even better
    "RaGaBaA float" like GEGL does for porter duff and other compositing modes.
    
    The ability to chose the legacy layer modes should probably be hidden from the
    user unless an old .xcf has been opened.
    ee97c1f4