• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
PDFRasterizeTask(const Task & parent,SkData * pdf,RasterizePdfProc proc)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 
draw()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