1/*
2 * Copyright 2014 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "gm.h"
9#include "sk_tool_utils.h"
10#include "SkImageFilter.h"
11#include "SkRandom.h"
12
13#define WIDTH 640
14#define HEIGHT 480
15
16#define RESIZE_FACTOR SkIntToScalar(2)
17
18DEF_SIMPLE_GM(imageresizetiled, canvas, WIDTH, HEIGHT) {
19        SkPaint paint;
20        SkMatrix matrix;
21        matrix.setScale(RESIZE_FACTOR, RESIZE_FACTOR);
22        paint.setImageFilter(SkImageFilter::MakeMatrixFilter(matrix,
23                                                             kNone_SkFilterQuality,
24                                                             nullptr));
25        const SkScalar tile_size = SkIntToScalar(100);
26        for (SkScalar y = 0; y < HEIGHT; y += tile_size) {
27            for (SkScalar x = 0; x < WIDTH; x += tile_size) {
28                canvas->save();
29                canvas->clipRect(SkRect::MakeXYWH(x, y, tile_size, tile_size));
30                canvas->scale(SkScalarInvert(RESIZE_FACTOR),
31                              SkScalarInvert(RESIZE_FACTOR));
32                canvas->saveLayer(nullptr, &paint);
33                const char* str[] = {
34                    "The quick",
35                    "brown fox",
36                    "jumped over",
37                    "the lazy dog.",
38                };
39                SkPaint textPaint;
40                textPaint.setAntiAlias(true);
41                sk_tool_utils::set_portable_typeface(&textPaint);
42                textPaint.setTextSize(SkIntToScalar(100));
43                int posY = 0;
44                for (unsigned i = 0; i < SK_ARRAY_COUNT(str); i++) {
45                    posY += 100;
46                    canvas->drawText(str[i], strlen(str[i]), SkIntToScalar(0),
47                                     SkIntToScalar(posY), textPaint);
48                }
49                canvas->restore();
50                canvas->restore();
51            }
52        }
53}
54