diff options
Diffstat (limited to 'dm/DMWriteTask.h')
-rw-r--r-- | dm/DMWriteTask.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/dm/DMWriteTask.h b/dm/DMWriteTask.h new file mode 100644 index 0000000000..fb80058fd0 --- /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 |