| Index: src/effects/SkDisplacementMapEffect.cpp
|
| diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp
|
| index bae7ac098c7bdf376754ff508af432e3a3de45b6..27fc0d3722881ce24f652c393820c5131b2b8929 100644
|
| --- a/src/effects/SkDisplacementMapEffect.cpp
|
| +++ b/src/effects/SkDisplacementMapEffect.cpp
|
| @@ -159,6 +159,22 @@ bool channel_selector_type_is_valid(SkDisplacementMapEffect::ChannelSelectorType
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| +SkDisplacementMapEffect* SkDisplacementMapEffect::Create(ChannelSelectorType xChannelSelector,
|
| + ChannelSelectorType yChannelSelector,
|
| + SkScalar scale,
|
| + SkImageFilter* displacement,
|
| + SkImageFilter* color,
|
| + const CropRect* cropRect) {
|
| + if (!channel_selector_type_is_valid(xChannelSelector) ||
|
| + !channel_selector_type_is_valid(yChannelSelector)) {
|
| + return NULL;
|
| + }
|
| +
|
| + SkImageFilter* inputs[2] = { displacement, color };
|
| + return SkNEW_ARGS(SkDisplacementMapEffect, (xChannelSelector, yChannelSelector, scale,
|
| + inputs, cropRect));
|
| +}
|
| +
|
| SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSelector,
|
| ChannelSelectorType yChannelSelector,
|
| SkScalar scale,
|
| @@ -174,6 +190,7 @@ SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSel
|
| SkDisplacementMapEffect::~SkDisplacementMapEffect() {
|
| }
|
|
|
| +#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
|
| SkDisplacementMapEffect::SkDisplacementMapEffect(SkReadBuffer& buffer)
|
| : INHERITED(2, buffer)
|
| {
|
| @@ -184,6 +201,15 @@ SkDisplacementMapEffect::SkDisplacementMapEffect(SkReadBuffer& buffer)
|
| channel_selector_type_is_valid(fYChannelSelector) &&
|
| SkScalarIsFinite(fScale));
|
| }
|
| +#endif
|
| +
|
| +SkFlattenable* SkDisplacementMapEffect::CreateProc(SkReadBuffer& buffer) {
|
| + SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2);
|
| + ChannelSelectorType xsel = (ChannelSelectorType)buffer.readInt();
|
| + ChannelSelectorType ysel = (ChannelSelectorType)buffer.readInt();
|
| + SkScalar scale = buffer.readScalar();
|
| + return Create(xsel, ysel, scale, common.getInput(0), common.getInput(1), &common.cropRect());
|
| +}
|
|
|
| void SkDisplacementMapEffect::flatten(SkWriteBuffer& buffer) const {
|
| this->INHERITED::flatten(buffer);
|
|
|