| Index: gm/imagefiltersgraph.cpp
|
| diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp
|
| index 14752dbab55738a21c19d828a1be02e15bd0ebfd..e7837891243cce6a89c782e699495f3f277dd7ab 100644
|
| --- a/gm/imagefiltersgraph.cpp
|
| +++ b/gm/imagefiltersgraph.cpp
|
| @@ -15,6 +15,7 @@
|
| #include "SkColorMatrixFilter.h"
|
| #include "SkImage.h"
|
| #include "SkImageSource.h"
|
| +#include "SkMatrixConvolutionImageFilter.h"
|
| #include "SkReadBuffer.h"
|
| #include "SkWriteBuffer.h"
|
| #include "SkMergeImageFilter.h"
|
| @@ -107,7 +108,7 @@ protected:
|
| return SkString("imagefiltersgraph");
|
| }
|
|
|
| - SkISize onISize() override { return SkISize::Make(500, 150); }
|
| + SkISize onISize() override { return SkISize::Make(600, 150); }
|
|
|
| void onOnceBeforeDraw() override {
|
| fImage.reset(SkImage::NewFromBitmap(
|
| @@ -182,6 +183,40 @@ protected:
|
| canvas->translate(SkIntToScalar(100), 0);
|
| }
|
| {
|
| + // Dilate -> matrix convolution.
|
| + // This tests that a filter using asFragmentProcessor (matrix
|
| + // convolution) correctly handles a non-zero source offset
|
| + // (supplied by the dilate).
|
| + SkAutoTUnref<SkImageFilter> dilate(SkDilateImageFilter::Create(5, 5));
|
| +
|
| + SkAutoTUnref<SkXfermode> mode(SkXfermode::Create(SkXfermode::kSrcIn_Mode));
|
| +
|
| + SkScalar kernel[9] = {
|
| + SkIntToScalar(-1), SkIntToScalar( -1 ), SkIntToScalar(-1),
|
| + SkIntToScalar(-1), SkIntToScalar( 7 ), SkIntToScalar(-1),
|
| + SkIntToScalar(-1), SkIntToScalar( -1 ), SkIntToScalar(-1),
|
| + };
|
| + SkISize kernelSize = SkISize::Make(3, 3);
|
| + SkScalar gain = 1.0f, bias = SkIntToScalar(0);
|
| + SkIPoint kernelOffset = SkIPoint::Make(1, 1);
|
| + auto tileMode = SkMatrixConvolutionImageFilter::kClamp_TileMode;
|
| + bool convolveAlpha = false;
|
| + SkAutoTUnref<SkImageFilter> convolve(
|
| + SkMatrixConvolutionImageFilter::Create(kernelSize,
|
| + kernel,
|
| + gain,
|
| + bias,
|
| + kernelOffset,
|
| + tileMode,
|
| + convolveAlpha,
|
| + dilate));
|
| +
|
| + SkPaint paint;
|
| + paint.setImageFilter(convolve);
|
| + DrawClippedImage(canvas, fImage, paint);
|
| + canvas->translate(SkIntToScalar(100), 0);
|
| + }
|
| + {
|
| // Test that crop offsets are absolute, not relative to the parent's crop rect.
|
| SkAutoTUnref<SkColorFilter> cf1(SkColorFilter::CreateModeFilter(SK_ColorBLUE,
|
| SkXfermode::kSrcIn_Mode));
|
|
|