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 14 namespace skiagm { 15 16 class ImageBlurGM : public GM { 17 public: 18 ImageBlurGM() { 19 this->setBGColor(0xFF000000); 20 } 21 22 protected: 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 const char* str = "The quick brown fox jumped over the lazy dog."; 36 srand(1234); 37 SkPaint textPaint; 38 textPaint.setAntiAlias(true); 39 for (int i = 0; i < 25; ++i) { 40 int x = rand() % WIDTH; 41 int y = rand() % HEIGHT; 42 textPaint.setColor(rand() % 0x1000000 | 0xFF000000); 43 textPaint.setTextSize(SkIntToScalar(rand() % 300)); 44 canvas->drawText(str, strlen(str), SkIntToScalar(x), 45 SkIntToScalar(y), textPaint); 46 } 47 canvas->restore(); 48 } 49 50 private: 51 typedef GM INHERITED; 52 }; 53 54 ////////////////////////////////////////////////////////////////////////////// 55 56 static GM* MyFactory(void*) { return new ImageBlurGM; } 57 static GMRegistry reg(MyFactory); 58 59 } 60