|  | #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, | 
|  | kQuadTree_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<skiagm::GM> fGM; | 
|  | const SkBitmap fReference; | 
|  | }; | 
|  |  | 
|  | }  // namespace DM | 
|  |  | 
|  | #endif  // DMReplayTask_DEFINED |