blob: 1420724bb0974257bf979e5c4fba611fe8e33d20 [file] [log] [blame]
commit-bot@chromium.orge3ff5582014-04-01 16:24:06 +00001#ifndef DMRecordTask_DEFINED
2#define DMRecordTask_DEFINED
3
4#include "DMTask.h"
5#include "SkBitmap.h"
commit-bot@chromium.org90b5a2a2014-05-14 17:55:32 +00006#include "SkPicture.h"
commit-bot@chromium.orge3ff5582014-04-01 16:24:06 +00007#include "SkString.h"
8#include "SkTemplates.h"
9#include "gm.h"
10
commit-bot@chromium.org90b5a2a2014-05-14 17:55:32 +000011// Records a GM or SKP through an SkRecord, draws it, and compares against the reference bitmap.
commit-bot@chromium.orge3ff5582014-04-01 16:24:06 +000012
13namespace DM {
14
15class RecordTask : public CpuTask {
16
17public:
commit-bot@chromium.org90b5a2a2014-05-14 17:55:32 +000018 enum Mode {
19 kNoOptimize_Mode,
20 kOptimize_Mode,
21 };
22 RecordTask(const Task& parent, skiagm::GM*, SkBitmap reference, Mode);
23 RecordTask(const Task& parent, SkPicture*, SkBitmap reference, Mode);
commit-bot@chromium.orge3ff5582014-04-01 16:24:06 +000024
25 virtual void draw() SK_OVERRIDE;
26 virtual bool shouldSkip() const SK_OVERRIDE;
27 virtual SkString name() const SK_OVERRIDE { return fName; }
28
29private:
commit-bot@chromium.org90b5a2a2014-05-14 17:55:32 +000030 bool fOptimize;
commit-bot@chromium.orge3ff5582014-04-01 16:24:06 +000031 const SkString fName;
commit-bot@chromium.org90b5a2a2014-05-14 17:55:32 +000032 SkAutoTUnref<SkPicture> fPicture;
commit-bot@chromium.orge3ff5582014-04-01 16:24:06 +000033 SkAutoTDelete<skiagm::GM> fGM;
34 const SkBitmap fReference;
commit-bot@chromium.orge3ff5582014-04-01 16:24:06 +000035};
36
37} // namespace DM
38
39#endif // DMRecordTask_DEFINED