Home | History | Annotate | Download | only in gm
      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