aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode/SampleAndroidShadows.cpp
diff options
context:
space:
mode:
authorGravatar Jim Van Verth <jvanverth@google.com>2016-10-31 16:06:51 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-10-31 20:29:30 +0000
commit3c1b7db2432d136df0fc50c2e3ee0b3792b01dd6 (patch)
tree601e58833eebba555598f51b30c3ad278fc2a9fa /samplecode/SampleAndroidShadows.cpp
parent18b84900855bb34f1694b4c50c088e7377d0e89f (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.cpp27
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 {