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