Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Unified Diff: tools/PictureRenderer.cpp

Issue 291843010: Call write() within render_pictures but not bench_pictures (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: disable write() calls except in render_pictures Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/PictureRenderer.h ('k') | tools/render_pictures_main.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/PictureRenderer.cpp
diff --git a/tools/PictureRenderer.cpp b/tools/PictureRenderer.cpp
index b15b4a798338444a6de64782fa8b326d3dccb22d..5128782d4400a37fcbda7e98b8282c237f0d1c3c 100644
--- a/tools/PictureRenderer.cpp
+++ b/tools/PictureRenderer.cpp
@@ -398,8 +398,12 @@ bool PipePictureRenderer::render(SkBitmap** out) {
setup_bitmap(*out, fPicture->width(), fPicture->height());
fCanvas->readPixels(*out, 0, 0);
}
- return write(fCanvas, fWritePath, fMismatchPath, fInputFilename, fJsonSummaryPtr,
- fUseChecksumBasedFilenames);
+ if (fEnableWrites) {
+ return write(fCanvas, fWritePath, fMismatchPath, fInputFilename, fJsonSummaryPtr,
+ fUseChecksumBasedFilenames);
+ } else {
+ return true;
+ }
}
SkString PipePictureRenderer::getConfigNameInternal() {
@@ -429,8 +433,12 @@ bool SimplePictureRenderer::render(SkBitmap** out) {
setup_bitmap(*out, fPicture->width(), fPicture->height());
fCanvas->readPixels(*out, 0, 0);
}
- return write(fCanvas, fWritePath, fMismatchPath, fInputFilename, fJsonSummaryPtr,
- fUseChecksumBasedFilenames);
+ if (fEnableWrites) {
+ return write(fCanvas, fWritePath, fMismatchPath, fInputFilename, fJsonSummaryPtr,
+ fUseChecksumBasedFilenames);
+ } else {
+ return true;
+ }
}
SkString SimplePictureRenderer::getConfigNameInternal() {
@@ -640,8 +648,10 @@ bool TiledPictureRenderer::render(SkBitmap** out) {
bool success = true;
for (int i = 0; i < fTileRects.count(); ++i) {
draw_tile_to_canvas(fCanvas, fTileRects[i], fPicture);
- success &= write(fCanvas, fWritePath, fMismatchPath, fInputFilename, fJsonSummaryPtr,
- fUseChecksumBasedFilenames, &i);
+ if (fEnableWrites) {
+ success &= write(fCanvas, fWritePath, fMismatchPath, fInputFilename, fJsonSummaryPtr,
+ fUseChecksumBasedFilenames, &i);
+ }
if (NULL != out) {
if (fCanvas->readPixels(&bitmap, 0, 0)) {
// Add this tile to the entire bitmap.
@@ -700,9 +710,10 @@ class CloneData : public SkRunnable {
public:
CloneData(SkPicture* clone, SkCanvas* canvas, SkTDArray<SkRect>& rects, int start, int end,
SkRunnable* done, ImageResultsAndExpectations* jsonSummaryPtr,
- bool useChecksumBasedFilenames)
+ bool useChecksumBasedFilenames, bool enableWrites)
: fClone(clone)
, fCanvas(canvas)
+ , fEnableWrites(enableWrites)
, fRects(rects)
, fStart(start)
, fEnd(end)
@@ -724,23 +735,25 @@ public:
for (int i = fStart; i < fEnd; i++) {
draw_tile_to_canvas(fCanvas, fRects[i], fClone);
- if (!write(fCanvas, fWritePath, fMismatchPath, fInputFilename, fJsonSummaryPtr,
- fUseChecksumBasedFilenames, &i)
- && fSuccess != NULL) {
- *fSuccess = false;
- // If one tile fails to write to a file, do not continue drawing the rest.
- break;
- }
- if (fBitmap != NULL) {
- if (fCanvas->readPixels(&bitmap, 0, 0)) {
- SkAutoLockPixels alp(*fBitmap);
- bitmapCopyAtOffset(bitmap, fBitmap, SkScalarFloorToInt(fRects[i].left()),
- SkScalarFloorToInt(fRects[i].top()));
- } else {
+ if (fEnableWrites) {
+ if (!write(fCanvas, fWritePath, fMismatchPath, fInputFilename, fJsonSummaryPtr,
+ fUseChecksumBasedFilenames, &i)
+ && fSuccess != NULL) {
*fSuccess = false;
- // If one tile fails to read pixels, do not continue drawing the rest.
+ // If one tile fails to write to a file, do not continue drawing the rest.
break;
}
+ if (fBitmap != NULL) {
+ if (fCanvas->readPixels(&bitmap, 0, 0)) {
+ SkAutoLockPixels alp(*fBitmap);
+ bitmapCopyAtOffset(bitmap, fBitmap, SkScalarFloorToInt(fRects[i].left()),
+ SkScalarFloorToInt(fRects[i].top()));
+ } else {
+ *fSuccess = false;
+ // If one tile fails to read pixels, do not continue drawing the rest.
+ break;
+ }
+ }
}
}
fDone->run();
@@ -763,6 +776,8 @@ private:
SkPicture* fClone; // Picture to draw from. Each CloneData has a unique one which
// is threadsafe.
SkCanvas* fCanvas; // Canvas to draw to. Reused for each tile.
+ bool fEnableWrites; // TODO(epoger): Temporary hack; see declaration of
+ // fEnableWrites in PictureRenderer.h.
SkString fWritePath; // If not empty, write all results into this directory.
SkString fMismatchPath; // If not empty, write all unexpected results into this dir.
SkString fInputFilename; // Filename of input SkPicture file.
@@ -813,7 +828,7 @@ void MultiCorePictureRenderer::init(SkPicture *pict, const SkString* writePath,
const int end = SkMin32(start + chunkSize, fTileRects.count());
fCloneData[i] = SkNEW_ARGS(CloneData,
(pic, fCanvasPool[i], fTileRects, start, end, &fCountdown,
- fJsonSummaryPtr, useChecksumBasedFilenames));
+ fJsonSummaryPtr, useChecksumBasedFilenames, fEnableWrites));
}
}
« no previous file with comments | « tools/PictureRenderer.h ('k') | tools/render_pictures_main.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698