aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPictureRecorder.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2014-11-19 08:04:34 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-11-19 08:04:34 -0800
commit78e276889795454891cbba48ab11927968114953 (patch)
tree4ac8a8bdbe12d1fb3a63a37746cb00edd40bc38d /src/core/SkPictureRecorder.cpp
parent7c4cdd2c5b7b6c71fa0e7612594f7885f2dbf264 (diff)
Allow pictures to have a full bounds
Diffstat (limited to 'src/core/SkPictureRecorder.cpp')
-rw-r--r--src/core/SkPictureRecorder.cpp17
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) {