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 12namespace DM { 13 14class QuiltTask : public CpuTask { 15public: 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; 33 virtual SkString name() const SK_OVERRIDE { return fName; } 34 35private: 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