blob: 2e24b894e7a05642bbcdfc4f188492da87341262 [file] [log] [blame]
mtklein30bf3e22014-06-03 13:57:14 -07001/*
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#ifndef DMPDFRasterizeTask_DEFINED
9#define DMPDFRasterizeTask_DEFINED
10
11#include "DMExpectations.h"
12#include "DMTask.h"
13#include "SkBitmap.h"
14#include "SkData.h"
15#include "SkStream.h"
16#include "SkString.h"
17#include "SkTemplates.h"
18
19namespace DM {
20
21typedef bool (*RasterizePdfProc)(SkStream* pdf, SkBitmap* output);
22
23class PDFRasterizeTask : public CpuTask {
24public:
25 PDFRasterizeTask(const Task& parent,
26 SkData* pdf,
27 const Expectations&,
28 RasterizePdfProc);
29
30 virtual void draw() SK_OVERRIDE;
31 virtual bool shouldSkip() const SK_OVERRIDE { return NULL == fRasterize; }
32 virtual SkString name() const SK_OVERRIDE { return fName; }
33
34private:
35 const SkString fName;
36 SkAutoTUnref<SkData> fPdf;
37 const Expectations& fExpectations;
38 RasterizePdfProc fRasterize;
39};
40
41} // namespace DM
42
43#endif // DMPDFRasterizeTask_DEFINED