| Index: src/core/SkLightingShader.cpp
|
| diff --git a/src/core/SkLightingShader.cpp b/src/core/SkLightingShader.cpp
|
| index 59f8564a49d3fb0461b7416fb2b2583a21d0c16b..1be023dd5b26769e8d8e43594a1128798a6275cc 100644
|
| --- a/src/core/SkLightingShader.cpp
|
| +++ b/src/core/SkLightingShader.cpp
|
| @@ -465,8 +465,8 @@ SkShader::Context* SkLightingShaderImpl::onCreateContext(const ContextRec& rec,
|
| SkShader::Context* diffuseContext = fDiffuseShader->createContext(rec, diffuseContextStorage);
|
|
|
| void* normalProviderStorage = (char*)heapAllocated + fDiffuseShader->contextSize(rec);
|
| - SkNormalSource::Provider* normalProvider =
|
| - fNormalSource->asProvider(rec, normalProviderStorage);
|
| + SkNormalSource::Provider* normalProvider = fNormalSource->asProvider(rec,
|
| + normalProviderStorage);
|
| if (!normalProvider) {
|
| diffuseContext->~Context();
|
| free(heapAllocated);
|
| @@ -479,21 +479,14 @@ SkShader::Context* SkLightingShaderImpl::onCreateContext(const ContextRec& rec,
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -sk_sp<SkShader> SkLightingShader::Make(const SkBitmap& diffuse, sk_sp<SkLights> lights,
|
| - const SkMatrix* diffLocalM, sk_sp<SkNormalSource> normalSource) {
|
| - if (diffuse.isNull() || SkBitmapProcShader::BitmapIsTooBig(diffuse)) {
|
| - return nullptr;
|
| - }
|
| -
|
| - if (!normalSource) {
|
| +sk_sp<SkShader> SkLightingShader::Make(sk_sp<SkShader> diffuseShader,
|
| + sk_sp<SkNormalSource> normalSource, sk_sp<SkLights> lights) {
|
| + if (!diffuseShader || !normalSource) {
|
| + // TODO: Use paint's color in absence of a diffuseShader
|
| // TODO: Use a default implementation of normalSource instead
|
| return nullptr;
|
| }
|
|
|
| - // TODO: support other tile modes
|
| - sk_sp<SkShader> diffuseShader = SkBitmapProcShader::MakeBitmapShader(diffuse,
|
| - SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, diffLocalM);
|
| -
|
| return sk_make_sp<SkLightingShaderImpl>(std::move(diffuseShader), std::move(normalSource),
|
| std::move(lights));
|
| }
|
|
|