Flutter Engine
The Flutter Engine
Enumerations
SkCoverageMode.h File Reference

Go to the source code of this file.

Enumerations

enum class  SkCoverageMode {
  kUnion , kIntersect , kDifference , kReverseDifference ,
  kXor , kLast = kXor
}
 

Enumeration Type Documentation

◆ SkCoverageMode

enum class SkCoverageMode
strong

Describes geometric operations (ala SkRegion::Op) that can be applied to coverage bytes. These can be thought of as variants of porter-duff (SkBlendMode) modes, but only applied to the alpha channel.

See SkMaskFilter for ways to use these when combining two different masks.

Enumerator
kUnion 
kIntersect 
kDifference 
kReverseDifference 
kXor 
kLast 

Definition at line 18 of file SkCoverageMode.h.

18 {
19 kUnion, // A ∪ B A+B-A*B
20 kIntersect, // A ∩ B A*B
21 kDifference, // A - B A*(1-B)
22 kReverseDifference, // B - A B*(1-A)
23 kXor, // A ⊕ B A+B-2*A*B
24
25 kLast = kXor,
26};
@ kXor
r = s*(1-da) + d*(1-sa)
@ kDifference
rc = s + d - 2*(min(s*da, d*sa)), ra = kSrcOver