1 #ifndef DMPDFTask_DEFINED 2 #define DMPDFTask_DEFINED 3 4 #include "DMPDFRasterizeTask.h" 5 #include "DMTask.h" 6 #include "SkBitmap.h" 7 #include "SkPicture.h" 8 #include "SkString.h" 9 #include "SkTemplates.h" 10 #include "gm.h" 11 12 namespace DM { 13 14 // This task renders a GM or SKP using Skia's PDF backend. 15 // If rasterizePdfProc is non-NULL, it will spawn a PDFRasterizeTask. 16 class PDFTask : public CpuTask { 17 public: 18 PDFTask(const char*, 19 Reporter*, 20 TaskRunner*, 21 skiagm::GMRegistry::Factory, 22 RasterizePdfProc); 23 24 PDFTask(Reporter*, 25 TaskRunner*, 26 const SkPicture*, 27 SkString name, 28 RasterizePdfProc); 29 30 virtual void draw() SK_OVERRIDE; 31 32 virtual bool shouldSkip() const SK_OVERRIDE; 33 34 virtual SkString name() const SK_OVERRIDE { return fName; } 35 36 private: 37 // One of these two will be set. 38 SkAutoTDelete<skiagm::GM> fGM; 39 SkAutoTUnref<const SkPicture> fPicture; 40 41 const SkString fName; 42 RasterizePdfProc fRasterize; 43 }; 44 45 } // namespace DM 46 47 #endif // DMPDFTask_DEFINED 48