skia2/modules/sksg/src
Florin Malita bd64f18947 [skottie] Layer blend mode support
Introduce sksg::BlendModeEffect and use to wrap Skottie layers based on
their "bm" property.

Depending on the presence of non-trivial layer blend modes and the nature
of the destination buffer (fully transparent vs. unknown/pre-filled), we
may now need to render animation frames into a separate layer for correct
compositing.

Track the presence of non-trivial layer blend modes such that we only incur
this extra layer overhead when needed.  Also allow clients to pass a "drawing
to fully transparent buffer" hint such that we can avoid the extra layer even
when blend modes are present.

Change-Id: Iaf645878666da4349d0bef8890bbecad23a0aa9b
Reviewed-on: https://skia-review.googlesource.com/c/194840
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-02-25 15:48:07 +00:00
..
SkSGClipEffect.cpp [sksg] Hoist empty-bounds check to base RenderNode 2019-02-21 14:28:11 +00:00
SkSGColor.cpp
SkSGColorFilter.cpp [sksg] Use luminance coefficients from SkColorData.h 2019-02-22 23:31:50 +00:00
SkSGDraw.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGEffectNode.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGGeometryNode.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGGeometryTransform.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGGradient.cpp
SkSGGroup.cpp [sksg] Fix group hit-testing order 2019-02-12 21:10:00 +00:00
SkSGImage.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGInvalidationController.cpp migrating SkTDArray towards std::vector api 2018-08-08 15:51:44 +00:00
SkSGMaskEffect.cpp [sksg] Hoist empty-bounds check to base RenderNode 2019-02-21 14:28:11 +00:00
SkSGMerge.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGNode.cpp [sksg] Fix image filter content inval rect tracking 2019-02-10 21:43:20 +00:00
SkSGOpacityEffect.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGPaintNode.cpp [sksg] Stop caching full SkPaints in Paint nodes 2018-09-11 21:14:25 +00:00
SkSGPath.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGPlane.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGRect.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGRenderEffect.cpp [skottie] Layer blend mode support 2019-02-25 15:48:07 +00:00
SkSGRenderNode.cpp [skottie] Layer blend mode support 2019-02-25 15:48:07 +00:00
SkSGRoundEffect.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGScene.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGText.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGTransform.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00
SkSGTransformPriv.h [sksg] Add 3x3 Concat Transform specialization 2019-01-10 20:12:37 +00:00
SkSGTrimEffect.cpp [sksg] Hit-testing API 2019-02-12 15:01:05 +00:00