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 "SkBenchmark.h" |
10 #include "SkBitmap.h" | 10 #include "SkBitmap.h" |
(...skipping 16 matching lines...) Loading... |
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 SkBenchmark { |
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 enum { N = SkBENCHLOOP(20) }; | |
38 static const int kWidth = 1; | 37 static const int kWidth = 1; |
39 static const int kHeight = 300; | 38 static const int kHeight = 300; |
40 | 39 |
41 public: | 40 public: |
42 ConstXTileBench(void* param, | 41 ConstXTileBench(void* param, |
43 SkShader::TileMode xTile, | 42 SkShader::TileMode xTile, |
44 SkShader::TileMode yTile, | 43 SkShader::TileMode yTile, |
45 bool doFilter, | 44 bool doFilter, |
46 bool doTrans, | 45 bool doTrans, |
47 bool doScale) | 46 bool doScale) |
(...skipping 51 matching lines...) Loading... |
99 if (fDoScale) { | 98 if (fDoScale) { |
100 r = SkRect::MakeWH(SkIntToScalar(2 * 640), SkIntToScalar(2 * 480)); | 99 r = SkRect::MakeWH(SkIntToScalar(2 * 640), SkIntToScalar(2 * 480)); |
101 canvas->scale(SK_ScalarHalf, SK_ScalarHalf); | 100 canvas->scale(SK_ScalarHalf, SK_ScalarHalf); |
102 } else { | 101 } else { |
103 r = SkRect::MakeWH(SkIntToScalar(640), SkIntToScalar(480)); | 102 r = SkRect::MakeWH(SkIntToScalar(640), SkIntToScalar(480)); |
104 } | 103 } |
105 | 104 |
106 SkPaint bgPaint; | 105 SkPaint bgPaint; |
107 bgPaint.setColor(SK_ColorWHITE); | 106 bgPaint.setColor(SK_ColorWHITE); |
108 | 107 |
109 for (int i = 0; i < N; i++) { | 108 for (int i = 0; i < this->getLoops(); i++) { |
110 if (fDoTrans) { | 109 if (fDoTrans) { |
111 canvas->drawRect(r, bgPaint); | 110 canvas->drawRect(r, bgPaint); |
112 } | 111 } |
113 | 112 |
114 canvas->drawRect(r, paint); | 113 canvas->drawRect(r, paint); |
115 } | 114 } |
116 } | 115 } |
117 | 116 |
118 private: | 117 private: |
119 typedef SkBenchmark INHERITED; | 118 typedef SkBenchmark INHERITED; |
120 }; | 119 }; |
121 | 120 |
122 DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kR
epeat_TileMode, false, false, true)) | 121 DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kR
epeat_TileMode, false, false, true)) |
123 DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kCl
amp_TileMode, false, false, false)) | 122 DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kCl
amp_TileMode, false, false, false)) |
124 DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kM
irror_TileMode, false, false, true)) | 123 DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kM
irror_TileMode, false, false, true)) |
125 | 124 |
126 DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kR
epeat_TileMode, true, false, false)) | 125 DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kR
epeat_TileMode, true, false, false)) |
127 DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kCl
amp_TileMode, true, false, true)) | 126 DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kCl
amp_TileMode, true, false, true)) |
128 DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kM
irror_TileMode, true, false, false)) | 127 DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kM
irror_TileMode, true, false, false)) |
129 | 128 |
130 DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kR
epeat_TileMode, false, true, true)) | 129 DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kR
epeat_TileMode, false, true, true)) |
131 DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kCl
amp_TileMode, false, true, false)) | 130 DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kCl
amp_TileMode, false, true, false)) |
132 DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kM
irror_TileMode, false, true, true)) | 131 DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kM
irror_TileMode, false, true, true)) |
133 | 132 |
134 DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kR
epeat_TileMode, true, true, false)) | 133 DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kR
epeat_TileMode, true, true, false)) |
135 DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kCl
amp_TileMode, true, true, true)) | 134 DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kCl
amp_TileMode, true, true, true)) |
136 DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kM
irror_TileMode, true, true, false)) | 135 DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kM
irror_TileMode, true, true, false)) |
OLD | NEW |