[skottie] Fix mask difference

Difference [1]:

  The mask is added to the masks above it in the stacking order. In
  areas where the mask does not overlap the masks above it, the mask
  operates as it would alone on the layer. In areas where the mask
  overlaps the masks above it, the influence of the mask is subtracted
  from the masks above it.

^ sure sounds like XOR

[1] https://helpx.adobe.com/after-effects/using/alpha-channels-masks-mattes.html#mask_modes

Bug: skia:10502
TBR=
Change-Id: I8aea937224cfadce54c4fc1d014b63d00efdbec4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303025
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
This commit is contained in:
Florin Malita 2020-07-15 17:04:46 -04:00 committed by Skia Commit-Bot
parent 14982c8e15
commit cd11a51a11

View File

@ -47,7 +47,7 @@ const MaskInfo* GetMaskInfo(char mode) {
static constexpr MaskInfo k_sub_info =
{ SkBlendMode::kSrcIn , sksg::Merge::Mode::kIntersect , true };
static constexpr MaskInfo k_dif_info =
{ SkBlendMode::kDifference, sksg::Merge::Mode::kDifference, false };
{ SkBlendMode::kXor , sksg::Merge::Mode::kXOR , false };
switch (mode) {
case 'a': return &k_add_info;