| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "gm.h" | 8 #include "gm.h" |
| 9 #include "SkGradientShader.h" | 9 #include "SkGradientShader.h" |
| 10 #include "SkImage.h" | 10 #include "SkImage.h" |
| 11 #include "SkPath.h" | 11 #include "SkPath.h" |
| 12 #include "SkSurface.h" | 12 #include "SkSurface.h" |
| 13 | 13 |
| 14 static SkImage* make_image(SkCanvas* origCanvas, int w, int h) { | 14 static SkImage* make_image(SkCanvas* origCanvas, int w, int h) { |
| 15 SkImageInfo info = SkImageInfo::MakeN32Premul(w, h); | 15 SkImageInfo info = SkImageInfo::MakeN32Premul(w, h); |
| 16 SkAutoTUnref<SkSurface> surface(origCanvas->newSurface(info)); | 16 SkAutoTUnref<SkSurface> surface(origCanvas->newSurface(info)); |
| 17 if (nullptr == surface) { | 17 if (nullptr == surface) { |
| 18 surface.reset(SkSurface::NewRaster(info)); | 18 surface.reset(SkSurface::NewRaster(info)); |
| 19 } | 19 } |
| 20 SkCanvas* canvas = surface->getCanvas(); | 20 SkCanvas* canvas = surface->getCanvas(); |
| 21 | 21 |
| 22 sk_tool_utils::draw_checkerboard(canvas, SK_ColorRED, SK_ColorGREEN, w/10); | 22 sk_tool_utils::draw_checkerboard(canvas, SK_ColorRED, SK_ColorGREEN, w/10); |
| 23 return surface->newImageSnapshot(); | 23 return surface->newImageSnapshot(); |
| 24 } | 24 } |
| 25 | 25 |
| 26 static SkBitmap make_bitmap(int w, int h) { | |
| 27 SkBitmap bitmap; | |
| 28 bitmap.allocN32Pixels(w, h); | |
| 29 SkCanvas canvas(bitmap); | |
| 30 | |
| 31 sk_tool_utils::draw_checkerboard(&canvas, SK_ColorBLUE, SK_ColorYELLOW, w/10
); | |
| 32 return bitmap; | |
| 33 } | |
| 34 | |
| 35 namespace skiagm { | 26 namespace skiagm { |
| 36 | 27 |
| 37 class PerspShadersGM : public GM { | 28 class PerspShadersGM : public GM { |
| 38 public: | 29 public: |
| 39 PerspShadersGM(bool doAA) : fDoAA(doAA) { } | 30 PerspShadersGM(bool doAA) : fDoAA(doAA) { } |
| 40 | 31 |
| 41 protected: | 32 protected: |
| 42 SkString onShortName() override { | 33 SkString onShortName() override { |
| 43 SkString name; | 34 SkString name; |
| 44 name.printf("persp_shaders_%s", | 35 name.printf("persp_shaders_%s", |
| 45 fDoAA ? "aa" : "bw"); | 36 fDoAA ? "aa" : "bw"); |
| 46 return name; | 37 return name; |
| 47 } | 38 } |
| 48 | 39 |
| 49 SkISize onISize() override { | 40 SkISize onISize() override { |
| 50 return SkISize::Make(kCellSize*kNumCols, kCellSize*kNumRows); | 41 return SkISize::Make(kCellSize*kNumCols, kCellSize*kNumRows); |
| 51 } | 42 } |
| 52 | 43 |
| 53 void onOnceBeforeDraw() override { | 44 void onOnceBeforeDraw() override { |
| 54 fBitmap = make_bitmap(kCellSize, kCellSize); | 45 fBitmap = sk_tool_utils::create_checkerboard_bitmap(kCellSize, kCellSize
, |
| 46 SK_ColorBLUE, SK_Col
orYELLOW, |
| 47 kCellSize/10); |
| 55 | 48 |
| 56 fBitmapShader.reset(SkShader::CreateBitmapShader(fBitmap, | 49 fBitmapShader.reset(SkShader::CreateBitmapShader(fBitmap, |
| 57 SkShader::kClamp_TileMo
de, | 50 SkShader::kClamp_TileMo
de, |
| 58 SkShader::kClamp_TileMo
de)); | 51 SkShader::kClamp_TileMo
de)); |
| 59 SkPoint pts1[] = { | 52 SkPoint pts1[] = { |
| 60 { 0, 0 }, | 53 { 0, 0 }, |
| 61 { SkIntToScalar(kCellSize), SkIntToScalar(kCellSize) } | 54 { SkIntToScalar(kCellSize), SkIntToScalar(kCellSize) } |
| 62 }; | 55 }; |
| 63 SkPoint pts2[] = { | 56 SkPoint pts2[] = { |
| 64 { 0, 0 }, | 57 { 0, 0 }, |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 SkBitmap fBitmap; | 168 SkBitmap fBitmap; |
| 176 | 169 |
| 177 typedef GM INHERITED; | 170 typedef GM INHERITED; |
| 178 }; | 171 }; |
| 179 | 172 |
| 180 ////////////////////////////////////////////////////////////////////////////// | 173 ////////////////////////////////////////////////////////////////////////////// |
| 181 | 174 |
| 182 DEF_GM(return new PerspShadersGM(true);) | 175 DEF_GM(return new PerspShadersGM(true);) |
| 183 DEF_GM(return new PerspShadersGM(false);) | 176 DEF_GM(return new PerspShadersGM(false);) |
| 184 } | 177 } |
| OLD | NEW |