2 * Copyright 2014 Google Inc.
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
8 #include "SkRecording.h"
11 #include "SkRecordOpts.h"
12 #include "SkRecordDraw.h"
13 #include "SkRecorder.h"
15 namespace EXPERIMENTAL {
17 SkPlayback::SkPlayback(const SkRecord* record) : fRecord(record) {}
19 SkPlayback::~SkPlayback() {}
21 void SkPlayback::draw(SkCanvas* canvas) const {
22 SkASSERT(fRecord.get() != NULL);
23 SkRecordDraw(*fRecord, canvas);
26 SkRecording::SkRecording(int width, int height)
27 : fRecord(SkNEW(SkRecord))
28 , fRecorder(SkNEW_ARGS(SkRecorder, (SkRecorder::kReadWrite_Mode, fRecord.get(), width, height)))
31 SkPlayback* SkRecording::releasePlayback() {
32 SkASSERT(fRecorder->unique());
33 fRecorder->forgetRecord();
34 SkRecordOptimize(fRecord.get());
35 return SkNEW_ARGS(SkPlayback, (fRecord.detach()));
38 SkRecording::~SkRecording() {}
40 SkCanvas* SkRecording::canvas() {
41 return fRecord.get() ? fRecorder.get() : NULL;
44 } // namespace EXPERIMENTAL