Fix some bugs in our picture tools.

When doing tiled rendering in multiple threads, clone fPicture,
rather than the blank fPictureClones. Also fix a precedence
problem so we get the correct rectangle.

In render_pictures_main, call PictureRenderer::setup().

Review URL: https://codereview.appspot.com/6585055

git-svn-id: http://skia.googlecode.com/svn/trunk@5758 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
scroggo@google.com 2012-10-01 20:06:09 +00:00
parent c58b126623
commit b4773b4802
2 changed files with 4 additions and 2 deletions

View File

@ -210,7 +210,7 @@ void TiledPictureRenderer::init(SkPicture* pict) {
int numberOfClones = fNumThreads - 1;
// This will be deleted in end().
fPictureClones = SkNEW_ARRAY(SkPicture, numberOfClones);
fPictureClones->clone(fPictureClones, numberOfClones);
fPicture->clone(fPictureClones, numberOfClones);
}
}
}
@ -315,7 +315,8 @@ struct ThreadData {
}
const SkRect* nextTile() {
if (int32_t i = sk_atomic_inc(fTileCounter) < fTileRects->count()) {
int32_t i = sk_atomic_inc(fTileCounter);
if (i < fTileRects->count()) {
return &fTileRects->operator[](i);
}
return NULL;

View File

@ -102,6 +102,7 @@ static bool render_picture(const SkString& inputPath, const SkString& outputDir,
inputPath.c_str());
renderer.init(&picture);
renderer.setup();
SkString outputPath;
make_output_filepath(&outputPath, outputDir, inputFilename);