• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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