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() |
| }; |