Index: src/effects/SkDisplacementMapEffect.cpp |
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp |
index a6897ea89157e51ff2ec6a72f325e08dd7b6a938..8d106e4bdc06532575bad10e4947b8585a7bf4be 100644 |
--- a/src/effects/SkDisplacementMapEffect.cpp |
+++ b/src/effects/SkDisplacementMapEffect.cpp |
@@ -174,6 +174,7 @@ SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSel |
SkDisplacementMapEffect::~SkDisplacementMapEffect() { |
} |
+#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
SkDisplacementMapEffect::SkDisplacementMapEffect(SkReadBuffer& buffer) |
: INHERITED(2, buffer) |
{ |
@@ -184,9 +185,21 @@ SkDisplacementMapEffect::SkDisplacementMapEffect(SkReadBuffer& buffer) |
channel_selector_type_is_valid(fYChannelSelector) && |
SkScalarIsFinite(fScale)); |
} |
+#endif |
+ |
+SkFlattenable* SkDisplacementMapEffect::CreateProc(SkReadBuffer& buffer) { |
+ Common common; |
+ if (!common.unflatten(buffer, 2)) { |
+ return NULL; |
+ } |
+ ChannelSelectorType xsel = (ChannelSelectorType)buffer.readInt(); |
+ ChannelSelectorType ysel = (ChannelSelectorType)buffer.readInt(); |
+ SkScalar scale = buffer.readScalar(); |
+ return Create(xsel, ysel, scale, common.inputAt(0), common.inputAt(1), &common.cropRect()); |
+} |
void SkDisplacementMapEffect::flatten(SkWriteBuffer& buffer) const { |
- this->INHERITED::flatten(buffer); |
+ this->flattenCommon(buffer); |
buffer.writeInt((int) fXChannelSelector); |
buffer.writeInt((int) fYChannelSelector); |
buffer.writeScalar(fScale); |