| Index: gm/imageblurtiled.cpp
|
| diff --git a/gm/imageblurtiled.cpp b/gm/imageblurtiled.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..96df4367b43d0667b1af7de143b9cef078ff2c6c
|
| --- /dev/null
|
| +++ b/gm/imageblurtiled.cpp
|
| @@ -0,0 +1,76 @@
|
| +/*
|
| + * Copyright 2014 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#include "gm.h"
|
| +#include "SkBlurImageFilter.h"
|
| +#include "SkRandom.h"
|
| +
|
| +#define WIDTH 640
|
| +#define HEIGHT 480
|
| +
|
| +namespace skiagm {
|
| +
|
| +class ImageBlurTiledGM : public GM {
|
| +public:
|
| + ImageBlurTiledGM(SkScalar sigmaX, SkScalar sigmaY)
|
| + : fSigmaX(sigmaX), fSigmaY(sigmaY) {
|
| + }
|
| +
|
| +protected:
|
| + virtual SkString onShortName() {
|
| + return SkString("imageblurtiled");
|
| + }
|
| +
|
| + virtual SkISize onISize() {
|
| + return make_isize(WIDTH, HEIGHT);
|
| + }
|
| +
|
| + virtual void onDraw(SkCanvas* canvas) {
|
| + SkPaint paint;
|
| + paint.setImageFilter(new SkBlurImageFilter(fSigmaX, fSigmaY))->unref();
|
| + const SkScalar tile_size = SkIntToScalar(128);
|
| + SkRect bounds;
|
| + canvas->getClipBounds(&bounds);
|
| + for (SkScalar y = bounds.top(); y < bounds.bottom(); y += tile_size) {
|
| + for (SkScalar x = bounds.left(); x < bounds.right(); x += tile_size) {
|
| + canvas->save();
|
| + canvas->clipRect(SkRect::MakeXYWH(x, y, tile_size, tile_size));
|
| + canvas->saveLayer(NULL, &paint);
|
| + const char* str[] = {
|
| + "The quick",
|
| + "brown fox",
|
| + "jumped over",
|
| + "the lazy dog.",
|
| + };
|
| + SkPaint textPaint;
|
| + textPaint.setAntiAlias(true);
|
| + textPaint.setTextSize(SkIntToScalar(100));
|
| + int posY = 0;
|
| + for (unsigned i = 0; i < SK_ARRAY_COUNT(str); i++) {
|
| + posY += 100;
|
| + canvas->drawText(str[i], strlen(str[i]), SkIntToScalar(0),
|
| + SkIntToScalar(posY), textPaint);
|
| + }
|
| + canvas->restore();
|
| + canvas->restore();
|
| + }
|
| + }
|
| + }
|
| +
|
| +private:
|
| + SkScalar fSigmaX;
|
| + SkScalar fSigmaY;
|
| +
|
| + typedef GM INHERITED;
|
| +};
|
| +
|
| +//////////////////////////////////////////////////////////////////////////////
|
| +
|
| +static GM* MyFactory1(void*) { return new ImageBlurTiledGM(3.0f, 3.0f); }
|
| +static GMRegistry reg1(MyFactory1);
|
| +
|
| +}
|
|
|