diff options
Diffstat (limited to 'chromium/third_party/skia/dm/DMRecordTask.h')
-rw-r--r-- | chromium/third_party/skia/dm/DMRecordTask.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/chromium/third_party/skia/dm/DMRecordTask.h b/chromium/third_party/skia/dm/DMRecordTask.h new file mode 100644 index 00000000000..1420724bb09 --- /dev/null +++ b/chromium/third_party/skia/dm/DMRecordTask.h @@ -0,0 +1,39 @@ +#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 |