OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 "CrashHandler.h" | 8 #include "CrashHandler.h" |
9 // #include "OverwriteLine.h" | 9 // #include "OverwriteLine.h" |
10 #include "Resources.h" | 10 #include "Resources.h" |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 strcpy(fFilename, filename.c_str()); | 208 strcpy(fFilename, filename.c_str()); |
209 testOne(); | 209 testOne(); |
210 } | 210 } |
211 | 211 |
212 void testOne(); | 212 void testOne(); |
213 | 213 |
214 char fFilename[kMaxLength]; | 214 char fFilename[kMaxLength]; |
215 TestStep fTestStep; | 215 TestStep fTestStep; |
216 int fDirNo; | 216 int fDirNo; |
217 int fPixelError; | 217 int fPixelError; |
218 int fTime; | 218 SkMSec fTime; |
219 int fScale; | 219 int fScale; |
220 }; | 220 }; |
221 | 221 |
222 class SortByPixel : public TestResult { | 222 class SortByPixel : public TestResult { |
223 public: | 223 public: |
224 bool operator<(const SortByPixel& rh) const { | 224 bool operator<(const SortByPixel& rh) const { |
225 return fPixelError < rh.fPixelError; | 225 return fPixelError < rh.fPixelError; |
226 } | 226 } |
227 }; | 227 }; |
228 | 228 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 int pixelError = testResult.fPixelError; | 365 int pixelError = testResult.fPixelError; |
366 if (pixelError > 0) { | 366 if (pixelError > 0) { |
367 for (int index = 0; index < worstCount; ++index) { | 367 for (int index = 0; index < worstCount; ++index) { |
368 if (pixelError > data->fPixelWorst[index].fPixelError) { | 368 if (pixelError > data->fPixelWorst[index].fPixelError) { |
369 data->fPixelWorst[index] = *(SortByPixel*) &testResult; | 369 data->fPixelWorst[index] = *(SortByPixel*) &testResult; |
370 return true; | 370 return true; |
371 } | 371 } |
372 } | 372 } |
373 } | 373 } |
374 int slowCount = data->fSlowest.count(); | 374 int slowCount = data->fSlowest.count(); |
375 int time = testResult.fTime; | 375 SkMSec time = testResult.fTime; |
376 if (time > 0) { | 376 if (time > 0) { |
377 for (int index = 0; index < slowCount; ++index) { | 377 for (int index = 0; index < slowCount; ++index) { |
378 if (time > data->fSlowest[index].fTime) { | 378 if (time > data->fSlowest[index].fTime) { |
379 data->fSlowest[index] = *(SortByTime*) &testResult; | 379 data->fSlowest[index] = *(SortByTime*) &testResult; |
380 return true; | 380 return true; |
381 } | 381 } |
382 } | 382 } |
383 } | 383 } |
384 if (pixelError > 0 && worstCount < kMaxFiles) { | 384 if (pixelError > 0 && worstCount < kMaxFiles) { |
385 *data->fPixelWorst.append() = *(SortByPixel*) &testResult; | 385 *data->fPixelWorst.append() = *(SortByPixel*) &testResult; |
386 return true; | 386 return true; |
387 } | 387 } |
388 if (time > 0 && slowCount < kMaxFiles) { | 388 if (time > 0 && slowCount < kMaxFiles) { |
389 *data->fSlowest.append() = *(SortByTime*) &testResult; | 389 *data->fSlowest.append() = *(SortByTime*) &testResult; |
390 return true; | 390 return true; |
391 } | 391 } |
392 return false; | 392 return false; |
393 } | 393 } |
394 | 394 |
395 static SkMSec timePict(SkPicture* pic, SkCanvas* canvas) { | 395 static SkMSec timePict(SkPicture* pic, SkCanvas* canvas) { |
396 canvas->save(); | 396 canvas->save(); |
397 SkScalar pWidth = pic->cullRect().width(); | 397 SkScalar pWidth = pic->cullRect().width(); |
398 SkScalar pHeight = pic->cullRect().height(); | 398 SkScalar pHeight = pic->cullRect().height(); |
399 const SkScalar maxDimension = 1000.0f; | 399 const SkScalar maxDimension = 1000.0f; |
400 const int slices = 3; | 400 const int slices = 3; |
401 SkScalar xInterval = SkTMax(pWidth - maxDimension, 0.0f) / (slices - 1); | 401 SkScalar xInterval = SkTMax(pWidth - maxDimension, 0.0f) / (slices - 1); |
402 SkScalar yInterval = SkTMax(pHeight - maxDimension, 0.0f) / (slices - 1); | 402 SkScalar yInterval = SkTMax(pHeight - maxDimension, 0.0f) / (slices - 1); |
403 SkRect rect = {0, 0, SkTMin(maxDimension, pWidth), SkTMin(maxDimension, pHei
ght) }; | 403 SkRect rect = {0, 0, SkTMin(maxDimension, pWidth), SkTMin(maxDimension, pHei
ght) }; |
404 canvas->clipRect(rect); | 404 canvas->clipRect(rect); |
405 SkMSec start = SkTime::GetMSecs(); | 405 double start = SkTime::GetMSecs(); |
406 for (int x = 0; x < slices; ++x) { | 406 for (int x = 0; x < slices; ++x) { |
407 for (int y = 0; y < slices; ++y) { | 407 for (int y = 0; y < slices; ++y) { |
408 pic->playback(canvas); | 408 pic->playback(canvas); |
409 canvas->translate(0, yInterval); | 409 canvas->translate(0, yInterval); |
410 } | 410 } |
411 canvas->translate(xInterval, -yInterval * slices); | 411 canvas->translate(xInterval, -yInterval * slices); |
412 } | 412 } |
413 SkMSec end = SkTime::GetMSecs(); | 413 double end = SkTime::GetMSecs(); |
414 canvas->restore(); | 414 canvas->restore(); |
415 return end - start; | 415 return static_cast<SkMSec>(end - start); |
416 } | 416 } |
417 | 417 |
418 static void drawPict(SkPicture* pic, SkCanvas* canvas, int scale) { | 418 static void drawPict(SkPicture* pic, SkCanvas* canvas, int scale) { |
419 canvas->clear(SK_ColorWHITE); | 419 canvas->clear(SK_ColorWHITE); |
420 if (scale != 1) { | 420 if (scale != 1) { |
421 canvas->save(); | 421 canvas->save(); |
422 canvas->scale(1.0f / scale, 1.0f / scale); | 422 canvas->scale(1.0f / scale, 1.0f / scale); |
423 } | 423 } |
424 pic->playback(canvas); | 424 pic->playback(canvas); |
425 if (scale != 1) { | 425 if (scale != 1) { |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
495 oldBitmap.eraseColor(SK_ColorWHITE); | 495 oldBitmap.eraseColor(SK_ColorWHITE); |
496 SkCanvas oldCanvas(oldBitmap); | 496 SkCanvas oldCanvas(oldBitmap); |
497 oldCanvas.setAllowSimplifyClip(false); | 497 oldCanvas.setAllowSimplifyClip(false); |
498 opBitmap.eraseColor(SK_ColorWHITE); | 498 opBitmap.eraseColor(SK_ColorWHITE); |
499 SkCanvas opCanvas(opBitmap); | 499 SkCanvas opCanvas(opBitmap); |
500 opCanvas.setAllowSimplifyClip(true); | 500 opCanvas.setAllowSimplifyClip(true); |
501 drawPict(pic.get(), &oldCanvas, fScale); | 501 drawPict(pic.get(), &oldCanvas, fScale); |
502 drawPict(pic.get(), &opCanvas, fScale); | 502 drawPict(pic.get(), &opCanvas, fScale); |
503 if (fTestStep == kCompareBits) { | 503 if (fTestStep == kCompareBits) { |
504 fPixelError = similarBits(oldBitmap, opBitmap); | 504 fPixelError = similarBits(oldBitmap, opBitmap); |
505 int oldTime = timePict(pic.get(), &oldCanvas); | 505 SkMSec oldTime = timePict(pic.get(), &oldCanvas); |
506 int opTime = timePict(pic.get(), &opCanvas); | 506 SkMSec opTime = timePict(pic.get(), &opCanvas); |
507 fTime = SkTMax(0, oldTime - opTime); | 507 fTime = SkTMax(static_cast<SkMSec>(0), oldTime - opTime); |
508 } else if (fTestStep == kEncodeFiles) { | 508 } else if (fTestStep == kEncodeFiles) { |
509 SkString pngStr = make_png_name(fFilename); | 509 SkString pngStr = make_png_name(fFilename); |
510 const char* pngName = pngStr.c_str(); | 510 const char* pngName = pngStr.c_str(); |
511 writePict(oldBitmap, outOldDir, pngName); | 511 writePict(oldBitmap, outOldDir, pngName); |
512 writePict(opBitmap, outOpDir, pngName); | 512 writePict(opBitmap, outOpDir, pngName); |
513 } | 513 } |
514 } | 514 } |
515 } | 515 } |
516 | 516 |
517 DEFINE_string2(match, m, "PathOpsSkpClipThreaded", | 517 DEFINE_string2(match, m, "PathOpsSkpClipThreaded", |
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1093 } | 1093 } |
1094 } | 1094 } |
1095 return 0; | 1095 return 0; |
1096 } | 1096 } |
1097 | 1097 |
1098 #if !defined(SK_BUILD_FOR_IOS) | 1098 #if !defined(SK_BUILD_FOR_IOS) |
1099 int main(int argc, char * const argv[]) { | 1099 int main(int argc, char * const argv[]) { |
1100 return tool_main(argc, (char**) argv); | 1100 return tool_main(argc, (char**) argv); |
1101 } | 1101 } |
1102 #endif | 1102 #endif |
OLD | NEW |