Index: src/effects/SkMatrixImageFilter.cpp |
diff --git a/src/effects/SkMatrixImageFilter.cpp b/src/effects/SkMatrixImageFilter.cpp |
index c7c815a761dec37b3acb782bba71220ee4a69352..5b234a686e584764ee36e4e8ca636b30e78cc99d 100644 |
--- a/src/effects/SkMatrixImageFilter.cpp |
+++ b/src/effects/SkMatrixImageFilter.cpp |
@@ -29,14 +29,27 @@ SkMatrixImageFilter* SkMatrixImageFilter::Create(const SkMatrix& transform, |
return SkNEW_ARGS(SkMatrixImageFilter, (transform, filterLevel, input)); |
} |
+#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
SkMatrixImageFilter::SkMatrixImageFilter(SkReadBuffer& buffer) |
: INHERITED(1, buffer) { |
buffer.readMatrix(&fTransform); |
fFilterLevel = static_cast<SkPaint::FilterLevel>(buffer.readInt()); |
} |
+#endif |
+ |
+SkFlattenable* SkMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { |
+ Common common; |
+ if (!common.unflatten(buffer, 1)) { |
+ return NULL; |
+ } |
+ SkMatrix matrix; |
+ buffer.readMatrix(&matrix); |
+ SkPaint::FilterLevel level = static_cast<SkPaint::FilterLevel>(buffer.readInt()); |
+ return Create(matrix, level, common.inputAt(0)); |
+} |
void SkMatrixImageFilter::flatten(SkWriteBuffer& buffer) const { |
- this->INHERITED::flatten(buffer); |
+ this->flattenCommon(buffer); |
buffer.writeMatrix(fTransform); |
buffer.writeInt(fFilterLevel); |
} |