OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 "Benchmark.h" | 8 #include "Benchmark.h" |
9 #include "SkGeometry.h" | 9 #include "SkGeometry.h" |
10 #include "SkRandom.h" | 10 #include "SkRandom.h" |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
125 }; | 125 }; |
126 | 126 |
127 DEF_BENCH( return new GeoRectBench_intersect; ) | 127 DEF_BENCH( return new GeoRectBench_intersect; ) |
128 DEF_BENCH( return new GeoRectBench_intersect_rect; ) | 128 DEF_BENCH( return new GeoRectBench_intersect_rect; ) |
129 DEF_BENCH( return new GeoRectBench_Intersects; ) | 129 DEF_BENCH( return new GeoRectBench_Intersects; ) |
130 | 130 |
131 DEF_BENCH( return new GeoRectBench_sort; ) | 131 DEF_BENCH( return new GeoRectBench_sort; ) |
132 | 132 |
133 //////////////////////////////////////////////////////////////////////////////// /////////////////// | 133 //////////////////////////////////////////////////////////////////////////////// /////////////////// |
134 | 134 |
135 class EvalQuadAt0 : public GeometryBench { | 135 class QuadBenchBase : public GeometryBench { |
136 protected: | |
136 SkPoint fPts[3]; | 137 SkPoint fPts[3]; |
137 public: | 138 public: |
138 EvalQuadAt0() : GeometryBench("evalquadat0") { | 139 QuadBenchBase(const char name[]) : GeometryBench(name) { |
139 SkRandom rand; | 140 SkRandom rand; |
140 for (int i = 0; i < 3; ++i) { | 141 for (int i = 0; i < 3; ++i) { |
141 fPts[i].set(rand.nextUScalar1(), rand.nextUScalar1()); | 142 fPts[i].set(rand.nextUScalar1(), rand.nextUScalar1()); |
142 } | 143 } |
143 } | 144 } |
144 | 145 }; |
146 | |
147 class EvalQuadAt0 : public QuadBenchBase { | |
148 public: | |
149 EvalQuadAt0() : QuadBenchBase("evalquadat0") {} | |
145 protected: | 150 protected: |
146 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { | 151 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
147 SkPoint result; | 152 SkPoint result; |
148 for (int outer = 0; outer < loops; ++outer) { | 153 for (int outer = 0; outer < loops; ++outer) { |
149 for (int i = 0; i < 10000; ++i) { | 154 SkEvalQuadAt(fPts, 0.5f, &result); |
150 SkEvalQuadAt(fPts, 0.5f, &result); | 155 SkEvalQuadAt(fPts, 0.5f, &result); |
151 } | 156 SkEvalQuadAt(fPts, 0.5f, &result); |
157 SkEvalQuadAt(fPts, 0.5f, &result); | |
152 } | 158 } |
153 } | 159 } |
154 }; | 160 }; |
155 DEF_BENCH( return new EvalQuadAt0; ) | 161 DEF_BENCH( return new EvalQuadAt0; ) |
156 | 162 |
157 class EvalQuadAt1 : public GeometryBench { | 163 class EvalQuadAt1 : public QuadBenchBase { |
158 SkPoint fPts[3]; | |
159 public: | 164 public: |
160 EvalQuadAt1() : GeometryBench("evalquadat1") { | 165 EvalQuadAt1() : QuadBenchBase("evalquadat1") {} |
161 SkRandom rand; | |
162 for (int i = 0; i < 3; ++i) { | |
163 fPts[i].set(rand.nextUScalar1(), rand.nextUScalar1()); | |
164 } | |
165 } | |
166 | |
167 protected: | 166 protected: |
168 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { | 167 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
168 SkPoint result; | |
169 for (int outer = 0; outer < loops; ++outer) { | 169 for (int outer = 0; outer < loops; ++outer) { |
170 for (int i = 0; i < 10000; ++i) { | 170 result = SkEvalQuadAt(fPts, 0.5f); |
171 SkEvalQuadAt(fPts, 0.5f); | 171 result = SkEvalQuadAt(fPts, 0.5f); |
172 } | 172 result = SkEvalQuadAt(fPts, 0.5f); |
173 result = SkEvalQuadAt(fPts, 0.5f); | |
173 } | 174 } |
174 } | 175 } |
175 }; | 176 }; |
176 DEF_BENCH( return new EvalQuadAt1; ) | 177 DEF_BENCH( return new EvalQuadAt1; ) |
177 | 178 |
179 //////// | |
180 | |
181 class EvalQuadTangentAt0 : public QuadBenchBase { | |
182 public: | |
183 EvalQuadTangentAt0() : QuadBenchBase("evalquadtangentat0") {} | |
184 protected: | |
185 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { | |
186 SkPoint result; | |
187 for (int outer = 0; outer < loops; ++outer) { | |
188 SkEvalQuadAt(fPts, 0.5f, NULL, &result); | |
mtklein
2015/03/20 11:39:48
Is this intentional, comparing SkEvalQuadTangentAt
reed1
2015/03/20 12:32:03
The NULL is the quad position parameter, the next
| |
189 SkEvalQuadAt(fPts, 0.5f, NULL, &result); | |
190 SkEvalQuadAt(fPts, 0.5f, NULL, &result); | |
191 SkEvalQuadAt(fPts, 0.5f, NULL, &result); | |
192 } | |
193 } | |
194 }; | |
195 DEF_BENCH( return new EvalQuadTangentAt0; ) | |
196 | |
197 class EvalQuadTangentAt1 : public QuadBenchBase { | |
198 public: | |
199 EvalQuadTangentAt1() : QuadBenchBase("evalquadtangentat1") {} | |
200 protected: | |
201 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { | |
202 SkPoint result; | |
203 for (int outer = 0; outer < loops; ++outer) { | |
204 result = SkEvalQuadTangentAt(fPts, 0.5f); | |
205 result = SkEvalQuadTangentAt(fPts, 0.5f); | |
206 result = SkEvalQuadTangentAt(fPts, 0.5f); | |
207 result = SkEvalQuadTangentAt(fPts, 0.5f); | |
208 } | |
209 } | |
210 }; | |
211 DEF_BENCH( return new EvalQuadTangentAt1; ) | |
212 | |
213 //////// | |
214 | |
215 class ChopQuadAt0 : public QuadBenchBase { | |
216 public: | |
217 ChopQuadAt0() : QuadBenchBase("chopquadat0") {} | |
218 protected: | |
219 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { | |
220 SkPoint dst[5]; | |
221 for (int outer = 0; outer < loops; ++outer) { | |
222 SkChopQuadAt(fPts, dst, 0.5f); | |
223 SkChopQuadAt(fPts, dst, 0.5f); | |
224 SkChopQuadAt(fPts, dst, 0.5f); | |
225 SkChopQuadAt(fPts, dst, 0.5f); | |
226 } | |
227 } | |
228 }; | |
229 DEF_BENCH( return new ChopQuadAt0; ) | |
230 | |
231 class ChopQuadAt1 : public QuadBenchBase { | |
232 public: | |
233 ChopQuadAt1() : QuadBenchBase("chopquadat1") {} | |
234 protected: | |
235 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { | |
236 SkPoint dst[5]; | |
237 for (int outer = 0; outer < loops; ++outer) { | |
238 SkChopQuadAt2(fPts, dst, 0.5f); | |
239 SkChopQuadAt2(fPts, dst, 0.5f); | |
240 SkChopQuadAt2(fPts, dst, 0.5f); | |
241 SkChopQuadAt2(fPts, dst, 0.5f); | |
242 } | |
243 } | |
244 }; | |
245 DEF_BENCH( return new ChopQuadAt1; ) | |
246 | |
OLD | NEW |