#include "DMRecordTask.h" #include "DMSKPTask.h" #include "DMUtil.h" #include "DMWriteTask.h" namespace DM { // foo_bar.skp -> foo-bar_skp static SkString filename_to_task_name(SkString filename) { for (size_t i = 0; i < filename.size(); i++) { if ('_' == filename[i]) { filename[i] = '-'; } if ('.' == filename[i]) { filename[i] = '_'; } } return filename; } SKPTask::SKPTask(Reporter* r, TaskRunner* tr, SkPicture* pic, SkString filename) : CpuTask(r, tr), fPicture(SkRef(pic)), fName(filename_to_task_name(filename)) {} void SKPTask::draw() { SkBitmap bitmap; AllocatePixels(kN32_SkColorType, fPicture->width(), fPicture->height(), &bitmap); DrawPicture(fPicture, &bitmap); this->spawnChild(SkNEW_ARGS(RecordTask, (*this, fPicture, bitmap, RecordTask::kNoOptimize_Mode))); this->spawnChild(SkNEW_ARGS(RecordTask, (*this, fPicture, bitmap, RecordTask::kOptimize_Mode))); this->spawnChild(SkNEW_ARGS(WriteTask, (*this, bitmap))); } } // namespace DM