Index: src/core/SkLightingShader.cpp |
diff --git a/src/core/SkLightingShader.cpp b/src/core/SkLightingShader.cpp |
index 02f14b34ddc9215c72070aeedc769a8f36418cd2..2272cf2e1a9faf2d8af24a791d4a57fd0ad2089d 100644 |
--- a/src/core/SkLightingShader.cpp |
+++ b/src/core/SkLightingShader.cpp |
@@ -49,7 +49,7 @@ public: |
*/ |
SkLightingShaderImpl(sk_sp<SkShader> diffuseShader, |
sk_sp<SkNormalSource> normalSource, |
- const sk_sp<SkLights> lights) |
+ sk_sp<SkLights> lights) |
: fDiffuseShader(std::move(diffuseShader)) |
, fNormalSource(std::move(normalSource)) |
, fLights(std::move(lights)) {} |
@@ -134,6 +134,7 @@ public: |
// TODO: handle more than one of these |
fLightColor = lights->light(i).color(); |
fLightDir = lights->light(i).dir(); |
+ // TODO get the handle to the shadow map if there is one |
} |
} |
@@ -176,6 +177,9 @@ public: |
this->emitChild(0, nullptr, &dstNormalName, args); |
fragBuilder->codeAppendf("vec3 normal = %s.xyz;", dstNormalName.c_str()); |
+ |
+ // TODO: make this a loop and modulate the contribution from each light |
+ // based on the shadow map |
fragBuilder->codeAppendf("float NdotL = clamp(dot(normal, %s), 0.0, 1.0);", |
lightDirUniName); |
// diffuse light |