Chromium Code Reviews| Index: src/core/SkLightingShader.h | 
| diff --git a/src/core/SkLightingShader.h b/src/core/SkLightingShader.h | 
| index e21b94266eebdb970a7400f5431bb3c698b68018..be932423e94e281648fd8364c5dd7c2dc2436f58 100644 | 
| --- a/src/core/SkLightingShader.h | 
| +++ b/src/core/SkLightingShader.h | 
| @@ -13,45 +13,33 @@ | 
| class SkBitmap; | 
| class SkMatrix; | 
| +class SkNormalSource; | 
| class SK_API SkLightingShader { | 
| public: | 
| 
 
robertphillips
2016/07/06 16:36:33
"map and normals with" -> "map using the normals a
 
dvonbeck
2016/07/06 18:07:48
Done.
 
 | 
| - /** Returns a shader that lights the diffuse and normal maps with a set of lights. | 
| + /** Returns a shader that lights the diffuse map and normals with a set of lights. | 
| It returns a shader with a reference count of 1. | 
| The caller should decrement the shader's reference count when done with the shader. | 
| It is an error for count to be < 2. | 
| @param diffuse the diffuse bitmap | 
| - @param normal the normal map | 
| @param lights the lights applied to the normal map | 
| - @param invNormRotation rotation applied to the normal map's normals | 
| @param diffLocalMatrix the local matrix for the diffuse map (transform from | 
| texture coordinates to shape source coordinates). nullptr is | 
| interpreted as an identity matrix. | 
| - @param normLocalMatrix the local matrix for the normal map (transform from | 
| - texture coordinates to shape source coordinates). nullptr is | 
| - interpreted as an identity matrix. | 
| + @param normalSource the source for the normals | 
| nullptr will be returned if: | 
| - either 'diffuse' or 'normal' are empty | 
| - either 'diffuse' or 'normal' are too big (> 65535 on a side) | 
| - 'diffuse' and 'normal' aren't the same size | 
| + 'diffuse' is empty | 
| + 'diffuse' is too big (> 65535 on any side) | 
| The lighting equation is currently: | 
| result = LightColor * DiffuseColor * (Normal * LightDir) + AmbientColor | 
| - The normal map is currently assumed to be an 8888 image where the normal at a texel | 
| - is retrieved by: | 
| - N.x = R-127; | 
| - N.y = G-127; | 
| - N.z = B-127; | 
| - N.normalize(); | 
| - The +Z axis is thus encoded in RGB as (127, 127, 255) while the -Z axis is | 
| - (127, 127, 0). | 
| */ | 
| - static sk_sp<SkShader> Make(const SkBitmap& diffuse, const SkBitmap& normal, | 
| - sk_sp<SkLights> lights, const SkVector& invNormRotation, | 
| - const SkMatrix* diffLocalMatrix, const SkMatrix* normLocalMatrix); | 
| + static sk_sp<SkShader> Make(const SkBitmap& diffuse, sk_sp<SkLights> lights, | 
| + const SkMatrix* diffLocalMatrix, | 
| + sk_sp<SkNormalSource> normalSource); | 
| SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() | 
| }; |