diff options
author | Jim Van Verth <jvanverth@google.com> | 2016-10-31 16:06:51 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-10-31 20:29:30 +0000 |
commit | 3c1b7db2432d136df0fc50c2e3ee0b3792b01dd6 (patch) | |
tree | 601e58833eebba555598f51b30c3ad278fc2a9fa /samplecode/SampleAndroidShadows.cpp | |
parent | 18b84900855bb34f1694b4c50c088e7377d0e89f (diff) |
Add SkShadowMaskFilter
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3824
Change-Id: Idde7f7d6a61583a8be26df7a7c4b293c4710bccf
Reviewed-on: https://skia-review.googlesource.com/3824
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Diffstat (limited to 'samplecode/SampleAndroidShadows.cpp')
-rw-r--r-- | samplecode/SampleAndroidShadows.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/samplecode/SampleAndroidShadows.cpp b/samplecode/SampleAndroidShadows.cpp index a23cac423d..0b9358aec5 100644 --- a/samplecode/SampleAndroidShadows.cpp +++ b/samplecode/SampleAndroidShadows.cpp @@ -12,6 +12,7 @@ #include "SkGaussianEdgeShader.h" #include "SkPath.h" #include "SkPoint3.h" +#include "SkShadowMaskFilter.h" #include "SkUtils.h" #include "SkView.h" #include "sk_tool_utils.h" @@ -366,6 +367,30 @@ protected: void drawShadowedPath(SkCanvas* canvas, const SkPath& path, SkScalar zValue, const SkPaint& paint, SkScalar ambientAlpha, const SkPoint3& lightPos, SkScalar lightWidth, SkScalar spotAlpha) { +#ifdef USE_MASK_FILTER + if (fUseAlt) { + if (fShowAmbient) { + this->drawAmbientShadowAlt(canvas, path, zValue, ambientAlpha); + } + if (fShowSpot) { + this->drawSpotShadowAlt(canvas, path, zValue, lightPos, lightWidth, spotAlpha); + } + } else { + SkPaint newPaint; + newPaint.setColor(SK_ColorBLACK); + if (!fShowAmbient) { + ambientAlpha = 0; + } + if (!fShowSpot) { + spotAlpha = 0; + } + + newPaint.setMaskFilter(SkShadowMaskFilter::Make(zValue, lightPos, lightWidth, + ambientAlpha, spotAlpha)); + + canvas->drawPath(path, newPaint); + } +#else if (fShowAmbient) { if (fUseAlt) { this->drawAmbientShadowAlt(canvas, path, zValue, ambientAlpha); @@ -380,6 +405,8 @@ protected: this->drawSpotShadow(canvas, path, zValue, lightPos, lightWidth, spotAlpha); } } +#endif + if (fShowObject) { canvas->drawPath(path, paint); } else { |