1/* 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 8#include "DMPDFRasterizeTask.h" 9#include "DMExpectationsTask.h" 10#include "DMUtil.h" 11#include "DMWriteTask.h" 12#include "SkBitmap.h" 13#include "SkCanvas.h" 14#include "SkStream.h" 15 16namespace DM { 17 18PDFRasterizeTask::PDFRasterizeTask(const Task& parent, 19 SkData* pdf, 20 RasterizePdfProc proc) 21 : CpuTask(parent) 22 , fName(UnderJoin(parent.name().c_str(), "rasterize")) 23 , fPdf(SkRef(pdf)) 24 , fRasterize(proc) {} 25 26void PDFRasterizeTask::draw() { 27 SkMemoryStream pdfStream(fPdf.get()); 28 SkBitmap bitmap; 29 30 if (fRasterize(&pdfStream, &bitmap)) { 31 this->spawnChild(SkNEW_ARGS(WriteTask, (*this, bitmap))); 32 } else { 33 this->fail(); 34 } 35} 36 37} // namespace DM 38