aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode/SampleAndroidShadows.cpp
diff options
context:
space:
mode:
authorGravatar Jim Van Verth <jvanverth@google.com>2017-02-06 14:36:01 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-02-08 19:37:01 +0000
commit2aa535e6917b72861d5b51cae297d15894b04d07 (patch)
tree92f362830abce2dfb4e75b586b9e284223bc0576 /samplecode/SampleAndroidShadows.cpp
parent59df64a049bd02bddd105b18630d1f645d62ec91 (diff)
Tweak shadow sample for demos.
BUG=skia:6119 Change-Id: I5b5d4298ee21bdcc2cc9ce1fae0826cd56752c2f Reviewed-on: https://skia-review.googlesource.com/8081 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.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/samplecode/SampleAndroidShadows.cpp b/samplecode/SampleAndroidShadows.cpp
index 8f2859282b..0e0a4b4a79 100644
--- a/samplecode/SampleAndroidShadows.cpp
+++ b/samplecode/SampleAndroidShadows.cpp
@@ -8,6 +8,7 @@
#include "SampleCode.h"
#include "SkBlurMask.h"
#include "SkBlurMaskFilter.h"
+#include "SkColorFilter.h"
#include "SkCanvas.h"
#include "SkGaussianEdgeShader.h"
#include "SkPath.h"
@@ -28,6 +29,7 @@ class ShadowsView : public SampleView {
SkPath fFunkyRRPath;
SkPath fCubicPath;
SkPoint3 fLightPos;
+ SkScalar fZDelta;
bool fShowAmbient;
bool fShowSpot;
@@ -36,8 +38,9 @@ class ShadowsView : public SampleView {
bool fIgnoreShadowAlpha;
public:
- ShadowsView()
- : fShowAmbient(true)
+ ShadowsView()
+ : fZDelta(0.0f)
+ , fShowAmbient(true)
, fShowSpot(true)
, fUseAlt(true)
, fShowObject(true)
@@ -68,7 +71,7 @@ protected:
SkUnichar uni;
if (SampleCode::CharQ(*evt, &uni)) {
switch (uni) {
- case 'B':
+ case 'W':
fShowAmbient = !fShowAmbient;
break;
case 'S':
@@ -81,10 +84,10 @@ protected:
fShowObject = !fShowObject;
break;
case '>':
- fLightPos.fZ += 10;
+ fZDelta += 0.5f;
break;
case '<':
- fLightPos.fZ -= 10;
+ fZDelta -= 0.5f;
break;
case '?':
fIgnoreShadowAlpha = !fIgnoreShadowAlpha;
@@ -219,6 +222,7 @@ protected:
iRadius >> 8, iRadius & 0xff,
(unsigned char)(4.0f*pad)));
+ paint.setColorFilter(SkColorFilter::MakeModeFilter(SK_ColorBLACK, SkBlendMode::kModulate));
paint.setShader(SkGaussianEdgeShader::Make());
canvas->drawRRect(pathRRect, paint);
}
@@ -355,6 +359,7 @@ protected:
paint.setStyle(SkPaint::kStroke_Style);
paint.setStrokeWidth(strokeWidth);
}
+ paint.setColorFilter(SkColorFilter::MakeModeFilter(SK_ColorBLACK, SkBlendMode::kModulate));
paint.setShader(SkGaussianEdgeShader::Make());
// handle scale of radius due to CTM
radius *= scaleFactors[0];
@@ -440,33 +445,33 @@ protected:
canvas->translate(200, 90);
lightPos.fX += 200;
lightPos.fY += 90;
- this->drawShadowedPath(canvas, fRRPath, 2, paint, kAmbientAlpha,
+ this->drawShadowedPath(canvas, fRRPath, SkTMax(1.0f, 2+fZDelta), paint, kAmbientAlpha,
lightPos, kLightWidth, kSpotAlpha);
paint.setColor(SK_ColorRED);
canvas->translate(250, 0);
lightPos.fX += 250;
- this->drawShadowedPath(canvas, fRectPath, 4, paint, kAmbientAlpha,
+ this->drawShadowedPath(canvas, fRectPath, SkTMax(1.0f, 4+fZDelta), paint, kAmbientAlpha,
lightPos, kLightWidth, kSpotAlpha);
paint.setColor(SK_ColorBLUE);
canvas->translate(-250, 110);
lightPos.fX -= 250;
lightPos.fY += 110;
- this->drawShadowedPath(canvas, fCirclePath, 8, paint, 0,
+ this->drawShadowedPath(canvas, fCirclePath, SkTMax(1.0f, 8+fZDelta), paint, 0,
lightPos, kLightWidth, 0.5f);
paint.setColor(SK_ColorGREEN);
canvas->translate(250, 0);
lightPos.fX += 250;
- this->drawShadowedPath(canvas, fRRPath, 64, paint, kAmbientAlpha,
+ this->drawShadowedPath(canvas, fRRPath, SkTMax(1.0f, 64+fZDelta), paint, kAmbientAlpha,
lightPos, kLightWidth, kSpotAlpha);
paint.setColor(SK_ColorYELLOW);
canvas->translate(-250, 110);
lightPos.fX -= 250;
lightPos.fY += 110;
- this->drawShadowedPath(canvas, fFunkyRRPath, 8, paint, kAmbientAlpha,
+ this->drawShadowedPath(canvas, fFunkyRRPath, SkTMax(1.0f, 8+fZDelta), paint, kAmbientAlpha,
lightPos, kLightWidth, kSpotAlpha);
paint.setColor(SK_ColorCYAN);