diff options
author | fmalita <fmalita@chromium.org> | 2016-09-20 15:45:57 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-20 15:45:57 -0700 |
commit | bef51c23c314180760b07f88fab50f6670f37f9b (patch) | |
tree | 5b842aef28d9791c19ed2e9ed7c5ccc54873ae18 /experimental/svg/model/SkSVGRenderContext.h | |
parent | 768dc8f496e4cf888fd6113e00cd3fda269dd805 (diff) |
[SVGDom] Opacity optimization
Apply opacity as fill/stroke paint alpha instead of saveLayer, when
possible.
R=robertphillips@google.com,stephana@google.com,reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2353503005
Committed: https://skia.googlesource.com/skia/+/3dbb7b9f196d793fbd16243157ee67638891f5dc
Review-Url: https://codereview.chromium.org/2353503005
Diffstat (limited to 'experimental/svg/model/SkSVGRenderContext.h')
-rw-r--r-- | experimental/svg/model/SkSVGRenderContext.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/experimental/svg/model/SkSVGRenderContext.h b/experimental/svg/model/SkSVGRenderContext.h index 68209a73cc..393c2849eb 100644 --- a/experimental/svg/model/SkSVGRenderContext.h +++ b/experimental/svg/model/SkSVGRenderContext.h @@ -67,7 +67,10 @@ public: SkCanvas* canvas() const { return fCanvas; } - void applyPresentationAttributes(const SkSVGPresentationAttributes&); + enum ApplyFlags { + kLeaf = 1 << 0, // the target node doesn't have descendants + }; + void applyPresentationAttributes(const SkSVGPresentationAttributes&, uint32_t flags); const SkSVGNode* findNodeById(const SkString&) const; @@ -80,6 +83,8 @@ private: void* operator new(size_t, void*) = delete; SkSVGRenderContext& operator=(const SkSVGRenderContext&) = delete; + void applyOpacity(SkScalar opacity, uint32_t flags); + const SkSVGIDMapper& fIDMapper; SkTCopyOnFirstWrite<SkSVGLengthContext> fLengthContext; SkTCopyOnFirstWrite<SkSVGPresentationContext> fPresentationContext; |