1 #ifndef DMQuiltTask_DEFINED 2 #define DMQuiltTask_DEFINED 3 4 #include "DMTask.h" 5 #include "SkBitmap.h" 6 #include "SkString.h" 7 #include "SkTemplates.h" 8 #include "gm.h" 9 10 // Records a GM through an SkPicture, draws it in tiles, and compares against the reference bitmap. 11 12 namespace DM { 13 14 class QuiltTask : public CpuTask { 15 public: 16 enum BBH { 17 kNone_BBH, 18 kRTree_BBH, 19 kTileGrid_BBH, 20 }; 21 enum Backend { 22 kDefault_Backend, 23 kSkRecord_Backend, 24 }; 25 26 QuiltTask(const Task& parent, // QuiltTask must be a child task. Pass its parent here. 27 skiagm::GM*, // GM to run through a picture. Takes ownership. 28 SkBitmap reference, // Bitmap to compare picture replay results to. 29 BBH, Backend); 30 31 virtual void draw() SK_OVERRIDE; 32 virtual bool shouldSkip() const SK_OVERRIDE; name()33 virtual SkString name() const SK_OVERRIDE { return fName; } 34 35 private: 36 const BBH fBBH; 37 const Backend fBackend; 38 const SkString fName; 39 SkAutoTDelete<skiagm::GM> fGM; 40 const SkBitmap fReference; 41 }; 42 43 } // namespace DM 44 45 #endif // DMReplayTask_DEFINED 46