| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright 2015 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 "SkBitmapSource.h" | |
| 9 #include "SkTileImageFilter.h" | |
| 10 #include "gm.h" | |
| 11 | |
| 12 namespace skiagm { | |
| 13 | |
| 14 class BigTileImageFilterGM : public GM { | |
| 15 public: | |
| 16 BigTileImageFilterGM() { | |
| 17 this->setBGColor(0xFF000000); | |
| 18 } | |
| 19 | |
| 20 protected: | |
| 21 | |
| 22 SkString onShortName() override { | |
| 23 return SkString("bigtileimagefilter"); | |
| 24 } | |
| 25 | |
| 26 SkISize onISize() override{ | |
| 27 return SkISize::Make(kWidth, kHeight); | |
| 28 } | |
| 29 | |
| 30 void onOnceBeforeDraw() override { | |
| 31 fBitmap.allocN32Pixels(kBitmapSize, kBitmapSize); | |
| 32 | |
| 33 SkCanvas canvas(fBitmap); | |
| 34 canvas.clear(0xFF000000); | |
| 35 | |
| 36 SkPaint paint; | |
| 37 paint.setColor(SK_ColorRED); | |
| 38 paint.setStrokeWidth(3); | |
| 39 paint.setStyle(SkPaint::kStroke_Style); | |
| 40 | |
| 41 canvas.drawCircle(SkScalarHalf(kBitmapSize), SkScalarHalf(kBitmapSize), | |
| 42 SkScalarHalf(kBitmapSize), paint); | |
| 43 } | |
| 44 | |
| 45 void onDraw(SkCanvas* canvas) override { | |
| 46 canvas->clear(SK_ColorBLACK); | |
| 47 | |
| 48 SkPaint p; | |
| 49 | |
| 50 SkAutoTUnref<SkBitmapSource> bms(SkBitmapSource::Create(fBitmap)); | |
| 51 SkAutoTUnref<SkTileImageFilter> tif(SkTileImageFilter::Create( | |
| 52 SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToSc
alar(kBitmapSize)), | |
| 53 SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(
kHeight)), | |
| 54 bms)); | |
| 55 p.setImageFilter(tif); | |
| 56 | |
| 57 SkRect bound = SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(kHeig
ht)); | |
| 58 canvas->saveLayer(&bound, &p); | |
| 59 canvas->restore(); | |
| 60 } | |
| 61 | |
| 62 private: | |
| 63 static const int kWidth = 512; | |
| 64 static const int kHeight = 512; | |
| 65 static const int kBitmapSize = 64; | |
| 66 | |
| 67 SkBitmap fBitmap; | |
| 68 | |
| 69 typedef GM INHERITED; | |
| 70 }; | |
| 71 | |
| 72 ////////////////////////////////////////////////////////////////////////////// | |
| 73 | |
| 74 DEF_GM( return SkNEW(BigTileImageFilterGM); ) | |
| 75 | |
| 76 } | |
| OLD | NEW |