blob: 0b49d12df289ceb40cc4b6c3bd34fd1961a4972b [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 };
21 enum Backend {
22 kDefault_Backend,
23 kSkRecord_Backend,
mtklein7cdc1ee2014-07-07 10:41:04 -070024 };
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.
mtklein5ad6ee12014-08-11 08:08:43 -070029 BBH, Backend);
commit-bot@chromium.orga90c6802014-04-30 13:20:45 +000030
31 virtual void draw() SK_OVERRIDE;
32 virtual bool shouldSkip() const SK_OVERRIDE;
33 virtual SkString name() const SK_OVERRIDE { return fName; }
34
35private:
mtklein5ad6ee12014-08-11 08:08:43 -070036 const BBH fBBH;
37 const Backend fBackend;
commit-bot@chromium.orga90c6802014-04-30 13:20:45 +000038 const SkString fName;
39 SkAutoTDelete<skiagm::GM> fGM;
40 const SkBitmap fReference;
41};
42
43} // namespace DM
44
45#endif // DMReplayTask_DEFINED