1#ifndef DMRecordTask_DEFINED 2#define DMRecordTask_DEFINED 3 4#include "DMTask.h" 5#include "SkBitmap.h" 6#include "SkPicture.h" 7#include "SkString.h" 8#include "SkTemplates.h" 9#include "gm.h" 10 11// Records a GM or SKP through an SkRecord, draws it, and compares against the reference bitmap. 12 13namespace DM { 14 15class RecordTask : public CpuTask { 16 17public: 18 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); 24 25 virtual void draw() SK_OVERRIDE; 26 virtual bool shouldSkip() const SK_OVERRIDE; 27 virtual SkString name() const SK_OVERRIDE { return fName; } 28 29private: 30 bool fOptimize; 31 const SkString fName; 32 SkAutoTUnref<SkPicture> fPicture; 33 SkAutoTDelete<skiagm::GM> fGM; 34 const SkBitmap fReference; 35}; 36 37} // namespace DM 38 39#endif // DMRecordTask_DEFINED 40