Skip to content
  • Dmitry Kazakov's avatar
    Implemented a proper conversion when composing usual color spaces on the top of alpha8 · dba4e8b0
    Dmitry Kazakov authored
    alpha8() colorspace is very special in pigment. Firstly, it is not handled
    by the lcms. More than that, most of the compositions do not work in it,
    since it has a bit weird definition of what is color and what is alpha
    channel. So when painting another colorspace above it, it is more sane
    to do the composition in the source colorspace, and only then convert
    the result to the destination alpha8.
    
    This patch implements a property for a color space, which defines
    whether the color space prefers such way of composition.
    
    TODO: there is a small problem currently, the bitBlt function should
          request the compositeOp of another color space every time it is
          called. That is not ideal of course and should probably fixed with
          some caching strategy.
    dba4e8b0