aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-04-10 23:30:59 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-04-10 23:30:59 +0000
commit18fd2b923a5060175ab4e446e73a73cba581c20d (patch)
tree9940e91a8469c085c5b39e202215516353df18d8 /src
parentd923288e50b5a69afb0bdd5c161191b24cab8345 (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.cpp44
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