Home | History | Annotate | Download | only in dm
      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