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 13namespace 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. 17class PDFTask : public CpuTask { 18public: 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 35 virtual SkString name() const SK_OVERRIDE { return fName; } 36 37private: 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