Chromium Code Reviews| Index: src/core/SkShadowShader.cpp |
| diff --git a/src/core/SkShadowShader.cpp b/src/core/SkShadowShader.cpp |
| index 5fc992acc14dd790ab86e43e6a761ecc7b7db8bc..8f68569aec76a837343b399bb02c9dc36bb4116a 100644 |
| --- a/src/core/SkShadowShader.cpp |
| +++ b/src/core/SkShadowShader.cpp |
| @@ -592,39 +592,8 @@ sk_sp<SkFlattenable> SkShadowShaderImpl::CreateProc(SkReadBuffer& buf) { |
| bool hasLocalMatrix = buf.readBool(); |
| SkAssertResult(!hasLocalMatrix); |
| - int numLights = buf.readInt(); |
| - |
| - SkLights::Builder builder; |
| - |
| - for (int l = 0; l < numLights; ++l) { |
| - bool isAmbient = buf.readBool(); |
| - |
| - SkColor3f color; |
| - if (!buf.readScalarArray(&color.fX, 3)) { |
| - return nullptr; |
| - } |
| - |
| - if (isAmbient) { |
| - builder.add(SkLights::Light(color)); |
| - } else { |
| - SkVector3 dir; |
| - if (!buf.readScalarArray(&dir.fX, 3)) { |
| - return nullptr; |
| - } |
| - |
| - sk_sp<SkImage> depthMap; |
| - if (!(depthMap = sk_ref_sp<SkImage>(buf.readImage()))) { |
| - return nullptr; |
| - } |
| - |
| - SkLights::Light light = SkLights::Light(color, dir); |
| - light.setShadowMap(depthMap); |
| - |
| - builder.add(light); |
| - } |
| - } |
| - |
| - sk_sp<SkLights> lights(builder.finish()); |
| + sk_sp<SkLights> lights; |
|
robertphillips
2016/08/11 14:56:18
same here
vjiaoblack
2016/08/11 19:18:54
Done.
|
| + lights->unFlatten(buf); |
| int diffuseWidth = buf.readInt(); |
| int diffuseHeight = buf.readInt(); |
| @@ -641,21 +610,7 @@ sk_sp<SkFlattenable> SkShadowShaderImpl::CreateProc(SkReadBuffer& buf) { |
| void SkShadowShaderImpl::flatten(SkWriteBuffer& buf) const { |
| this->INHERITED::flatten(buf); |
| - buf.writeInt(fLights->numLights()); |
| - |
| - for (int l = 0; l < fLights->numLights(); ++l) { |
| - const SkLights::Light& light = fLights->light(l); |
| - |
| - bool isAmbient = SkLights::Light::kAmbient_LightType == light.type(); |
| - |
| - buf.writeBool(isAmbient); |
| - buf.writeScalarArray(&light.color().fX, 3); |
| - if (!isAmbient) { |
| - buf.writeScalarArray(&light.dir().fX, 3); |
| - } |
| - |
| - buf.writeImage(light.getShadowMap()); |
| - } |
| + fLights->flatten(buf); |
| buf.writeInt(fDiffuseWidth); |
| buf.writeInt(fDiffuseHeight); |