| #ifndef DMWriteTask_DEFINED |
| #define DMWriteTask_DEFINED |
| |
| #include "DMTask.h" |
| #include "SkBitmap.h" |
| #include "SkJSONCPP.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. |
| |
| virtual void draw() SK_OVERRIDE; |
| virtual bool shouldSkip() const SK_OVERRIDE; |
| virtual SkString name() const SK_OVERRIDE; |
| |
| static void DumpJson(); |
| |
| 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 |