aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkPicture.cpp19
-rw-r--r--src/core/SkPictureRecorder.cpp27
2 files changed, 22 insertions, 24 deletions
diff --git a/src/core/SkPicture.cpp b/src/core/SkPicture.cpp
index 619be8b3ca..c014879354 100644
--- a/src/core/SkPicture.cpp
+++ b/src/core/SkPicture.cpp
@@ -241,10 +241,6 @@ SkPicture::~SkPicture() {
}
}
-void SkPicture::EXPERIMENTAL_addAccelData(const SkPicture::AccelData* data) const {
- fAccelData.reset(SkRef(data));
-}
-
const SkPicture::AccelData* SkPicture::EXPERIMENTAL_getAccelData(
SkPicture::AccelData::Key key) const {
if (fAccelData.get() && fAccelData->getKey() == key) {
@@ -452,13 +448,18 @@ bool SkPicture::hasText() const { return fAnalysis.fHasText; }
bool SkPicture::willPlayBackBitmaps() const { return fAnalysis.fWillPlaybackBitmaps; }
int SkPicture::approximateOpCount() const { return fRecord->count(); }
-SkPicture::SkPicture(const SkRect& cullRect, SkRecord* record, SnapshotArray* drawablePicts,
- SkBBoxHierarchy* bbh, size_t approxBytesUsedBySubPictures)
+SkPicture::SkPicture(const SkRect& cullRect,
+ SkRecord* record,
+ SnapshotArray* drawablePicts,
+ SkBBoxHierarchy* bbh,
+ AccelData* accelData,
+ size_t approxBytesUsedBySubPictures)
: fUniqueID(0)
, fCullRect(cullRect)
- , fRecord(record) // For performance, we take ownership of the caller's ref.
- , fBBH(bbh) // Ditto.
- , fDrawablePicts(drawablePicts) // take ownership
+ , fRecord(record) // Take ownership of caller's ref.
+ , fDrawablePicts(drawablePicts) // Take ownership.
+ , fBBH(bbh) // Take ownership of caller's ref.
+ , fAccelData(accelData) // Take ownership of caller's ref.
, fApproxBytesUsedBySubPictures(approxBytesUsedBySubPictures)
, fAnalysis(*fRecord)
{}
diff --git a/src/core/SkPictureRecorder.cpp b/src/core/SkPictureRecorder.cpp
index 6639bfcc85..282e2c22dd 100644
--- a/src/core/SkPictureRecorder.cpp
+++ b/src/core/SkPictureRecorder.cpp
@@ -77,14 +77,12 @@ SkPicture* SkPictureRecorder::endRecordingAsPicture() {
for (int i = 0; pictList && i < pictList->count(); i++) {
subPictureBytes += SkPictureUtils::ApproximateBytesUsed(pictList->begin()[i]);
}
- SkPicture* pict = SkNEW_ARGS(SkPicture,
- (fCullRect, fRecord.detach(), pictList, fBBH.detach(), subPictureBytes));
-
- if (saveLayerData) {
- pict->EXPERIMENTAL_addAccelData(saveLayerData);
- }
-
- return pict;
+ return SkNEW_ARGS(SkPicture, (fCullRect,
+ fRecord.detach(),
+ pictList,
+ fBBH.detach(),
+ saveLayerData.detach(),
+ subPictureBytes));
}
void SkPictureRecorder::partialReplay(SkCanvas* canvas) const {
@@ -161,13 +159,12 @@ protected:
}
// SkPicture will take ownership of a ref on both fRecord and fBBH.
// We're not willing to give up our ownership, so we must ref them for SkPicture.
- SkPicture* pict = SkNEW_ARGS(SkPicture,
- (fBounds, SkRef(fRecord.get()), pictList, SkSafeRef(fBBH.get()), subPictureBytes));
-
- if (saveLayerData) {
- pict->EXPERIMENTAL_addAccelData(saveLayerData);
- }
- return pict;
+ return SkNEW_ARGS(SkPicture, (fBounds,
+ SkRef(fRecord.get()),
+ pictList,
+ SkSafeRef(fBBH.get()),
+ saveLayerData.detach(),
+ subPictureBytes));
}
};