Index: dm/DMPDFTask.h |
diff --git a/dm/DMPDFTask.h b/dm/DMPDFTask.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8c3ba1dd1280c41c77f9b05e74111f4b6102f8f1 |
--- /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 |