| #ifndef DMRecordTask_DEFINED |
| #define DMRecordTask_DEFINED |
| |
| #include "DMTask.h" |
| #include "SkBitmap.h" |
| #include "SkPicture.h" |
| #include "SkString.h" |
| #include "SkTemplates.h" |
| #include "gm.h" |
| |
| // Records a GM or SKP through an SkRecord, draws it, and compares against the reference bitmap. |
| |
| namespace DM { |
| |
| class RecordTask : public CpuTask { |
| |
| public: |
| enum Mode { |
| kNoOptimize_Mode, |
| kOptimize_Mode, |
| }; |
| RecordTask(const Task& parent, skiagm::GM*, SkBitmap reference, Mode); |
| RecordTask(const Task& parent, SkPicture*, SkBitmap reference, Mode); |
| |
| virtual void draw() SK_OVERRIDE; |
| virtual bool shouldSkip() const SK_OVERRIDE; |
| virtual SkString name() const SK_OVERRIDE { return fName; } |
| |
| private: |
| bool fOptimize; |
| const SkString fName; |
| SkAutoTUnref<SkPicture> fPicture; |
| SkAutoTDelete<skiagm::GM> fGM; |
| const SkBitmap fReference; |
| }; |
| |
| } // namespace DM |
| |
| #endif // DMRecordTask_DEFINED |