diff options
author | Bo Liu <boliu@google.com> | 2014-05-01 10:38:38 -0700 |
---|---|---|
committer | Bo Liu <boliu@google.com> | 2014-05-01 10:38:38 -0700 |
commit | 27ab20dffff01006f5d20fdb2b3f4ea503d69114 (patch) | |
tree | f8a42f1186f835772ed0c20a7f9095392e124b04 /record/SkRecording.cpp | |
parent | 51512eaae8128a677f92e2689d8df720dca13d32 (diff) | |
parent | 2e8705638185600b128f867809b6cd034225451c (diff) | |
download | src-idea133-weekly-release.tar.gz |
Merge from Chromium at DEPS revision 267519idea133-weekly-release
This commit was generated by merge_to_master.py.
Change-Id: Ic063600f0ecbd8d3c74d2d514eaf91c1a33c9f07
Diffstat (limited to 'record/SkRecording.cpp')
-rw-r--r-- | record/SkRecording.cpp | 35 |
1 files changed, 13 insertions, 22 deletions
diff --git a/record/SkRecording.cpp b/record/SkRecording.cpp index 6af19593..57743622 100644 --- a/record/SkRecording.cpp +++ b/record/SkRecording.cpp @@ -16,38 +16,29 @@ namespace EXPERIMENTAL { SkPlayback::SkPlayback(const SkRecord* record) : fRecord(record) {} -SkPlayback::~SkPlayback() { - SkDELETE(fRecord); -} +SkPlayback::~SkPlayback() {} void SkPlayback::draw(SkCanvas* canvas) const { - SkASSERT(fRecord != NULL); + SkASSERT(fRecord.get() != NULL); SkRecordDraw(*fRecord, canvas); } -/*static*/ SkRecording* SkRecording::Create(int width, int height) { - return SkNEW_ARGS(SkRecording, (width, height)); -} +SkRecording::SkRecording(int width, int height) + : fRecord(SkNEW(SkRecord)) + , fRecorder(SkNEW_ARGS(SkRecorder, (SkRecorder::kReadWrite_Mode, fRecord.get(), width, height))) + {} -SkRecording::SkRecording(int width, int height) { - SkRecord* record = SkNEW(SkRecord); - fRecorder = SkNEW_ARGS(SkRecorder, (SkRecorder::kReadWrite_Mode, record, width, height)); - fRecord = record; +SkPlayback* SkRecording::releasePlayback() { + SkASSERT(fRecorder->unique()); + fRecorder->forgetRecord(); + SkRecordOptimize(fRecord.get()); + return SkNEW_ARGS(SkPlayback, (fRecord.detach())); } -/*static*/ const SkPlayback* SkRecording::Delete(SkRecording* recording) { - SkRecord* record = recording->fRecord; - SkRecordOptimize(record); - SkDELETE(recording); - return SkNEW_ARGS(SkPlayback, (record)); -} - -SkRecording::~SkRecording() { - SkDELETE(fRecorder); -} +SkRecording::~SkRecording() {} SkCanvas* SkRecording::canvas() { - return fRecorder; + return fRecord.get() ? fRecorder.get() : NULL; } } // namespace EXPERIMENTAL |