34 const char hardMix[] =
35 "half4 main(half4 src, half4 dst) {"
36 "src.rgb = unpremul(src).rgb + unpremul(dst).rgb;"
37 "src.rgb = min(floor(src.rgb), 1) * src.a;"
39 "return src + (1 - src.a)*dst;"
43 return result.effect.release();
49 const AnimationBuilder* abuilder) {
70 const size_t mode = ParseDefault<size_t>(jobject[
"bm"], 0);
79 if (mode < std::size(kBlendModeMap)) {
100 if (
auto blender = get_blender(jobject,
this)) {
101 fHasNontrivialBlending =
true;
@ kExclusion
rc = s + d - two(s*d), ra = kSrcOver
@ kSaturation
saturation of source with hue and luminosity of destination
@ kColorBurn
darken destination to reflect source
@ kLighten
rc = s + d - min(s*da, d*sa), ra = kSrcOver
@ kHue
hue of source with saturation and luminosity of destination
@ kMultiply
r = s*(1-da) + d*(1-sa) + s*d
@ kColorDodge
brighten destination to reflect source
@ kSrcOver
r = s + (1-sa)*d
@ kLuminosity
luminosity of source with hue and saturation of destination
@ kSoftLight
lighten or darken, depending on source
@ kDifference
rc = s + d - 2*(min(s*da, d*sa)), ra = kSrcOver
@ kOverlay
multiply or screen, depending on destination
@ kColor
hue and saturation of source with luminosity of destination
@ kHardLight
multiply or screen, depending on source
@ kDarken
rc = s + d - max(s*da, d*sa), ra = kSrcOver
static sk_sp< SkBlender > Mode(SkBlendMode mode)
sk_sp< SkBlender > makeBlender(sk_sp< const SkData > uniforms, SkSpan< const ChildPtr > children={}) const
static Result MakeForBlender(SkString sksl, const Options &)
static sk_sp< BlenderEffect > Make(sk_sp< RenderNode > child, sk_sp< SkBlender >=nullptr)
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive mode