Skip to content
  • Mathias Wein's avatar
    Fix painting on selection masks with various blending modes · 73d5958e
    Mathias Wein authored
    The issue was that KoColorSpace::bitBlt() only accepted composite ops from
    its own color space, while at the same time allowing KoAlphaColorSpace to
    blit in a differing source color space and substituting the composite op
    accordingly, specifically to allow painting.
    
    Since we cannot acquire most composite ops from KoAlphaColorSpace, some
    restructuring was necessary:
    
    - KoColorSpace::compositeOp() and ::hasCompositeOp() now take an optional
      destination color space to acquire the desired composite op
    - KoColorSpace::bitBlt() accepts composite ops from source color space
      if it's going to work in source color space; this also avoids the lookup
      for substitution on each call
    - KisPainter delays fetching the composite op until the source color space
      is known and caches the result
    - change KisPainter::compositeOp() to compositeOpId() since we can no
      longer return an actual composite op
    - since recompile time can't get any worse, take care of th...
    73d5958e