Index: dm/DMWriteTask.cpp |
diff --git a/dm/DMWriteTask.cpp b/dm/DMWriteTask.cpp |
index f8073e3390734c3a8db643e9676d582172bb5023..95f162d313bbce1903a6c3c6508a3e6c0722d37d 100644 |
--- a/dm/DMWriteTask.cpp |
+++ b/dm/DMWriteTask.cpp |
@@ -36,26 +36,22 @@ inline static SkString find_base_name(const Task& parent, SkTArray<SkString>* su |
return SkString(name.c_str(), name.size() - totalSuffixLength); |
} |
-struct JsonData { |
- SkString name; |
- SkString md5; // In ASCII, so 32 bytes long. |
-}; |
-SkTArray<JsonData> gJsonData; |
-SK_DECLARE_STATIC_MUTEX(gJsonDataLock); |
- |
-WriteTask::WriteTask(const Task& parent, SkBitmap bitmap) |
+WriteTask::WriteTask(const Task& parent, const char* sourceType, SkBitmap bitmap) |
: CpuTask(parent) |
- , fFullName(parent.name()) |
, fBaseName(find_base_name(parent, &fSuffixes)) |
+ , fSourceType(sourceType) |
, fBitmap(bitmap) |
, fData(NULL) |
, fExtension(".png") { |
} |
-WriteTask::WriteTask(const Task& parent, SkStreamAsset *data, const char* ext) |
+WriteTask::WriteTask(const Task& parent, |
+ const char* sourceType, |
+ SkStreamAsset *data, |
+ const char* ext) |
: CpuTask(parent) |
- , fFullName(parent.name()) |
, fBaseName(find_base_name(parent, &fSuffixes)) |
+ , fSourceType(sourceType) |
, fData(data) |
, fExtension(ext) { |
SkASSERT(fData.get()); |
@@ -90,6 +86,15 @@ static SkString get_md5(SkStreamAsset* src) { |
return md5; |
} |
+struct JsonData { |
+ SkString name; // E.g. "ninepatch-stretch", "desk-gws_skp" |
+ SkString config; // "gpu", "8888" |
+ SkString sourceType; // "GM", "SKP" |
+ SkString md5; // In ASCII, so 32 bytes long. |
+}; |
+SkTArray<JsonData> gJsonData; |
+SK_DECLARE_STATIC_MUTEX(gJsonDataLock); |
+ |
void WriteTask::draw() { |
if (!fData.get()) { |
fData.reset(encode_to_png(fBitmap)); |
@@ -98,7 +103,7 @@ void WriteTask::draw() { |
} |
} |
- JsonData entry = { fFullName, get_md5(fData) }; |
+ JsonData entry = { fBaseName, fSuffixes[0], fSourceType, get_md5(fData) }; |
{ |
SkAutoMutexAcquire lock(&gJsonDataLock); |
gJsonData.push_back(entry); |
@@ -164,12 +169,25 @@ void WriteTask::DumpJson() { |
return; |
} |
- // FIXME: This JSON format is a complete MVP strawman. |
Json::Value root; |
+ |
+ for (int i = 1; i < FLAGS_properties.count(); i += 2) { |
+ root[FLAGS_properties[i-1]] = FLAGS_properties[i]; |
+ } |
+ for (int i = 1; i < FLAGS_key.count(); i += 2) { |
+ root["key"][FLAGS_key[i-1]] = FLAGS_key[i]; |
+ } |
+ |
{ |
SkAutoMutexAcquire lock(&gJsonDataLock); |
for (int i = 0; i < gJsonData.count(); i++) { |
- root[gJsonData[i].name.c_str()] = gJsonData[i].md5.c_str(); |
+ Json::Value result; |
+ result["key"]["name"] = gJsonData[i].name.c_str(); |
+ result["key"]["config"] = gJsonData[i].config.c_str(); |
+ result["options"]["source_type"] = gJsonData[i].sourceType.c_str(); |
+ result["md5"] = gJsonData[i].md5.c_str(); |
+ |
+ root["results"].append(result); |
} |
} |