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