#ifndef DMQuiltTask_DEFINED #define DMQuiltTask_DEFINED #include "DMTask.h" #include "SkBitmap.h" #include "SkString.h" #include "SkTemplates.h" #include "gm.h" // Records a GM through an SkPicture, draws it in tiles, and compares against the reference bitmap. namespace DM { class QuiltTask : public CpuTask { public: enum BBH { kNone_BBH, kRTree_BBH, kTileGrid_BBH, }; enum Backend { kDefault_Backend, kSkRecord_Backend, }; QuiltTask(const Task& parent, // QuiltTask must be a child task. Pass its parent here. skiagm::GM*, // GM to run through a picture. Takes ownership. SkBitmap reference, // Bitmap to compare picture replay results to. BBH, Backend); virtual void draw() SK_OVERRIDE; virtual bool shouldSkip() const SK_OVERRIDE; virtual SkString name() const SK_OVERRIDE { return fName; } private: const BBH fBBH; const Backend fBackend; const SkString fName; SkAutoTDelete fGM; const SkBitmap fReference; }; } // namespace DM #endif // DMReplayTask_DEFINED