aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils/SkShadowTessellator.cpp
diff options
context:
space:
mode:
authorGravatar Jim Van Verth <jvanverth@google.com>2018-02-28 14:51:19 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-28 20:19:33 +0000
commit2252636923271daba4678b54ca72cd5bad227c49 (patch)
tree80409a663efdd2f8b1a5fcf0bdb9ceac59f7832a /src/utils/SkShadowTessellator.cpp
parent691fd1bcdd2cbe95f6993db52bd4854984beacdf (diff)
Fall back to blurs for unsupported DrawShadow cases
Bug: skia:7263 Change-Id: Ifb70212e369ed783bd03a6ff2a540a8f46282595 Reviewed-on: https://skia-review.googlesource.com/109388 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/utils/SkShadowTessellator.cpp')
-rwxr-xr-xsrc/utils/SkShadowTessellator.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/utils/SkShadowTessellator.cpp b/src/utils/SkShadowTessellator.cpp
index 57bf5851fa..23754292b0 100755
--- a/src/utils/SkShadowTessellator.cpp
+++ b/src/utils/SkShadowTessellator.cpp
@@ -378,6 +378,11 @@ SkAmbientShadowTessellator::SkAmbientShadowTessellator(const SkPath& path,
: INHERITED(zPlaneParams, transparent)
, fSplitFirstEdge(false)
, fSplitPreviousEdge(false) {
+ // TODO: support some concave paths
+ if (!path.isConvex()) {
+ return;
+ }
+
// Set base colors
SkScalar umbraAlpha = SkScalarInvert(SkDrawShadowMetrics::AmbientRecipAlpha(heightFunc(0, 0)));
// umbraColor is the interior value, penumbraColor the exterior value.
@@ -801,6 +806,11 @@ SkSpotShadowTessellator::SkSpotShadowTessellator(const SkPath& path, const SkMat
, fFirstUmbraOutside(false)
, fValidUmbra(true) {
+ // TODO: support some concave paths
+ if (!path.isConvex()) {
+ return;
+ }
+
// make sure we're not below the canvas plane
if (this->setZOffset(path.getBounds(), ctm.hasPerspective())) {
// Adjust light height and radius