aboutsummaryrefslogtreecommitdiffhomepage
path: root/dm/DMPDFRasterizeTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'dm/DMPDFRasterizeTask.h')
-rw-r--r--dm/DMPDFRasterizeTask.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/dm/DMPDFRasterizeTask.h b/dm/DMPDFRasterizeTask.h
new file mode 100644
index 0000000000..8148499061
--- /dev/null
+++ b/dm/DMPDFRasterizeTask.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2014 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef DMPDFRasterizeTask_DEFINED
+#define DMPDFRasterizeTask_DEFINED
+
+#include "DMTask.h"
+#include "SkBitmap.h"
+#include "SkData.h"
+#include "SkStream.h"
+#include "SkString.h"
+#include "SkTemplates.h"
+
+namespace DM {
+
+typedef bool (*RasterizePdfProc)(SkStream* pdf, SkBitmap* output);
+
+class PDFRasterizeTask : public CpuTask {
+public:
+ // takes ownership of SkStreamAsset.
+ PDFRasterizeTask(const Task& parent,
+ SkStreamAsset* pdf,
+ RasterizePdfProc);
+
+ void draw() SK_OVERRIDE;
+ bool shouldSkip() const SK_OVERRIDE { return NULL == fRasterize; }
+ SkString name() const SK_OVERRIDE { return fName; }
+
+private:
+ const SkString fName;
+ SkAutoTDelete<SkStreamAsset> fPdf;
+ RasterizePdfProc fRasterize;
+};
+
+} // namespace DM
+
+#endif // DMPDFRasterizeTask_DEFINED