diff options
author | reed <reed@google.com> | 2014-11-19 06:59:41 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-19 06:59:41 -0800 |
commit | 7e76bff26e7c74902841ca4f607eb0b24a833a4a (patch) | |
tree | cb2f55b88a3ec2b3838dc9003808af03b6700e1d /src/core/SkPictureRecorder.cpp | |
parent | ec03a4608025106ea3f21353865c7d302c0a13c6 (diff) |
allow pictures to have a full bounds
BUG=skia:
Review URL: https://codereview.chromium.org/736583004
Diffstat (limited to 'src/core/SkPictureRecorder.cpp')
-rw-r--r-- | src/core/SkPictureRecorder.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/core/SkPictureRecorder.cpp b/src/core/SkPictureRecorder.cpp index bc8bffb9b3..aea9e389da 100644 --- a/src/core/SkPictureRecorder.cpp +++ b/src/core/SkPictureRecorder.cpp @@ -18,20 +18,19 @@ SkPictureRecorder::SkPictureRecorder() {} SkPictureRecorder::~SkPictureRecorder() {} -SkCanvas* SkPictureRecorder::beginRecording(SkScalar width, SkScalar height, +SkCanvas* SkPictureRecorder::beginRecording(const SkRect& cullRect, SkBBHFactory* bbhFactory /* = NULL */, uint32_t recordFlags /* = 0 */) { + fCullRect = cullRect; fFlags = recordFlags; - fCullWidth = width; - fCullHeight = height; if (bbhFactory) { - fBBH.reset((*bbhFactory)(width, height)); + fBBH.reset((*bbhFactory)(cullRect)); SkASSERT(fBBH.get()); } fRecord.reset(SkNEW(SkRecord)); - fRecorder.reset(SkNEW_ARGS(SkRecorder, (fRecord.get(), width, height))); + fRecorder.reset(SkNEW_ARGS(SkRecorder, (fRecord.get(), cullRect))); return this->getRecordingCanvas(); } @@ -52,12 +51,10 @@ SkPicture* SkPictureRecorder::endRecording() { } if (fBBH.get()) { - SkRect cullRect = SkRect::MakeWH(fCullWidth, fCullHeight); - if (saveLayerData) { - SkRecordComputeLayers(cullRect, *fRecord, fBBH.get(), saveLayerData); + SkRecordComputeLayers(fCullRect, *fRecord, fBBH.get(), saveLayerData); } else { - SkRecordFillBounds(cullRect, *fRecord, fBBH.get()); + SkRecordFillBounds(fCullRect, *fRecord, fBBH.get()); } } @@ -65,7 +62,7 @@ SkPicture* SkPictureRecorder::endRecording() { SkBBHFactory* factory = NULL; uint32_t recordFlags = 0; SkAutoDataUnref drawablePicts(fRecorder->newDrawableSnapshot(factory, recordFlags)); - SkPicture* pict = SkNEW_ARGS(SkPicture, (fCullWidth, fCullHeight, fRecord.detach(), + SkPicture* pict = SkNEW_ARGS(SkPicture, (fCullRect, fRecord.detach(), drawablePicts, fBBH.get())); if (saveLayerData) { |