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