#include "DMSKPTask.h" #include "DMUtil.h" #include "DMWriteTask.h" #include "SkCommandLineFlags.h" #include "SkPictureRecorder.h" DEFINE_int32(skpMaxWidth, 1000, "Max SKPTask viewport width."); DEFINE_int32(skpMaxHeight, 1000, "Max SKPTask viewport height."); namespace DM { SKPTask::SKPTask(Reporter* r, TaskRunner* tr, const SkPicture* pic, SkString filename) : CpuTask(r, tr), fPicture(SkRef(pic)), fName(FileToTaskName(filename)) {} void SKPTask::draw() { const int width = SkTMin(SkScalarCeilToInt(fPicture->cullRect().width()), FLAGS_skpMaxWidth), height = SkTMin(SkScalarCeilToInt(fPicture->cullRect().height()), FLAGS_skpMaxHeight); SkBitmap bitmap; AllocatePixels(kN32_SkColorType, width, height, &bitmap); DrawPicture(*fPicture, &bitmap); this->spawnChild(SkNEW_ARGS(WriteTask, (*this, bitmap))); } } // namespace DM