| Index: src/effects/SkMatrixConvolutionImageFilter.cpp
|
| diff --git a/src/effects/SkMatrixConvolutionImageFilter.cpp b/src/effects/SkMatrixConvolutionImageFilter.cpp
|
| index accebb5a4f085c5838e3f1df008a61340dd91ad9..3104336628e13d32ad27384452c0e47607bc32f9 100644
|
| --- a/src/effects/SkMatrixConvolutionImageFilter.cpp
|
| +++ b/src/effects/SkMatrixConvolutionImageFilter.cpp
|
| @@ -22,23 +22,22 @@
|
| // by the size of a scalar to know how many scalars we can read.
|
| static const int32_t gMaxKernelSize = SK_MaxS32 / sizeof(SkScalar);
|
|
|
| -SkMatrixConvolutionImageFilter::SkMatrixConvolutionImageFilter(
|
| - const SkISize& kernelSize,
|
| - const SkScalar* kernel,
|
| - SkScalar gain,
|
| - SkScalar bias,
|
| - const SkIPoint& kernelOffset,
|
| - TileMode tileMode,
|
| - bool convolveAlpha,
|
| - SkImageFilter* input,
|
| - const CropRect* cropRect)
|
| - : INHERITED(1, &input, cropRect),
|
| - fKernelSize(kernelSize),
|
| - fGain(gain),
|
| - fBias(bias),
|
| - fKernelOffset(kernelOffset),
|
| - fTileMode(tileMode),
|
| - fConvolveAlpha(convolveAlpha) {
|
| +SkMatrixConvolutionImageFilter::SkMatrixConvolutionImageFilter(const SkISize& kernelSize,
|
| + const SkScalar* kernel,
|
| + SkScalar gain,
|
| + SkScalar bias,
|
| + const SkIPoint& kernelOffset,
|
| + TileMode tileMode,
|
| + bool convolveAlpha,
|
| + sk_sp<SkImageFilter> input,
|
| + const CropRect* cropRect)
|
| + : INHERITED(&input, 1, cropRect)
|
| + , fKernelSize(kernelSize)
|
| + , fGain(gain)
|
| + , fBias(bias)
|
| + , fKernelOffset(kernelOffset)
|
| + , fTileMode(tileMode)
|
| + , fConvolveAlpha(convolveAlpha) {
|
| size_t size = (size_t) sk_64_mul(fKernelSize.width(), fKernelSize.height());
|
| fKernel = new SkScalar[size];
|
| memcpy(fKernel, kernel, size * sizeof(SkScalar));
|
| @@ -47,16 +46,15 @@ SkMatrixConvolutionImageFilter::SkMatrixConvolutionImageFilter(
|
| SkASSERT(kernelOffset.fY >= 0 && kernelOffset.fY < kernelSize.fHeight);
|
| }
|
|
|
| -SkImageFilter* SkMatrixConvolutionImageFilter::Create(
|
| - const SkISize& kernelSize,
|
| - const SkScalar* kernel,
|
| - SkScalar gain,
|
| - SkScalar bias,
|
| - const SkIPoint& kernelOffset,
|
| - TileMode tileMode,
|
| - bool convolveAlpha,
|
| - SkImageFilter* input,
|
| - const CropRect* cropRect) {
|
| +sk_sp<SkImageFilter> SkMatrixConvolutionImageFilter::Make(const SkISize& kernelSize,
|
| + const SkScalar* kernel,
|
| + SkScalar gain,
|
| + SkScalar bias,
|
| + const SkIPoint& kernelOffset,
|
| + TileMode tileMode,
|
| + bool convolveAlpha,
|
| + sk_sp<SkImageFilter> input,
|
| + const CropRect* cropRect) {
|
| if (kernelSize.width() < 1 || kernelSize.height() < 1) {
|
| return nullptr;
|
| }
|
| @@ -70,8 +68,10 @@ SkImageFilter* SkMatrixConvolutionImageFilter::Create(
|
| (kernelOffset.fY < 0) || (kernelOffset.fY >= kernelSize.fHeight)) {
|
| return nullptr;
|
| }
|
| - return new SkMatrixConvolutionImageFilter(kernelSize, kernel, gain, bias, kernelOffset,
|
| - tileMode, convolveAlpha, input, cropRect);
|
| + return sk_sp<SkImageFilter>(new SkMatrixConvolutionImageFilter(kernelSize, kernel, gain,
|
| + bias, kernelOffset,
|
| + tileMode, convolveAlpha,
|
| + std::move(input), cropRect));
|
| }
|
|
|
| sk_sp<SkFlattenable> SkMatrixConvolutionImageFilter::CreateProc(SkReadBuffer& buffer) {
|
| @@ -96,8 +96,8 @@ sk_sp<SkFlattenable> SkMatrixConvolutionImageFilter::CreateProc(SkReadBuffer& bu
|
| kernelOffset.fY = buffer.readInt();
|
| TileMode tileMode = (TileMode)buffer.readInt();
|
| bool convolveAlpha = buffer.readBool();
|
| - return sk_sp<SkFlattenable>(Create(kernelSize, kernel.get(), gain, bias, kernelOffset, tileMode,
|
| - convolveAlpha, common.getInput(0).get(), &common.cropRect()));
|
| + return Make(kernelSize, kernel.get(), gain, bias, kernelOffset, tileMode,
|
| + convolveAlpha, common.getInput(0), &common.cropRect());
|
| }
|
|
|
| void SkMatrixConvolutionImageFilter::flatten(SkWriteBuffer& buffer) const {
|
|
|