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 16 namespace DM { 17 18 PDFRasterizeTask::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 26 void 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