Index: samplecode/SampleShadowing.cpp |
diff --git a/samplecode/SampleShadowing.cpp b/samplecode/SampleShadowing.cpp |
index 4892f9c27df5c97eb27bd38175a2f59ac5082aac..ada48a0f4b03d948c332d1440a4316dff878d0c6 100644 |
--- a/samplecode/SampleShadowing.cpp |
+++ b/samplecode/SampleShadowing.cpp |
@@ -25,7 +25,13 @@ public: |
, fLightDepth(300.0f) { |
this->setBGColor(0xFFCCCCCC); |
robertphillips
2016/08/26 19:16:02
In the prior CL you were calling updateLights. Why
vjiaoblack
2016/08/26 19:25:17
Done.
|
- this->updateLights(200, 200); |
+ SkLights::Builder builder; |
+ builder.add(SkLights::Light::MakeDirectional(SkColor3f::Make(0.2f, 0.3f, 0.4f), |
+ SkVector3::Make(0.2f, 0.05f, 1.0f))); |
+ builder.add(SkLights::Light::MakeDirectional(SkColor3f::Make(0.4f, 0.3f, 0.2f), |
+ SkVector3::Make(0.05f, 0.2f, 1.0f))); |
+ builder.setAmbientLightColor(SkColor3f::Make(0.4f, 0.4f, 0.4f)); |
+ fLights = builder.finish(); |
fTestRects[0].fColor = 0xFFEE8888; |
fTestRects[0].fDepth = 80; |
@@ -160,19 +166,21 @@ protected: |
} |
void updateLights(int x, int y) { |
+ float recipX = 1.0f / kWidth; |
+ float recipY = 1.0f / kHeight; |
+ |
SkLights::Builder builder; |
- builder.add(SkLights::Light::MakePoint(SkColor3f::Make(0.2f, 0.4f, 0.6f), |
- SkVector3::Make(x - 50, |
- 350 - y, |
- fLightDepth), |
- 1024)); |
- builder.add(SkLights::Light::MakePoint(SkColor3f::Make(0.6f, 0.4f, 0.2f), |
- SkVector3::Make(x + 50, |
- 450 - y, |
- fLightDepth), |
- 1024)); |
- builder.add(SkLights::Light::MakeDirectional(SkColor3f::Make(0.2f, 0.2f, 0.2f), |
- SkVector3::Make(0.2f, 0.2f, 1.0f))); |
+ builder.add(SkLights::Light::MakeDirectional( |
+ SkColor3f::Make(0.2f, 0.3f, 0.4f), |
+ SkVector3::Make(0.2f + (200.0f - x) * recipX, |
+ 0.05f + (200.0f - y) * recipY, |
+ 1.0f))); |
+ builder.add(SkLights::Light::MakeDirectional( |
+ SkColor3f::Make(0.4f, 0.3f, 0.2f), |
+ SkVector3::Make(0.05f + (200.0f - x) * recipX, |
+ 0.2f + (200.0f - y) * recipY, |
+ 1.0f))); |
+ builder.setAmbientLightColor(SkColor3f::Make(0.4f, 0.4f, 0.4f)); |
fLights = builder.finish(); |
} |
@@ -205,7 +213,7 @@ protected: |
if (fMoveLight) { |
if (dx != 0 || dy != 0) { |
robertphillips
2016/08/26 19:16:02
this-> - from prior CL
|
- this->updateLights(x, y); |
+ updateLights(x, y); |
fLightsChanged = true; |
this->inval(nullptr); |
} |