diff options
author | Jim Van Verth <jvanverth@google.com> | 2017-05-22 12:02:21 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-22 18:02:53 +0000 |
commit | 4123d0ff867f41c40fd288b31f4c976069753ccc (patch) | |
tree | 4de7858f3c2d3bb53fec1c2bc4720b5b514a599b /src/core/SkPictureRecord.cpp | |
parent | ee26363aaae62db2a851f2873e2405a9cf7f995a (diff) |
Add serialization support for drawShadowRec
Change-Id: Ic7f76681a037d8f53a6fdc25061c39559f5c3e30
Reviewed-on: https://skia-review.googlesource.com/17457
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Diffstat (limited to 'src/core/SkPictureRecord.cpp')
-rw-r--r-- | src/core/SkPictureRecord.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/SkPictureRecord.cpp b/src/core/SkPictureRecord.cpp index 69a35f59ad..0e1facaa5f 100644 --- a/src/core/SkPictureRecord.cpp +++ b/src/core/SkPictureRecord.cpp @@ -6,6 +6,7 @@ */ #include "SkPictureRecord.h" +#include "SkDrawShadowRec.h" #include "SkImage_Base.h" #include "SkPatchUtils.h" #include "SkPixelRef.h" @@ -786,6 +787,24 @@ void SkPictureRecord::onDrawAtlas(const SkImage* atlas, const SkRSXform xform[], this->validate(initialOffset, size); } +void SkPictureRecord::onDrawShadowRec(const SkPath& path, const SkDrawShadowRec& rec) { + // op + path index + zParams + lightPos + lightRadius + spot/ambient alphas + color + flags + size_t size = 2 * kUInt32Size + 2 * sizeof(SkPoint3) + 3 * sizeof(SkScalar) + 2 * kUInt32Size; + size_t initialOffset = this->addDraw(DRAW_SHADOW_REC, &size); + + this->addPath(path); + + fWriter.writePoint3(rec.fZPlaneParams); + fWriter.writePoint3(rec.fLightPos); + fWriter.writeScalar(rec.fLightRadius); + fWriter.writeScalar(rec.fAmbientAlpha); + fWriter.writeScalar(rec.fSpotAlpha); + fWriter.write32(rec.fColor); + fWriter.write32(rec.fFlags); + + this->validate(initialOffset, size); +} + void SkPictureRecord::onDrawAnnotation(const SkRect& rect, const char key[], SkData* value) { size_t keyLen = fWriter.WriteStringSize(key); size_t valueLen = fWriter.WriteDataSize(value); |