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