130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein/* 230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein * Copyright 2014 Google Inc. 330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein * 430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein * Use of this source code is governed by a BSD-style license that can be 530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein * found in the LICENSE file. 630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein */ 730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "DMPDFRasterizeTask.h" 930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "DMExpectationsTask.h" 1030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "DMUtil.h" 1130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "DMWriteTask.h" 1230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkBitmap.h" 1330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkCanvas.h" 1430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkStream.h" 1530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 1630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinnamespace DM { 1730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 1830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinPDFRasterizeTask::PDFRasterizeTask(const Task& parent, 1930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein SkData* pdf, 2030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein RasterizePdfProc proc) 2130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein : CpuTask(parent) 2230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein , fName(UnderJoin(parent.name().c_str(), "rasterize")) 2330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein , fPdf(SkRef(pdf)) 2430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein , fRasterize(proc) {} 2530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 2630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinvoid PDFRasterizeTask::draw() { 2730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein SkMemoryStream pdfStream(fPdf.get()); 2830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein SkBitmap bitmap; 2930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 30e4d3e605f74a23d050abad29909af421d8b1cf1amtklein if (fRasterize(&pdfStream, &bitmap)) { 3130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein this->spawnChild(SkNEW_ARGS(WriteTask, (*this, bitmap))); 32e4d3e605f74a23d050abad29909af421d8b1cf1amtklein } else { 33e4d3e605f74a23d050abad29909af421d8b1cf1amtklein this->fail(); 3430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein } 3530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein} 3630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 3730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein} // namespace DM 38