Skip to content
  • Dmitry Kazakov's avatar
    Fix holes in the Stroke layers style · 2599be61
    Dmitry Kazakov authored
    The stroke should be applied on maxed out layer's projection to
    make sure knock-out blending works fine.
    
    Stroke merging process is complicated and performs some kind of
    "knockout" method. First both, the layer and the stroke, are applied to
    the backdrop independently. Then the result is blended together using
    the knockout selection (the contour of the stroke).
    
    And to fix the border effects we need to either ceil or floor the
    layer's projection's border opacity. It guarantees that the mixing
    code mixes the real color, but not it antialiased version.
    
    If we try to find a vague analogy with the PDF specification, then
    the knockout selection will be the "shape" of the stroke. And the
    opacity value of the layer effect will be "opacity" of the stroke.
    
    Therefore we first blend a 100%-alpha versions of the stroke and
    a layer the backdrop using their corresponding opacity*
    vallues, and then we blend two results using the "shape" value.
    
    BUG:431192
    2599be61