blob: 368ebb2fb314f453046a87e75b2bfa668094f385 [file] [log] [blame]
commit-bot@chromium.orgc4b21e62014-04-11 18:33:31 +00001/*
2 * Copyright 2014 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
mtklein887f3972014-06-17 12:08:15 -07008#include "../../include/record/SkRecording.h"
commit-bot@chromium.org18fd2b92014-04-10 23:30:59 +00009
10#include "SkRecord.h"
commit-bot@chromium.orgad8ce572014-04-21 15:03:36 +000011#include "SkRecordOpts.h"
commit-bot@chromium.org18fd2b92014-04-10 23:30:59 +000012#include "SkRecordDraw.h"
commit-bot@chromium.orgb17a24f2014-04-14 20:33:05 +000013#include "SkRecorder.h"
commit-bot@chromium.org18fd2b92014-04-10 23:30:59 +000014
15namespace EXPERIMENTAL {
16
17SkPlayback::SkPlayback(const SkRecord* record) : fRecord(record) {}
18
commit-bot@chromium.org732bd662014-04-24 15:22:55 +000019SkPlayback::~SkPlayback() {}
commit-bot@chromium.org18fd2b92014-04-10 23:30:59 +000020
21void SkPlayback::draw(SkCanvas* canvas) const {
commit-bot@chromium.org732bd662014-04-24 15:22:55 +000022 SkASSERT(fRecord.get() != NULL);
mtklein5ad6ee12014-08-11 08:08:43 -070023 SkRecordDraw(*fRecord, canvas, NULL/*bbh*/, NULL/*callback*/);
commit-bot@chromium.org18fd2b92014-04-10 23:30:59 +000024}
25
commit-bot@chromium.org732bd662014-04-24 15:22:55 +000026SkRecording::SkRecording(int width, int height)
27 : fRecord(SkNEW(SkRecord))
commit-bot@chromium.orga0950412014-05-29 16:52:40 +000028 , fRecorder(SkNEW_ARGS(SkRecorder, (fRecord.get(), width, height)))
commit-bot@chromium.org732bd662014-04-24 15:22:55 +000029 {}
30
31SkPlayback* SkRecording::releasePlayback() {
32 SkASSERT(fRecorder->unique());
33 fRecorder->forgetRecord();
34 SkRecordOptimize(fRecord.get());
35 return SkNEW_ARGS(SkPlayback, (fRecord.detach()));
commit-bot@chromium.org18fd2b92014-04-10 23:30:59 +000036}
37
commit-bot@chromium.org732bd662014-04-24 15:22:55 +000038SkRecording::~SkRecording() {}
commit-bot@chromium.org18fd2b92014-04-10 23:30:59 +000039
40SkCanvas* SkRecording::canvas() {
commit-bot@chromium.org732bd662014-04-24 15:22:55 +000041 return fRecord.get() ? fRecorder.get() : NULL;
commit-bot@chromium.org18fd2b92014-04-10 23:30:59 +000042}
43
44} // namespace EXPERIMENTAL