aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils/SkShadowUtils.cpp
diff options
context:
space:
mode:
authorGravatar Jim Van Verth <jvanverth@google.com>2018-06-12 14:21:38 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-06-14 12:25:27 +0000
commit8760e2f42857b3a59c203212ffdc2b5a6cdcb72c (patch)
treedfb3542c5cedc91ab9ab3721e2d3f09ef6475eba /src/utils/SkShadowUtils.cpp
parentf018b7d607a0859e2d6078578a9632144694072f (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.cpp4
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();