Index: dm/DMWriteTask.h |
diff --git a/dm/DMWriteTask.h b/dm/DMWriteTask.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fb80058fd092f89914e471badd43f92b8c76da79 |
--- /dev/null |
+++ b/dm/DMWriteTask.h |
@@ -0,0 +1,45 @@ |
+#ifndef DMWriteTask_DEFINED |
+#define DMWriteTask_DEFINED |
+ |
+#include "DMTask.h" |
+#include "SkBitmap.h" |
+#include "SkStream.h" |
+#include "SkString.h" |
+#include "SkTArray.h" |
+ |
+ |
+// Writes a bitmap to a file. |
+ |
+namespace DM { |
+ |
+class WriteTask : public CpuTask { |
+ |
+public: |
+ WriteTask(const Task& parent, // WriteTask must be a child task. |
+ const char* sourceType, // E.g. "GM", "SKP". For humans. |
+ SkBitmap bitmap); // Bitmap to encode to PNG and write to disk. |
+ |
+ // Takes ownership of SkStreamAsset |
+ WriteTask(const Task& parent, // WriteTask must be a child task. |
+ const char* sourceType, // E.g. "GM", "SKP". For humans. |
+ SkStreamAsset* data, // Pre-encoded data to write to disk. |
+ const char* ext); // File extension. |
+ |
+ void draw() SK_OVERRIDE; |
+ bool shouldSkip() const SK_OVERRIDE; |
+ SkString name() const SK_OVERRIDE; |
+ |
+private: |
+ SkTArray<SkString> fSuffixes; |
+ const SkString fBaseName; |
+ const SkString fSourceType; |
+ const SkBitmap fBitmap; |
+ SkAutoTDelete<SkStreamAsset> fData; |
+ const char* fExtension; |
+ |
+ void makeDirOrFail(SkString dir); |
+}; |
+ |
+} // namespace DM |
+ |
+#endif // DMWriteTask_DEFINED |