2 * Copyright 2014 Google Inc.
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
9 #include "sk_tool_utils.h"
10 #include "SkBlurImageFilter.h"
18 class ImageBlurTiledGM : public GM {
20 ImageBlurTiledGM(SkScalar sigmaX, SkScalar sigmaY)
21 : fSigmaX(sigmaX), fSigmaY(sigmaY) {
25 SkString onShortName() override {
26 return SkString("imageblurtiled");
29 SkISize onISize() override {
30 return SkISize::Make(WIDTH, HEIGHT);
33 void onDraw(SkCanvas* canvas) override {
35 paint.setImageFilter(SkBlurImageFilter::Make(fSigmaX, fSigmaY, nullptr));
36 const SkScalar tileSize = SkIntToScalar(128);
37 SkRect bounds = canvas->getLocalClipBounds();
38 for (SkScalar y = bounds.top(); y < bounds.bottom(); y += tileSize) {
39 for (SkScalar x = bounds.left(); x < bounds.right(); x += tileSize) {
41 canvas->clipRect(SkRect::MakeXYWH(x, y, tileSize, tileSize));
42 canvas->saveLayer(nullptr, &paint);
50 textPaint.setAntiAlias(true);
51 sk_tool_utils::set_portable_typeface(&textPaint);
52 textPaint.setTextSize(SkIntToScalar(100));
54 for (unsigned i = 0; i < SK_ARRAY_COUNT(str); i++) {
56 canvas->drawString(str[i], SkIntToScalar(0),
57 SkIntToScalar(posY), textPaint);
72 //////////////////////////////////////////////////////////////////////////////
74 DEF_GM(return new ImageBlurTiledGM(3.0f, 3.0f);)