diff options
author | vjiaoblack <vjiaoblack@google.com> | 2016-08-29 10:22:09 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-29 10:22:09 -0700 |
commit | a8eabc4a2a5559a1410fdbb348f967cd1554b325 (patch) | |
tree | 03d8a80ef4b2e62eaacbfee605b3ffc3162fa5c7 /include/core/SkLights.h | |
parent | 84839f6fb3d0de9088be3d53e81df195331ed1c9 (diff) |
Moved ambient lights out of SkLight's light array
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2287553002
Committed: https://skia.googlesource.com/skia/+/8f98f0aa2d3f7571a890b916c7c4b5ee831e9686
Review-Url: https://codereview.chromium.org/2287553002
Diffstat (limited to 'include/core/SkLights.h')
-rw-r--r-- | include/core/SkLights.h | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/include/core/SkLights.h b/include/core/SkLights.h index d8ec87d532..1371e441d4 100644 --- a/include/core/SkLights.h +++ b/include/core/SkLights.h @@ -22,7 +22,6 @@ public: class Light { public: enum LightType { - kAmbient_LightType, // only 'fColor' is used kDirectional_LightType, kPoint_LightType }; @@ -43,10 +42,6 @@ public: , fShadowMap(std::move(other.fShadowMap)) { } - static Light MakeAmbient(const SkColor3f& color) { - return Light(kAmbient_LightType, color, SkVector3::Make(0.0f, 0.0f, 1.0f)); - } - static Light MakeDirectional(const SkColor3f& color, const SkVector3& dir) { Light light(kDirectional_LightType, color, dir); if (!light.fDirOrPos.normalize()) { @@ -123,17 +118,17 @@ public: sk_sp<SkImage> fShadowMap; Light(LightType type, const SkColor3f& color, - const SkVector3& dir, SkScalar intensity = 0.0f) { + const SkVector3& dirOrPos, SkScalar intensity = 0.0f) { fType = type; fColor = color; - fDirOrPos = dir; + fDirOrPos = dirOrPos; fIntensity = intensity; } }; class Builder { public: - Builder() : fLights(new SkLights) { } + Builder() : fLights(new SkLights) {} void add(const Light& light) { if (fLights) { @@ -147,6 +142,12 @@ public: } } + void setAmbientLightColor(const SkColor3f& color) { + if (fLights) { + fLights->fAmbientLightColor = color; + } + } + sk_sp<SkLights> finish() { return std::move(fLights); } @@ -167,13 +168,20 @@ public: return fLights[index]; } + const SkColor3f& ambientLightColor() const { + return fAmbientLightColor; + } + static sk_sp<SkLights> MakeFromBuffer(SkReadBuffer& buf); void flatten(SkWriteBuffer& buf) const; private: - SkLights() {} + SkLights() { + fAmbientLightColor.set(0.0f, 0.0f, 0.0f); + } SkTArray<Light> fLights; + SkColor3f fAmbientLightColor; typedef SkRefCnt INHERITED; }; |