41 : fNameSuffix(nameSuffix),
42 fKernelFixture(kernelFixture) {
44 fColors[0] = colorOne;
45 fColors[1] = colorTwo;
55 paint.setColor(0xFFFFFFFF);
62 surf->getCanvas()->drawString(
"e", -10.0f, 80.0f, font,
paint);
63 fImage = surf->makeImageSnapshot();
73 switch (fKernelFixture) {
80 kernelOffset, tileMode, convolveAlpha,
nullptr, tileBoundary);
90 kernelOffset, tileMode, convolveAlpha,
nullptr, tileBoundary);
99 const SkIRect* cropRect =
nullptr) {
101 auto filter = this->
makeFilter(kernelOffset, tileMode, convolveAlpha);
105 paint.setImageFilter(std::move(filter));
119 for (
int x = 10;
x < 310;
x += 100) {
139 const char* fNameSuffix;
142 using INHERITED =
GM;
constexpr SkColor SK_ColorBLACK
SK_API SkString static SkString SkStringPrintf()
void translate(SkScalar dx, SkScalar dy)
void clear(SkColor color)
void drawImage(const SkImage *image, SkScalar left, SkScalar top)
static sk_sp< SkShader > MakeLinear(const SkPoint pts[2], const SkColor colors[], const SkScalar pos[], int count, SkTileMode mode, uint32_t flags=0, const SkMatrix *localMatrix=nullptr)
static sk_sp< SkImageFilter > MatrixConvolution(const SkISize &kernelSize, const SkScalar kernel[], SkScalar gain, SkScalar bias, const SkIPoint &kernelOffset, SkTileMode tileMode, bool convolveAlpha, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Crop(const SkRect &rect, SkTileMode tileMode, sk_sp< SkImageFilter > input)
void onOnceBeforeDraw() override
void draw(SkCanvas *canvas, int x, int y, const SkIPoint &kernelOffset, SkTileMode tileMode, bool convolveAlpha, const SkIRect *cropRect=nullptr)
void onDraw(SkCanvas *canvas) override
SkString getName() const override
MatrixConvolutionGM(SkColor colorOne, SkColor colorTwo, KernelFixture kernelFixture, const char *nameSuffix)
SkISize getISize() override
sk_sp< SkImageFilter > makeFilter(const SkIPoint &kernelOffset, SkTileMode tileMode, bool convolveAlpha)
SK_API sk_sp< SkSurface > Raster(const SkImageInfo &imageInfo, size_t rowBytes, const SkSurfaceProps *surfaceProps)
static constexpr int kMaxBlurSamples
static constexpr SkIPoint Make(int32_t x, int32_t y)
static constexpr SkIRect MakeXYWH(int32_t x, int32_t y, int32_t w, int32_t h)
static constexpr SkISize Make(int32_t w, int32_t h)
static SkImageInfo MakeN32Premul(int width, int height)
static SkRect Make(const SkISize &size)