diff options
author | Jim Van Verth <jvanverth@google.com> | 2018-06-12 14:21:38 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-14 12:25:27 +0000 |
commit | 8760e2f42857b3a59c203212ffdc2b5a6cdcb72c (patch) | |
tree | dfb3542c5cedc91ab9ab3721e2d3f09ef6475eba /src/utils/SkShadowUtils.cpp | |
parent | f018b7d607a0859e2d6078578a9632144694072f (diff) |
Add outline concave shadow support
Bug: skia:7971
Change-Id: I97370b9c942c5e5f1e53ec15524bd2d20794d68c
Reviewed-on: https://skia-review.googlesource.com/134328
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Diffstat (limited to 'src/utils/SkShadowUtils.cpp')
-rw-r--r-- | src/utils/SkShadowUtils.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/utils/SkShadowUtils.cpp b/src/utils/SkShadowUtils.cpp index 2578a686d1..b4fba5fcc1 100644 --- a/src/utils/SkShadowUtils.cpp +++ b/src/utils/SkShadowUtils.cpp @@ -688,8 +688,10 @@ void SkBaseDevice::drawShadow(const SkPath& path, const SkDrawShadowRec& rec) { } else if (factory.fOffset.length()*scale + scale < radius) { // if we don't translate more than the blur distance, can assume umbra is covered factory.fOccluderType = SpotVerticesFactory::OccluderType::kOpaqueNoUmbra; - } else { + } else if (path.isConvex()) { factory.fOccluderType = SpotVerticesFactory::OccluderType::kOpaquePartialUmbra; + } else { + factory.fOccluderType = SpotVerticesFactory::OccluderType::kTransparent; } // need to add this after we classify the shadow factory.fOffset.fX += viewMatrix.getTranslateX(); |