|  | /* | 
|  | * Copyright 2014 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  | #include "DMPDFRasterizeTask.h" | 
|  | #include "DMUtil.h" | 
|  | #include "DMWriteTask.h" | 
|  | #include "SkBitmap.h" | 
|  | #include "SkCanvas.h" | 
|  | #include "SkStream.h" | 
|  |  | 
|  | namespace DM { | 
|  |  | 
|  | PDFRasterizeTask::PDFRasterizeTask(const Task& parent, | 
|  | SkStreamAsset* pdf, | 
|  | RasterizePdfProc proc) | 
|  | : CpuTask(parent) | 
|  | , fName(UnderJoin(parent.name().c_str(), "rasterize")) | 
|  | , fPdf(pdf) | 
|  | , fRasterize(proc) { | 
|  | SkASSERT(fPdf.get()); | 
|  | SkASSERT(fPdf->unique()); | 
|  | } | 
|  |  | 
|  | void PDFRasterizeTask::draw() { | 
|  | SkBitmap bitmap; | 
|  |  | 
|  | if (fRasterize(fPdf.get(), &bitmap)) { | 
|  | this->spawnChild(SkNEW_ARGS(WriteTask, (*this, "PDF", bitmap))); | 
|  | } else { | 
|  | this->fail(); | 
|  | } | 
|  | } | 
|  |  | 
|  | }  // namespace DM |