diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-04-10 23:30:59 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-04-10 23:30:59 +0000 |
commit | 18fd2b923a5060175ab4e446e73a73cba581c20d (patch) | |
tree | 9940e91a8469c085c5b39e202215516353df18d8 /src | |
parent | d923288e50b5a69afb0bdd5c161191b24cab8345 (diff) |
Add a focused public API for src/record.
BUG=skia:2378
R=reed@google.com, robertphillips@google.com, mtklein@google.com, fmalita@chromium.org
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/233053005
git-svn-id: http://skia.googlecode.com/svn/trunk@14146 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r-- | src/record/SkRecording.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/record/SkRecording.cpp b/src/record/SkRecording.cpp new file mode 100644 index 0000000000..5d48bca513 --- /dev/null +++ b/src/record/SkRecording.cpp @@ -0,0 +1,44 @@ +#include "SkRecording.h" + +#include "SkRecord.h" +#include "SkRecorder.h" +#include "SkRecordDraw.h" + +namespace EXPERIMENTAL { + +SkPlayback::SkPlayback(const SkRecord* record) : fRecord(record) {} + +SkPlayback::~SkPlayback() { + SkDELETE(fRecord); +} + +void SkPlayback::draw(SkCanvas* canvas) const { + SkASSERT(fRecord != NULL); + SkRecordDraw(*fRecord, canvas); +} + +/*static*/ SkRecording* SkRecording::Create(int width, int height) { + return SkNEW_ARGS(SkRecording, (width, height)); +} + +SkRecording::SkRecording(int width, int height) { + SkRecord* record = SkNEW(SkRecord); + fRecorder = SkNEW_ARGS(SkRecorder, (SkRecorder::kReadWrite_Mode, record, width, height)); + fRecord = record; +} + +/*static*/ const SkPlayback* SkRecording::Delete(SkRecording* recording) { + const SkRecord* record = recording->fRecord; + SkDELETE(recording); + return SkNEW_ARGS(SkPlayback, (record)); +} + +SkRecording::~SkRecording() { + SkDELETE(fRecorder); +} + +SkCanvas* SkRecording::canvas() { + return fRecorder; +} + +} // namespace EXPERIMENTAL |