1c4b21e6c03a6cdb03e116b9f510eb10cf8daedb1commit-bot@chromium.org/*
2c4b21e6c03a6cdb03e116b9f510eb10cf8daedb1commit-bot@chromium.org * Copyright 2014 Google Inc.
3c4b21e6c03a6cdb03e116b9f510eb10cf8daedb1commit-bot@chromium.org *
4c4b21e6c03a6cdb03e116b9f510eb10cf8daedb1commit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be
5c4b21e6c03a6cdb03e116b9f510eb10cf8daedb1commit-bot@chromium.org * found in the LICENSE file.
6c4b21e6c03a6cdb03e116b9f510eb10cf8daedb1commit-bot@chromium.org */
7c4b21e6c03a6cdb03e116b9f510eb10cf8daedb1commit-bot@chromium.org
8887f3979f0c717e69a8b7d169169bc27eb46d3b5mtklein#include "../../include/record/SkRecording.h"
918fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
1018fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org#include "SkRecord.h"
11ad8ce572f69633ffebe2fa486275d82a5e9a71fecommit-bot@chromium.org#include "SkRecordOpts.h"
1218fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org#include "SkRecordDraw.h"
13b17a24fedbec365827b92eb3b4021fd251ba9cb1commit-bot@chromium.org#include "SkRecorder.h"
1418fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
1518fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.orgnamespace EXPERIMENTAL {
1618fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
1718fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.orgSkPlayback::SkPlayback(const SkRecord* record) : fRecord(record) {}
1818fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
19732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.orgSkPlayback::~SkPlayback() {}
2018fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
2118fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.orgvoid SkPlayback::draw(SkCanvas* canvas) const {
22732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.org    SkASSERT(fRecord.get() != NULL);
235ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein    SkRecordDraw(*fRecord, canvas, NULL/*bbh*/, NULL/*callback*/);
2418fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org}
2518fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
26732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.orgSkRecording::SkRecording(int width, int height)
27732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.org    : fRecord(SkNEW(SkRecord))
28a095041f5148dd1e71f38d0546335ed94199104bcommit-bot@chromium.org    , fRecorder(SkNEW_ARGS(SkRecorder, (fRecord.get(), width, height)))
29732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.org    {}
3018fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
31732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.orgSkPlayback* SkRecording::releasePlayback() {
32732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.org    SkASSERT(fRecorder->unique());
33732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.org    fRecorder->forgetRecord();
34732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.org    SkRecordOptimize(fRecord.get());
35732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.org    return SkNEW_ARGS(SkPlayback, (fRecord.detach()));
3618fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org}
3718fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
38732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.orgSkRecording::~SkRecording() {}
3918fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
4018fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.orgSkCanvas* SkRecording::canvas() {
41732bd66ac2aea4bacd1e7e8f33628f7efb50f1d0commit-bot@chromium.org    return fRecord.get() ? fRecorder.get() : NULL;
4218fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org}
4318fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org
4418fd2b923a5060175ab4e446e73a73cba581c20dcommit-bot@chromium.org}  // namespace EXPERIMENTAL
45