1a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com#ifndef DMWriteTask_DEFINED 2a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com#define DMWriteTask_DEFINED 3a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com 499589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org#include "DMExpectations.h" 5a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com#include "DMTask.h" 6a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com#include "SkBitmap.h" 7a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com#include "SkString.h" 8d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#include "SkTArray.h" 9a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com 1099589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org 11a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com// Writes a bitmap to a file. 12a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com 13a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.comnamespace DM { 14a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com 15ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgclass WriteTask : public CpuTask { 16a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com 17a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.compublic: 1830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein WriteTask(const Task& parent, // WriteTask must be a child task. 1930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein SkBitmap bitmap); // Bitmap to encode to PNG and write to disk. 2030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 2130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein WriteTask(const Task& parent, // WriteTask must be a child task. 2230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein SkData *data, // Pre-encoded data to write to disk. 2330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein const char* ext); // File extension. 24a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com 25a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com virtual void draw() SK_OVERRIDE; 26a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com virtual bool shouldSkip() const SK_OVERRIDE; 27a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com virtual SkString name() const SK_OVERRIDE; 28a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com 2999589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org // Reads image files WriteTask wrote under root and compares them with bitmap. 3099589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org class Expectations : public DM::Expectations { 3199589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org public: 3299589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org explicit Expectations(const char* root) : fRoot(root) {} 3399589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org 3499589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org bool check(const Task& task, SkBitmap bitmap) const SK_OVERRIDE; 3599589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org private: 3699589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org const char* fRoot; 3799589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org }; 3899589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org 39a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.comprivate: 40d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com SkTArray<SkString> fSuffixes; 4130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein const SkString fGmName; 42a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com const SkBitmap fBitmap; 4330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein SkAutoTUnref<SkData> fData; 4430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein const char* fExtension; 45d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com 46d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com void makeDirOrFail(SkString dir); 47a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com}; 48a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com 49a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com} // namespace DM 50a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com 51a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com#endif // DMWriteTask_DEFINED 52