OLD | NEW |
1 #include "DMWriteTask.h" | 1 #include "DMWriteTask.h" |
2 | 2 |
3 #include "DMUtil.h" | 3 #include "DMUtil.h" |
4 #include "SkColorPriv.h" | 4 #include "SkColorPriv.h" |
5 #include "SkCommonFlags.h" | 5 #include "SkCommonFlags.h" |
6 #include "SkData.h" | 6 #include "SkData.h" |
7 #include "SkImageEncoder.h" | 7 #include "SkImageEncoder.h" |
8 #include "SkMD5.h" | 8 #include "SkMD5.h" |
9 #include "SkMallocPixelRef.h" | 9 #include "SkMallocPixelRef.h" |
10 #include "SkOSFile.h" | 10 #include "SkOSFile.h" |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 hasher.finish(digest); | 71 hasher.finish(digest); |
72 | 72 |
73 SkString md5; | 73 SkString md5; |
74 for (int i = 0; i < 16; i++) { | 74 for (int i = 0; i < 16; i++) { |
75 md5.appendf("%02x", digest.data[i]); | 75 md5.appendf("%02x", digest.data[i]); |
76 } | 76 } |
77 return md5; | 77 return md5; |
78 } | 78 } |
79 | 79 |
80 struct JsonData { | 80 struct JsonData { |
81 SkString name; // E.g. "ninepatch-stretch", "desk-gws_skp" | 81 SkString name; // E.g. "ninepatch-stretch", "desk-gws_skp" |
82 SkString config; // "gpu", "8888" | 82 SkString config; // "gpu", "8888" |
83 SkString sourceType; // "GM", "SKP" | 83 SkString mode; // "direct", "default-tilegrid", "pipe" |
84 SkString md5; // In ASCII, so 32 bytes long. | 84 SkString sourceType; // "GM", "SKP" |
| 85 SkString md5; // In ASCII, so 32 bytes long. |
85 }; | 86 }; |
86 SkTArray<JsonData> gJsonData; | 87 SkTArray<JsonData> gJsonData; |
87 SK_DECLARE_STATIC_MUTEX(gJsonDataLock); | 88 SK_DECLARE_STATIC_MUTEX(gJsonDataLock); |
88 | 89 |
89 void WriteTask::draw() { | 90 void WriteTask::draw() { |
90 SkString md5; | 91 SkString md5; |
91 { | 92 { |
92 SkAutoLockPixels lock(fBitmap); | 93 SkAutoLockPixels lock(fBitmap); |
93 md5 = fData ? get_md5(fData->getMemoryBase(), fData->getLength()) | 94 md5 = fData ? get_md5(fData->getMemoryBase(), fData->getLength()) |
94 : get_md5(fBitmap.getPixels(), fBitmap.getSize()); | 95 : get_md5(fBitmap.getPixels(), fBitmap.getSize()); |
95 } | 96 } |
96 | 97 |
97 JsonData entry = { fBaseName, fSuffixes[0], fSourceType, md5 }; | 98 SkASSERT(fSuffixes.count() > 0); |
| 99 SkString config = fSuffixes.back(); |
| 100 SkString mode("direct"); |
| 101 if (fSuffixes.count() > 1) { |
| 102 mode = fSuffixes.fromBack(1); |
| 103 } |
| 104 |
| 105 JsonData entry = { fBaseName, config, mode, fSourceType, md5 }; |
98 { | 106 { |
99 SkAutoMutexAcquire lock(&gJsonDataLock); | 107 SkAutoMutexAcquire lock(&gJsonDataLock); |
100 gJsonData.push_back(entry); | 108 gJsonData.push_back(entry); |
101 } | 109 } |
102 | 110 |
103 SkString dir(FLAGS_writePath[0]); | 111 SkString dir(FLAGS_writePath[0]); |
104 #if SK_BUILD_FOR_IOS | 112 #if SK_BUILD_FOR_IOS |
105 if (dir.equals("@")) { | 113 if (dir.equals("@")) { |
106 dir.set(FLAGS_resourcePath[0]); | 114 dir.set(FLAGS_resourcePath[0]); |
107 } | 115 } |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 for (int i = 1; i < FLAGS_key.count(); i += 2) { | 177 for (int i = 1; i < FLAGS_key.count(); i += 2) { |
170 root["key"][FLAGS_key[i-1]] = FLAGS_key[i]; | 178 root["key"][FLAGS_key[i-1]] = FLAGS_key[i]; |
171 } | 179 } |
172 | 180 |
173 { | 181 { |
174 SkAutoMutexAcquire lock(&gJsonDataLock); | 182 SkAutoMutexAcquire lock(&gJsonDataLock); |
175 for (int i = 0; i < gJsonData.count(); i++) { | 183 for (int i = 0; i < gJsonData.count(); i++) { |
176 Json::Value result; | 184 Json::Value result; |
177 result["key"]["name"] = gJsonData[i].name.c_str(); | 185 result["key"]["name"] = gJsonData[i].name.c_str(); |
178 result["key"]["config"] = gJsonData[i].config.c_str(); | 186 result["key"]["config"] = gJsonData[i].config.c_str(); |
| 187 result["key"]["mode"] = gJsonData[i].mode.c_str(); |
179 result["options"]["source_type"] = gJsonData[i].sourceType.c_str(); | 188 result["options"]["source_type"] = gJsonData[i].sourceType.c_str(); |
180 result["md5"] = gJsonData[i].md5.c_str(); | 189 result["md5"] = gJsonData[i].md5.c_str(); |
181 | 190 |
182 root["results"].append(result); | 191 root["results"].append(result); |
183 } | 192 } |
184 } | 193 } |
185 | 194 |
186 SkString path = SkOSPath::Join(FLAGS_writePath[0], "dm.json"); | 195 SkString path = SkOSPath::Join(FLAGS_writePath[0], "dm.json"); |
187 SkFILEWStream stream(path.c_str()); | 196 SkFILEWStream stream(path.c_str()); |
188 stream.writeText(Json::StyledWriter().write(root).c_str()); | 197 stream.writeText(Json::StyledWriter().write(root).c_str()); |
189 stream.flush(); | 198 stream.flush(); |
190 } | 199 } |
191 | 200 |
192 } // namespace DM | 201 } // namespace DM |
OLD | NEW |