aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode
diff options
context:
space:
mode:
authorGravatar Jim Van Verth <jvanverth@google.com>2017-12-19 13:02:38 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-12-19 19:27:06 +0000
commit744cbb388870bc1ae0f6b3ac0fbeaa136f55917b (patch)
treea8929b482248d8fd9cd0e57880e7696dff7784ad /samplecode
parentfaa095e9842b924c20de84dce1bcc1adad7fe2e4 (diff)
Fix alpha contribution to tonal color.
Also adds a tonal color GM, a grayscale mode to shadowutils GM, and animated alpha to SampleAndroidShadows. Bug: skia: Change-Id: I1dcb5cab7e53ffa7a3bf1a07b6ebfed38df1a9ed Reviewed-on: https://skia-review.googlesource.com/85002 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
Diffstat (limited to 'samplecode')
-rw-r--r--samplecode/SampleAndroidShadows.cpp41
-rwxr-xr-xsamplecode/SampleShadowUtils.cpp1
2 files changed, 28 insertions, 14 deletions
diff --git a/samplecode/SampleAndroidShadows.cpp b/samplecode/SampleAndroidShadows.cpp
index 3db994adda..2621cec073 100644
--- a/samplecode/SampleAndroidShadows.cpp
+++ b/samplecode/SampleAndroidShadows.cpp
@@ -35,23 +35,27 @@ class ShadowsView : public SampleView {
SkScalar fZDelta;
SkScalar fAnimTranslate;
SkScalar fAnimAngle;
+ SkScalar fAnimAlpha;
bool fShowAmbient;
bool fShowSpot;
bool fUseAlt;
bool fShowObject;
bool fIgnoreShadowAlpha;
+ bool fDoAlphaAnimation;
public:
ShadowsView()
: fZDelta(0)
, fAnimTranslate(0)
, fAnimAngle(0)
+ , fAnimAlpha(1)
, fShowAmbient(true)
, fShowSpot(true)
, fUseAlt(false)
, fShowObject(true)
- , fIgnoreShadowAlpha(false) {}
+ , fIgnoreShadowAlpha(false)
+ , fDoAlphaAnimation(false) {}
protected:
void onOnceBeforeDraw() override {
@@ -99,6 +103,13 @@ protected:
fShowObject = !fShowObject;
handled = true;
break;
+ case 'N':
+ fDoAlphaAnimation = !fDoAlphaAnimation;
+ if (!fDoAlphaAnimation) {
+ fAnimAlpha = 1;
+ }
+ handled = true;
+ break;
case '>':
fZDelta += 0.5f;
handled = true;
@@ -175,38 +186,38 @@ protected:
paint.setColor(SK_ColorWHITE);
canvas->translate(200, 90);
zPlaneParams.fZ = SkTMax(1.0f, 2 + fZDelta);
- this->drawShadowedPath(canvas, fRRPath, zPlaneParams, paint, kAmbientAlpha,
- lightPos, kLightWidth, kSpotAlpha);
+ this->drawShadowedPath(canvas, fRRPath, zPlaneParams, paint, fAnimAlpha*kAmbientAlpha,
+ lightPos, kLightWidth, fAnimAlpha*kSpotAlpha);
paint.setColor(SK_ColorRED);
canvas->translate(250, 0);
zPlaneParams.fZ = SkTMax(1.0f, 8 + fZDelta);
- this->drawShadowedPath(canvas, fRectPath, zPlaneParams, paint, kAmbientAlpha,
- lightPos, kLightWidth, kSpotAlpha);
+ this->drawShadowedPath(canvas, fRectPath, zPlaneParams, paint, fAnimAlpha*kAmbientAlpha,
+ lightPos, kLightWidth, fAnimAlpha*kSpotAlpha);
paint.setColor(SK_ColorBLUE);
canvas->translate(-250, 110);
zPlaneParams.fZ = SkTMax(1.0f, 12 + fZDelta);
- this->drawShadowedPath(canvas, fCirclePath, zPlaneParams, paint, kAmbientAlpha,
- lightPos, kLightWidth, 0.5f);
+ this->drawShadowedPath(canvas, fCirclePath, zPlaneParams, paint, fAnimAlpha*kAmbientAlpha,
+ lightPos, kLightWidth, fAnimAlpha*0.5f);
paint.setColor(SK_ColorGREEN);
canvas->translate(250, 0);
zPlaneParams.fZ = SkTMax(1.0f, 64 + fZDelta);
- this->drawShadowedPath(canvas, fRRPath, zPlaneParams, paint, kAmbientAlpha,
- lightPos, kLightWidth, kSpotAlpha);
+ this->drawShadowedPath(canvas, fRRPath, zPlaneParams, paint, fAnimAlpha*kAmbientAlpha,
+ lightPos, kLightWidth, fAnimAlpha*kSpotAlpha);
paint.setColor(SK_ColorYELLOW);
canvas->translate(-250, 110);
zPlaneParams.fZ = SkTMax(1.0f, 8 + fZDelta);
- this->drawShadowedPath(canvas, fFunkyRRPath, zPlaneParams, paint, kAmbientAlpha,
- lightPos, kLightWidth, kSpotAlpha);
+ this->drawShadowedPath(canvas, fFunkyRRPath, zPlaneParams, paint, fAnimAlpha*kAmbientAlpha,
+ lightPos, kLightWidth, fAnimAlpha*kSpotAlpha);
paint.setColor(SK_ColorCYAN);
canvas->translate(250, 0);
zPlaneParams.fZ = SkTMax(1.0f, 16 + fZDelta);
- this->drawShadowedPath(canvas, fCubicPath, zPlaneParams, paint,
- kAmbientAlpha, lightPos, kLightWidth, kSpotAlpha);
+ this->drawShadowedPath(canvas, fCubicPath, zPlaneParams, paint, fAnimAlpha*kAmbientAlpha,
+ lightPos, kLightWidth, fAnimAlpha*kSpotAlpha);
// circular reveal
SkPath tmpPath;
@@ -259,7 +270,9 @@ protected:
bool onAnimate(const SkAnimTimer& timer) override {
fAnimTranslate = timer.pingPong(30, 0, 200, -200);
fAnimAngle = timer.pingPong(15, 0, 0, 20);
-
+ if (fDoAlphaAnimation) {
+ fAnimAlpha = timer.pingPong(5, 0, 1, 0);
+ }
return true;
}
diff --git a/samplecode/SampleShadowUtils.cpp b/samplecode/SampleShadowUtils.cpp
index 7e6079156d..7d30a10d0b 100755
--- a/samplecode/SampleShadowUtils.cpp
+++ b/samplecode/SampleShadowUtils.cpp
@@ -121,6 +121,7 @@ protected:
if (!fShowSpot) {
spotAlpha = 0;
}
+ flags |= SkShadowFlags::kDisableTonalColor_ShadowFlag;
if (fUseAlt) {
flags |= SkShadowFlags::kGeometricOnly_ShadowFlag;
}