• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
ImageBlurGM()18     ImageBlurGM() {
19         this->setBGColor(0xFF000000);
20     }
21 
22 protected:
onShortName()23     virtual SkString onShortName() {
24         return SkString("imageblur");
25     }
26 
onISize()27     virtual SkISize onISize() {
28         return make_isize(WIDTH, HEIGHT);
29     }
30 
onDraw(SkCanvas * canvas)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 
MyFactory(void *)56 static GM* MyFactory(void*) { return new ImageBlurGM; }
57 static GMRegistry reg(MyFactory);
58 
59 }
60