Index: src/effects/SkColorMatrixFilter.cpp |
diff --git a/src/effects/SkColorMatrixFilter.cpp b/src/effects/SkColorMatrixFilter.cpp |
index c24a2b773ad74678a8d0c7e244d9646a72ad9005..4c36c63458a1a07a8c4217be69f8022274fc966e 100644 |
--- a/src/effects/SkColorMatrixFilter.cpp |
+++ b/src/effects/SkColorMatrixFilter.cpp |
@@ -303,18 +303,26 @@ void SkColorMatrixFilter::filterSpan16(const uint16_t src[], int count, |
/////////////////////////////////////////////////////////////////////////////// |
void SkColorMatrixFilter::flatten(SkWriteBuffer& buffer) const { |
- this->INHERITED::flatten(buffer); |
SkASSERT(sizeof(fMatrix.fMat)/sizeof(SkScalar) == 20); |
buffer.writeScalarArray(fMatrix.fMat, 20); |
} |
-SkColorMatrixFilter::SkColorMatrixFilter(SkReadBuffer& buffer) |
- : INHERITED(buffer) { |
+#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
+SkColorMatrixFilter::SkColorMatrixFilter(SkReadBuffer& buffer) : INHERITED(buffer) { |
SkASSERT(buffer.getArrayCount() == 20); |
if (buffer.readScalarArray(fMatrix.fMat, 20)) { |
this->initState(fMatrix.fMat); |
} |
} |
+#endif |
+ |
+SkFlattenable* SkColorMatrixFilter::CreateProc(SkReadBuffer& buffer) { |
+ SkColorMatrix matrix; |
+ if (buffer.readScalarArray(matrix.fMat, 20)) { |
+ return Create(matrix); |
+ } |
+ return NULL; |
+} |
bool SkColorMatrixFilter::asColorMatrix(SkScalar matrix[20]) const { |
if (matrix) { |