Index: src/effects/SkXfermodeImageFilter.cpp |
diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp |
index 09651b632c56df68cff2794b927a945665f2346f..a1a6fac243210494e4bd8450bd6b5b357e0c2149 100644 |
--- a/src/effects/SkXfermodeImageFilter.cpp |
+++ b/src/effects/SkXfermodeImageFilter.cpp |
@@ -23,22 +23,29 @@ |
/////////////////////////////////////////////////////////////////////////////// |
-SkXfermodeImageFilter::SkXfermodeImageFilter(SkXfermode* mode, |
+sk_sp<SkImageFilter> SkXfermodeImageFilter::Make(sk_sp<SkXfermode> mode, SkImageFilter* background, |
+ SkImageFilter* foreground, |
+ const CropRect* cropRect) { |
+ SkImageFilter* inputs[2] = { background, foreground }; |
+ return sk_sp<SkImageFilter>(new SkXfermodeImageFilter(mode, inputs, cropRect)); |
+} |
+ |
+SkXfermodeImageFilter::SkXfermodeImageFilter(sk_sp<SkXfermode> mode, |
SkImageFilter* inputs[2], |
const CropRect* cropRect) |
: INHERITED(2, inputs, cropRect) |
- , fMode(SkSafeRef(mode)) { |
-} |
+ , fMode(std::move(mode)) |
+{} |
SkFlattenable* SkXfermodeImageFilter::CreateProc(SkReadBuffer& buffer) { |
SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2); |
- SkAutoTUnref<SkXfermode> mode(buffer.readXfermode()); |
- return Create(mode, common.getInput(0), common.getInput(1), &common.cropRect()); |
+ sk_sp<SkXfermode> mode(buffer.readXfermode()); |
+ return Make(mode, common.getInput(0), common.getInput(1), &common.cropRect()).release(); |
f(malita)
2016/03/28 18:44:59
nit: std::move(mode), or inline?
reed1
2016/03/29 16:13:52
Done.
|
} |
void SkXfermodeImageFilter::flatten(SkWriteBuffer& buffer) const { |
this->INHERITED::flatten(buffer); |
- buffer.writeFlattenable(fMode); |
+ buffer.writeFlattenable(fMode.get()); |
} |
bool SkXfermodeImageFilter::onFilterImageDeprecated(Proxy* proxy, |