blob: 79d82166f7a66f9d45fc29f601360f25a4070d51 [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,
19 kQuadTree_BBH,
20 kTileGrid_BBH,
21 };
22 enum Backend {
23 kDefault_Backend,
24 kSkRecord_Backend,
mtklein7cdc1ee2014-07-07 10:41:04 -070025 };
26
27 QuiltTask(const Task& parent, // QuiltTask must be a child task. Pass its parent here.
28 skiagm::GM*, // GM to run through a picture. Takes ownership.
29 SkBitmap reference, // Bitmap to compare picture replay results to.
mtklein5ad6ee12014-08-11 08:08:43 -070030 BBH, Backend);
commit-bot@chromium.orga90c6802014-04-30 13:20:45 +000031
32 virtual void draw() SK_OVERRIDE;
33 virtual bool shouldSkip() const SK_OVERRIDE;
34 virtual SkString name() const SK_OVERRIDE { return fName; }
35
36private:
mtklein5ad6ee12014-08-11 08:08:43 -070037 const BBH fBBH;
38 const Backend fBackend;
commit-bot@chromium.orga90c6802014-04-30 13:20:45 +000039 const SkString fName;
40 SkAutoTDelete<skiagm::GM> fGM;
41 const SkBitmap fReference;
42};
43
44} // namespace DM
45
46#endif // DMReplayTask_DEFINED