• Ell's avatar
    app: fix compositing of layers with masks, outside the mask bounds · 3c702fbc
    Ell authored
    In GimpOperationLayerMode, when the op has a mask connected, and
    we're processing an area outside the mask bounds, set the op's
    opacity to 0, so that the backdrop shows through.  The actual
    process() function gets a NULL mask pointer in this case, and so
    would composite the layer as if it had no mask, exposing areas that
    should be masked out.
    
    Add a GimpOperationLayerMode::parent_process() function, which
    subclasses can override instead of GeglOperation::process(), and
    make sure to update the GimpOperationLayerMode::opacity field
    before calling this function (and, subsequently, before calling
    GimpOperationLayerMode::process()).
    
    Clean up the rest of the fields, and adjust the rest of the code.
    
    (cherry picked from commit 646c804c)
    3c702fbc