aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/svg/model/SkSVGRenderContext.h
diff options
context:
space:
mode:
authorGravatar fmalita <fmalita@chromium.org>2016-09-20 15:45:57 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-20 15:45:57 -0700
commitbef51c23c314180760b07f88fab50f6670f37f9b (patch)
tree5b842aef28d9791c19ed2e9ed7c5ccc54873ae18 /experimental/svg/model/SkSVGRenderContext.h
parent768dc8f496e4cf888fd6113e00cd3fda269dd805 (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.h7
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;