| 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 "GrContext.h" | 8 #include "GrContext.h" |
| 9 #include "GrContextFactory.h" | 9 #include "GrContextFactory.h" |
| 10 #include "GrRenderTarget.h" | 10 #include "GrRenderTarget.h" |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 strcpy(fFilename, filename.c_str()); | 99 strcpy(fFilename, filename.c_str()); |
| 100 testOne(); | 100 testOne(); |
| 101 } | 101 } |
| 102 | 102 |
| 103 void testOne(); | 103 void testOne(); |
| 104 | 104 |
| 105 char fFilename[kMaxLength]; | 105 char fFilename[kMaxLength]; |
| 106 TestStep fTestStep; | 106 TestStep fTestStep; |
| 107 int fDirNo; | 107 int fDirNo; |
| 108 int fPixelError; | 108 int fPixelError; |
| 109 int fTime; | 109 SkMSec fTime; |
| 110 bool fScaleOversized; | 110 bool fScaleOversized; |
| 111 }; | 111 }; |
| 112 | 112 |
| 113 struct SkpSkGrThreadState { | 113 struct SkpSkGrThreadState { |
| 114 void init(int dirNo) { | 114 void init(int dirNo) { |
| 115 fResult.init(dirNo); | 115 fResult.init(dirNo); |
| 116 fFoundCount = 0; | 116 fFoundCount = 0; |
| 117 fSmallestError = 0; | 117 fSmallestError = 0; |
| 118 sk_bzero(fFilesFound, sizeof(fFilesFound)); | 118 sk_bzero(fFilesFound, sizeof(fFilesFound)); |
| 119 sk_bzero(fDirsFound, sizeof(fDirsFound)); | 119 sk_bzero(fDirsFound, sizeof(fDirsFound)); |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 canvas->save(); | 336 canvas->save(); |
| 337 int pWidth = pic->width(); | 337 int pWidth = pic->width(); |
| 338 int pHeight = pic->height(); | 338 int pHeight = pic->height(); |
| 339 const int maxDimension = 1000; | 339 const int maxDimension = 1000; |
| 340 const int slices = 3; | 340 const int slices = 3; |
| 341 int xInterval = SkTMax(pWidth - maxDimension, 0) / (slices - 1); | 341 int xInterval = SkTMax(pWidth - maxDimension, 0) / (slices - 1); |
| 342 int yInterval = SkTMax(pHeight - maxDimension, 0) / (slices - 1); | 342 int yInterval = SkTMax(pHeight - maxDimension, 0) / (slices - 1); |
| 343 SkRect rect = {0, 0, SkIntToScalar(SkTMin(maxDimension, pWidth)), | 343 SkRect rect = {0, 0, SkIntToScalar(SkTMin(maxDimension, pWidth)), |
| 344 SkIntToScalar(SkTMin(maxDimension, pHeight))}; | 344 SkIntToScalar(SkTMin(maxDimension, pHeight))}; |
| 345 canvas->clipRect(rect); | 345 canvas->clipRect(rect); |
| 346 SkMSec start = SkTime::GetMSecs(); | 346 skiatest::Timer timer; |
| 347 for (int x = 0; x < slices; ++x) { | 347 for (int x = 0; x < slices; ++x) { |
| 348 for (int y = 0; y < slices; ++y) { | 348 for (int y = 0; y < slices; ++y) { |
| 349 pic->draw(canvas); | 349 pic->draw(canvas); |
| 350 canvas->translate(0, SkIntToScalar(yInterval)); | 350 canvas->translate(0, SkIntToScalar(yInterval)); |
| 351 } | 351 } |
| 352 canvas->translate(SkIntToScalar(xInterval), SkIntToScalar(-yInterval * s
lices)); | 352 canvas->translate(SkIntToScalar(xInterval), SkIntToScalar(-yInterval * s
lices)); |
| 353 } | 353 } |
| 354 SkMSec end = SkTime::GetMSecs(); | 354 SkMSec elapsed = timer.elapsedMsInt(); |
| 355 canvas->restore(); | 355 canvas->restore(); |
| 356 return end - start; | 356 return elapsed; |
| 357 } | 357 } |
| 358 | 358 |
| 359 static void drawPict(SkPicture* pic, SkCanvas* canvas, int scale) { | 359 static void drawPict(SkPicture* pic, SkCanvas* canvas, int scale) { |
| 360 canvas->clear(SK_ColorWHITE); | 360 canvas->clear(SK_ColorWHITE); |
| 361 if (scale != 1) { | 361 if (scale != 1) { |
| 362 canvas->save(); | 362 canvas->save(); |
| 363 canvas->scale(1.0f / scale, 1.0f / scale); | 363 canvas->scale(1.0f / scale, 1.0f / scale); |
| 364 } | 364 } |
| 365 pic->draw(canvas); | 365 pic->draw(canvas); |
| 366 if (scale != 1) { | 366 if (scale != 1) { |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 SkGpuDevice grDevice(context, texture.get()); | 455 SkGpuDevice grDevice(context, texture.get()); |
| 456 SkCanvas grCanvas(&grDevice); | 456 SkCanvas grCanvas(&grDevice); |
| 457 drawPict(pic.get(), &grCanvas, fScaleOversized ? scale : 1); | 457 drawPict(pic.get(), &grCanvas, fScaleOversized ? scale : 1); |
| 458 | 458 |
| 459 SkBitmap grBitmap; | 459 SkBitmap grBitmap; |
| 460 grBitmap.allocPixels(grCanvas.imageInfo()); | 460 grBitmap.allocPixels(grCanvas.imageInfo()); |
| 461 grCanvas.readPixels(&grBitmap, 0, 0); | 461 grCanvas.readPixels(&grBitmap, 0, 0); |
| 462 | 462 |
| 463 if (fTestStep == kCompareBits) { | 463 if (fTestStep == kCompareBits) { |
| 464 fPixelError = similarBits(grBitmap, bitmap); | 464 fPixelError = similarBits(grBitmap, bitmap); |
| 465 int skTime = timePict(pic, &skCanvas); | 465 SkMSec skTime = timePict(pic, &skCanvas); |
| 466 int grTime = timePict(pic, &grCanvas); | 466 SkMSec grTime = timePict(pic, &grCanvas); |
| 467 fTime = skTime - grTime; | 467 fTime = skTime - grTime; |
| 468 } else if (fTestStep == kEncodeFiles) { | 468 } else if (fTestStep == kEncodeFiles) { |
| 469 SkString pngStr = make_png_name(fFilename); | 469 SkString pngStr = make_png_name(fFilename); |
| 470 const char* pngName = pngStr.c_str(); | 470 const char* pngName = pngStr.c_str(); |
| 471 writePict(grBitmap, outGrDir, pngName); | 471 writePict(grBitmap, outGrDir, pngName); |
| 472 writePict(bitmap, outSkDir, pngName); | 472 writePict(bitmap, outSkDir, pngName); |
| 473 } | 473 } |
| 474 } | 474 } |
| 475 } | 475 } |
| 476 | 476 |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 745 int testIndex = 166; | 745 int testIndex = 166; |
| 746 int dirIndex = skipOverSkGr[testIndex - 166].directory; | 746 int dirIndex = skipOverSkGr[testIndex - 166].directory; |
| 747 SkString pictDir = make_in_dir_name(dirIndex); | 747 SkString pictDir = make_in_dir_name(dirIndex); |
| 748 if (pictDir.size() == 0) { | 748 if (pictDir.size() == 0) { |
| 749 return; | 749 return; |
| 750 } | 750 } |
| 751 SkString filename(skipOverSkGr[testIndex - 166].filename); | 751 SkString filename(skipOverSkGr[testIndex - 166].filename); |
| 752 TestResult::Test(dirIndex, filename.c_str(), kCompareBits, reporter->verbose
()); | 752 TestResult::Test(dirIndex, filename.c_str(), kCompareBits, reporter->verbose
()); |
| 753 TestResult::Test(dirIndex, filename.c_str(), kEncodeFiles, reporter->verbose
()); | 753 TestResult::Test(dirIndex, filename.c_str(), kEncodeFiles, reporter->verbose
()); |
| 754 } | 754 } |
| OLD | NEW |