blob: c5e5c10271d9db0f7e67e7bc34244d83b2202c60 [file] [log] [blame]
commit-bot@chromium.orga90c6802014-04-30 13:20:45 +00001#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 {
commit-bot@chromium.orga90c6802014-04-30 13:20:45 +000015public:
mtklein5ad6ee12014-08-11 08:08:43 -070016 enum BBH {
17 kNone_BBH,
18 kRTree_BBH,
mtklein5ad6ee12014-08-11 08:08:43 -070019 kTileGrid_BBH,
20 };
mtklein7cdc1ee2014-07-07 10:41:04 -070021
22 QuiltTask(const Task& parent, // QuiltTask must be a child task. Pass its parent here.
23 skiagm::GM*, // GM to run through a picture. Takes ownership.
24 SkBitmap reference, // Bitmap to compare picture replay results to.
mtkleina9ceaf52014-09-29 08:44:46 -070025 BBH);
commit-bot@chromium.orga90c6802014-04-30 13:20:45 +000026
27 virtual void draw() SK_OVERRIDE;
28 virtual bool shouldSkip() const SK_OVERRIDE;
29 virtual SkString name() const SK_OVERRIDE { return fName; }
30
31private:
mtklein5ad6ee12014-08-11 08:08:43 -070032 const BBH fBBH;
commit-bot@chromium.orga90c6802014-04-30 13:20:45 +000033 const SkString fName;
34 SkAutoTDelete<skiagm::GM> fGM;
35 const SkBitmap fReference;
36};
37
38} // namespace DM
39
40#endif // DMReplayTask_DEFINED