From 772b5ee446d7545eec4ca7d6dc9d75461e2a9c38 Mon Sep 17 00:00:00 2001 From: vjiaoblack Date: Fri, 12 Aug 2016 11:38:47 -0700 Subject: Added PointLights to SkLights::Light BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2237493002 Review-Url: https://codereview.chromium.org/2237493002 --- src/core/SkLightingShader.cpp | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) (limited to 'src/core/SkLightingShader.cpp') diff --git a/src/core/SkLightingShader.cpp b/src/core/SkLightingShader.cpp index e8280b1267..6f3c23399d 100644 --- a/src/core/SkLightingShader.cpp +++ b/src/core/SkLightingShader.cpp @@ -416,30 +416,7 @@ sk_sp SkLightingShaderImpl::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; - } - builder.add(SkLights::Light(color, dir)); - } - } - - sk_sp lights(builder.finish()); + sk_sp lights = SkLights::MakeFromBuffer(buf); sk_sp normalSource(buf.readFlattenable()); @@ -456,18 +433,7 @@ sk_sp SkLightingShaderImpl::CreateProc(SkReadBuffer& buf) { void SkLightingShaderImpl::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); - } - } + fLights->flatten(buf); buf.writeFlattenable(fNormalSource.get()); buf.writeBool(fDiffuseShader); -- cgit v1.2.3