1/* 2 * Copyright 2011 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 "SkBlurImageFilter.h" 10 11#define WIDTH 500 12#define HEIGHT 500 13 14namespace skiagm { 15 16class ImageBlurGM : public GM { 17public: 18 ImageBlurGM() { 19 this->setBGColor(0xFF000000); 20 } 21 22protected: 23 virtual SkString onShortName() { 24 return SkString("imageblur"); 25 } 26 27 virtual SkISize onISize() { 28 return make_isize(WIDTH, HEIGHT); 29 } 30 31 virtual void onDraw(SkCanvas* canvas) { 32 SkPaint paint; 33 paint.setImageFilter(new SkBlurImageFilter(24.0f, 0.0f))->unref(); 34 canvas->saveLayer(NULL, &paint); 35 paint.setAntiAlias(true); 36 const char* str = "The quick brown fox jumped over the lazy dog."; 37 srand(1234); 38 for (int i = 0; i < 25; ++i) { 39 int x = rand() % WIDTH; 40 int y = rand() % HEIGHT; 41 paint.setColor(rand() % 0x1000000 | 0xFF000000); 42 paint.setTextSize(rand() % 300); 43 canvas->drawText(str, strlen(str), x, y, paint); 44 } 45 canvas->restore(); 46 } 47 48private: 49 typedef GM INHERITED; 50}; 51 52////////////////////////////////////////////////////////////////////////////// 53 54static GM* MyFactory(void*) { return new ImageBlurGM; } 55static GMRegistry reg(MyFactory); 56 57} 58