diff options
author | Jim Van Verth <jvanverth@google.com> | 2018-02-28 14:51:19 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-28 20:19:33 +0000 |
commit | 2252636923271daba4678b54ca72cd5bad227c49 (patch) | |
tree | 80409a663efdd2f8b1a5fcf0bdb9ceac59f7832a /src/utils/SkShadowTessellator.cpp | |
parent | 691fd1bcdd2cbe95f6993db52bd4854984beacdf (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-x | src/utils/SkShadowTessellator.cpp | 10 |
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 |