OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "SkBenchmark.h" | 9 #include "Benchmark.h" |
10 #include "SkBitmap.h" | 10 #include "SkBitmap.h" |
11 #include "SkCanvas.h" | 11 #include "SkCanvas.h" |
12 #include "SkShader.h" | 12 #include "SkShader.h" |
13 #include "SkString.h" | 13 #include "SkString.h" |
14 | 14 |
15 static void create_gradient(SkBitmap* bm) { | 15 static void create_gradient(SkBitmap* bm) { |
16 SkASSERT(1 == bm->width()); | 16 SkASSERT(1 == bm->width()); |
17 const int height = bm->height(); | 17 const int height = bm->height(); |
18 | 18 |
19 float deltaB = 255.0f / height; | 19 float deltaB = 255.0f / height; |
20 float blue = 255.0f; | 20 float blue = 255.0f; |
21 | 21 |
22 SkAutoLockPixels lock(*bm); | 22 SkAutoLockPixels lock(*bm); |
23 for (int y = 0; y < height; y++) { | 23 for (int y = 0; y < height; y++) { |
24 *bm->getAddr32(0, y) = SkColorSetRGB(0, 0, (U8CPU) blue); | 24 *bm->getAddr32(0, y) = SkColorSetRGB(0, 0, (U8CPU) blue); |
25 blue -= deltaB; | 25 blue -= deltaB; |
26 } | 26 } |
27 } | 27 } |
28 | 28 |
29 // Test out the special case of a tiled 1xN texture. Test out opacity, | 29 // Test out the special case of a tiled 1xN texture. Test out opacity, |
30 // filtering and the different tiling modes | 30 // filtering and the different tiling modes |
31 class ConstXTileBench : public SkBenchmark { | 31 class ConstXTileBench : public Benchmark { |
32 SkPaint fPaint; | 32 SkPaint fPaint; |
33 SkString fName; | 33 SkString fName; |
34 bool fDoFilter; | 34 bool fDoFilter; |
35 bool fDoTrans; | 35 bool fDoTrans; |
36 bool fDoScale; | 36 bool fDoScale; |
37 static const int kWidth = 1; | 37 static const int kWidth = 1; |
38 static const int kHeight = 300; | 38 static const int kHeight = 300; |
39 | 39 |
40 public: | 40 public: |
41 ConstXTileBench(SkShader::TileMode xTile, | 41 ConstXTileBench(SkShader::TileMode xTile, |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 for (int i = 0; i < loops; i++) { | 104 for (int i = 0; i < loops; i++) { |
105 if (fDoTrans) { | 105 if (fDoTrans) { |
106 canvas->drawRect(r, bgPaint); | 106 canvas->drawRect(r, bgPaint); |
107 } | 107 } |
108 | 108 |
109 canvas->drawRect(r, paint); | 109 canvas->drawRect(r, paint); |
110 } | 110 } |
111 } | 111 } |
112 | 112 |
113 private: | 113 private: |
114 typedef SkBenchmark INHERITED; | 114 typedef Benchmark INHERITED; |
115 }; | 115 }; |
116 | 116 |
117 DEF_BENCH(return new ConstXTileBench(SkShader::kRepeat_TileMode, SkShader::kRepe
at_TileMode, false, false, true)) | 117 DEF_BENCH(return new ConstXTileBench(SkShader::kRepeat_TileMode, SkShader::kRepe
at_TileMode, false, false, true)) |
118 DEF_BENCH(return new ConstXTileBench(SkShader::kClamp_TileMode, SkShader::kClamp
_TileMode, false, false, false)) | 118 DEF_BENCH(return new ConstXTileBench(SkShader::kClamp_TileMode, SkShader::kClamp
_TileMode, false, false, false)) |
119 DEF_BENCH(return new ConstXTileBench(SkShader::kMirror_TileMode, SkShader::kMirr
or_TileMode, false, false, true)) | 119 DEF_BENCH(return new ConstXTileBench(SkShader::kMirror_TileMode, SkShader::kMirr
or_TileMode, false, false, true)) |
120 | 120 |
121 DEF_BENCH(return new ConstXTileBench(SkShader::kRepeat_TileMode, SkShader::kRepe
at_TileMode, true, false, false)) | 121 DEF_BENCH(return new ConstXTileBench(SkShader::kRepeat_TileMode, SkShader::kRepe
at_TileMode, true, false, false)) |
122 DEF_BENCH(return new ConstXTileBench(SkShader::kClamp_TileMode, SkShader::kClamp
_TileMode, true, false, true)) | 122 DEF_BENCH(return new ConstXTileBench(SkShader::kClamp_TileMode, SkShader::kClamp
_TileMode, true, false, true)) |
123 DEF_BENCH(return new ConstXTileBench(SkShader::kMirror_TileMode, SkShader::kMirr
or_TileMode, true, false, false)) | 123 DEF_BENCH(return new ConstXTileBench(SkShader::kMirror_TileMode, SkShader::kMirr
or_TileMode, true, false, false)) |
124 | 124 |
125 DEF_BENCH(return new ConstXTileBench(SkShader::kRepeat_TileMode, SkShader::kRepe
at_TileMode, false, true, true)) | 125 DEF_BENCH(return new ConstXTileBench(SkShader::kRepeat_TileMode, SkShader::kRepe
at_TileMode, false, true, true)) |
126 DEF_BENCH(return new ConstXTileBench(SkShader::kClamp_TileMode, SkShader::kClamp
_TileMode, false, true, false)) | 126 DEF_BENCH(return new ConstXTileBench(SkShader::kClamp_TileMode, SkShader::kClamp
_TileMode, false, true, false)) |
127 DEF_BENCH(return new ConstXTileBench(SkShader::kMirror_TileMode, SkShader::kMirr
or_TileMode, false, true, true)) | 127 DEF_BENCH(return new ConstXTileBench(SkShader::kMirror_TileMode, SkShader::kMirr
or_TileMode, false, true, true)) |
128 | 128 |
129 DEF_BENCH(return new ConstXTileBench(SkShader::kRepeat_TileMode, SkShader::kRepe
at_TileMode, true, true, false)) | 129 DEF_BENCH(return new ConstXTileBench(SkShader::kRepeat_TileMode, SkShader::kRepe
at_TileMode, true, true, false)) |
130 DEF_BENCH(return new ConstXTileBench(SkShader::kClamp_TileMode, SkShader::kClamp
_TileMode, true, true, true)) | 130 DEF_BENCH(return new ConstXTileBench(SkShader::kClamp_TileMode, SkShader::kClamp
_TileMode, true, true, true)) |
131 DEF_BENCH(return new ConstXTileBench(SkShader::kMirror_TileMode, SkShader::kMirr
or_TileMode, true, true, false)) | 131 DEF_BENCH(return new ConstXTileBench(SkShader::kMirror_TileMode, SkShader::kMirr
or_TileMode, true, true, false)) |
OLD | NEW |