| Index: src/core/SkPictureShader.cpp
|
| diff --git a/src/core/SkPictureShader.cpp b/src/core/SkPictureShader.cpp
|
| index 6ea67f8035692f75edc2f27763130bcf84a73ad9..1eaa6affb2858461fe4c9952466de5322efe79f2 100644
|
| --- a/src/core/SkPictureShader.cpp
|
| +++ b/src/core/SkPictureShader.cpp
|
| @@ -25,12 +25,13 @@ SkPictureShader::SkPictureShader(const SkPicture* picture, TileMode tmx, TileMod
|
| , fTmx(tmx)
|
| , fTmy(tmy) { }
|
|
|
| -SkPictureShader::SkPictureShader(SkReadBuffer& buffer)
|
| - : INHERITED(buffer) {
|
| +#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
|
| +SkPictureShader::SkPictureShader(SkReadBuffer& buffer) : INHERITED(buffer) {
|
| fTmx = static_cast<SkShader::TileMode>(buffer.read32());
|
| fTmy = static_cast<SkShader::TileMode>(buffer.read32());
|
| fPicture = SkPicture::CreateFromBuffer(buffer);
|
| }
|
| +#endif
|
|
|
| SkPictureShader::~SkPictureShader() {
|
| fPicture->unref();
|
| @@ -44,9 +45,17 @@ SkPictureShader* SkPictureShader::Create(const SkPicture* picture, TileMode tmx,
|
| return SkNEW_ARGS(SkPictureShader, (picture, tmx, tmy, localMatrix));
|
| }
|
|
|
| -void SkPictureShader::flatten(SkWriteBuffer& buffer) const {
|
| - this->INHERITED::flatten(buffer);
|
| +SkFlattenable* SkPictureShader::CreateProc(SkReadBuffer& buffer) {
|
| + SkMatrix lm;
|
| + buffer.readMatrix(&lm);
|
| + TileMode mx = (TileMode)buffer.read32();
|
| + TileMode my = (TileMode)buffer.read32();
|
| + SkAutoTUnref<SkPicture> picture(SkPicture::CreateFromBuffer(buffer));
|
| + return SkPictureShader::Create(picture, mx, my, &lm);
|
| +}
|
|
|
| +void SkPictureShader::flatten(SkWriteBuffer& buffer) const {
|
| + buffer.writeMatrix(this->getLocalMatrix());
|
| buffer.write32(fTmx);
|
| buffer.write32(fTmy);
|
| fPicture->flatten(buffer);
|
|
|