DM: add pdf
BUG=skia:2598
R=halcanary@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/312873002
diff --git a/dm/DMPDFTask.h b/dm/DMPDFTask.h
new file mode 100644
index 0000000..d273df6
--- /dev/null
+++ b/dm/DMPDFTask.h
@@ -0,0 +1,40 @@
+#ifndef DMPDFTask_DEFINED
+#define DMPDFTask_DEFINED
+
+#include "DMPDFRasterizeTask.h"
+#include "DMExpectations.h"
+#include "DMTask.h"
+#include "SkBitmap.h"
+#include "SkString.h"
+#include "SkTemplates.h"
+#include "gm.h"
+
+namespace DM {
+
+// This task renders a GM using Skia's PDF backend.
+// If rasterizePdfProc is non-NULL, it will spawn a PDFRasterizeTask.
+class PDFTask : public CpuTask {
+public:
+ PDFTask(const char* suffix,
+ Reporter*,
+ TaskRunner*,
+ const Expectations&,
+ skiagm::GMRegistry::Factory,
+ RasterizePdfProc);
+
+ virtual void draw() SK_OVERRIDE;
+
+ virtual bool shouldSkip() const SK_OVERRIDE;
+
+ virtual SkString name() const SK_OVERRIDE { return fName; }
+
+private:
+ SkAutoTDelete<skiagm::GM> fGM;
+ const SkString fName;
+ const Expectations& fExpectations;
+ RasterizePdfProc fRasterize;
+};
+
+} // namespace DM
+
+#endif // DMPDFTask_DEFINED