aboutsummaryrefslogtreecommitdiffhomepage
path: root/dm/DMPDFTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'dm/DMPDFTask.h')
-rw-r--r--dm/DMPDFTask.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/dm/DMPDFTask.h b/dm/DMPDFTask.h
new file mode 100644
index 0000000000..8c3ba1dd12
--- /dev/null
+++ b/dm/DMPDFTask.h
@@ -0,0 +1,47 @@
+#ifndef DMPDFTask_DEFINED
+#define DMPDFTask_DEFINED
+
+#include "DMPDFRasterizeTask.h"
+#include "DMTask.h"
+#include "SkBitmap.h"
+#include "SkPicture.h"
+#include "SkString.h"
+#include "SkTemplates.h"
+#include "gm.h"
+
+namespace DM {
+
+// This task renders a GM or SKP using Skia's PDF backend.
+// If rasterizePdfProc is non-NULL, it will spawn a PDFRasterizeTask.
+class PDFTask : public CpuTask {
+public:
+ PDFTask(const char*,
+ Reporter*,
+ TaskRunner*,
+ skiagm::GMRegistry::Factory,
+ RasterizePdfProc);
+
+ PDFTask(Reporter*,
+ TaskRunner*,
+ const SkPicture*,
+ SkString name,
+ RasterizePdfProc);
+
+ void draw() SK_OVERRIDE;
+
+ bool shouldSkip() const SK_OVERRIDE;
+
+ SkString name() const SK_OVERRIDE { return fName; }
+
+private:
+ // One of these two will be set.
+ SkAutoTDelete<skiagm::GM> fGM;
+ SkAutoTUnref<const SkPicture> fPicture;
+
+ const SkString fName;
+ RasterizePdfProc fRasterize;
+};
+
+} // namespace DM
+
+#endif // DMPDFTask_DEFINED