summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/dm/DMRecordTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/dm/DMRecordTask.h')
-rw-r--r--chromium/third_party/skia/dm/DMRecordTask.h39
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