diff options
author | Jim Van Verth <jvanverth@google.com> | 2018-06-14 14:43:00 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-14 19:09:44 +0000 |
commit | e39bc9fd4310a3bc19ccbc24c9471977bbf536f1 (patch) | |
tree | b9521a8f8b0426d616859eedf6cda5859f5c6ce2 /samplecode | |
parent | 0510edeebf76b8a9753acc06afde8b09a8f00a54 (diff) |
Implement tilted concave ambient shadow
Bug: skia:7971
Change-Id: I6a92a5021f53ae10fb35ef355081653e96bc04b0
Reviewed-on: https://skia-review.googlesource.com/134844
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'samplecode')
-rw-r--r-- | samplecode/SampleAndroidShadows.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/samplecode/SampleAndroidShadows.cpp b/samplecode/SampleAndroidShadows.cpp index ee833d7939..cdc9e75201 100644 --- a/samplecode/SampleAndroidShadows.cpp +++ b/samplecode/SampleAndroidShadows.cpp @@ -315,6 +315,7 @@ protected: fWideOvalPath.getBounds().height() / 2); translate = SkPoint::Make(100, 600); view.restore(); + view.save(); view.rotateY(fAnimAngle); view.getMatrix(&persp); persp.preTranslate(-pivot.fX, -pivot.fY); @@ -325,6 +326,21 @@ protected: SkTMax(1.0f, 32 + fZDelta) + SkScalarSin(radians)*pivot.fX); this->drawShadowedPath(canvas, fWideOvalPath, zPlaneParams, paint, .1f, lightPos, kLightWidth, .5f); + + pivot = SkPoint::Make(fStarPath.getBounds().width() / 2, + fStarPath.getBounds().height() / 2); + translate = SkPoint::Make(700, 250); + view.restore(); + view.rotateY(fAnimAngle); + view.getMatrix(&persp); + persp.preTranslate(-pivot.fX, -pivot.fY); + persp.postTranslate(pivot.fX + translate.fX, pivot.fY + translate.fY); + canvas->setMatrix(persp); + zPlaneParams = SkPoint3::Make(-SkScalarSin(radians), + 0, + SkTMax(1.0f, 8 + fZDelta) + SkScalarSin(radians)*pivot.fX); + this->drawShadowedPath(canvas, fStarPath, zPlaneParams, paint, .1f, + lightPos, kLightWidth, .5f); } bool onAnimate(const SkAnimTimer& timer) override { |