OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 /* | 8 /* |
9 * Code for the "gm" (Golden Master) rendering comparison tool. | 9 * Code for the "gm" (Golden Master) rendering comparison tool. |
10 * | 10 * |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 | 185 |
186 const static ErrorCombination kDefaultIgnorableErrorTypes = ErrorCombination() | 186 const static ErrorCombination kDefaultIgnorableErrorTypes = ErrorCombination() |
187 .plus(kMissingExpectations_ErrorType) | 187 .plus(kMissingExpectations_ErrorType) |
188 .plus(kIntentionallySkipped_ErrorType); | 188 .plus(kIntentionallySkipped_ErrorType); |
189 | 189 |
190 class GMMain { | 190 class GMMain { |
191 public: | 191 public: |
192 GMMain() : fUseFileHierarchy(false), fIgnorableErrorTypes(kDefaultIgnorableE
rrorTypes), | 192 GMMain() : fUseFileHierarchy(false), fIgnorableErrorTypes(kDefaultIgnorableE
rrorTypes), |
193 fMismatchPath(NULL), fTestsRun(0), fRenderModesEncountered(1) {} | 193 fMismatchPath(NULL), fTestsRun(0), fRenderModesEncountered(1) {} |
194 | 194 |
| 195 SkString make_filename(const char path[], |
| 196 const char renderModeDescriptor[], |
| 197 const char *name, |
| 198 const char suffix[]) { |
| 199 SkString filename(name); |
| 200 filename.append(renderModeDescriptor); |
| 201 filename.appendUnichar('.'); |
| 202 filename.append(suffix); |
| 203 return SkPathJoin(path, filename.c_str()); |
| 204 } |
| 205 |
195 SkString make_name(const char shortName[], const char configName[]) { | 206 SkString make_name(const char shortName[], const char configName[]) { |
196 SkString name; | 207 SkString name; |
197 if (0 == strlen(configName)) { | 208 if (0 == strlen(configName)) { |
198 name.append(shortName); | 209 name.append(shortName); |
199 } else if (fUseFileHierarchy) { | 210 } else if (fUseFileHierarchy) { |
200 name.appendf("%s%c%s", configName, SkPATH_SEPARATOR, shortName); | 211 name.appendf("%s%c%s", configName, SkPATH_SEPARATOR, shortName); |
201 } else { | 212 } else { |
202 name.appendf("%s_%s", shortName, configName); | 213 name.appendf("%s_%s", shortName, configName); |
203 } | 214 } |
204 return name; | 215 return name; |
(...skipping 1358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1563 SkBitmap bitmap; | 1574 SkBitmap bitmap; |
1564 gmmain.generate_image_from_picture(gm, compareConfig, repict, &bitma
p); | 1575 gmmain.generate_image_from_picture(gm, compareConfig, repict, &bitma
p); |
1565 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma
p( | 1576 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma
p( |
1566 name, renderModeDescriptor, bitmap, &comparisonBitmap)); | 1577 name, renderModeDescriptor, bitmap, &comparisonBitmap)); |
1567 } | 1578 } |
1568 } | 1579 } |
1569 | 1580 |
1570 if ((1 == FLAGS_writePicturePath.count()) && | 1581 if ((1 == FLAGS_writePicturePath.count()) && |
1571 !(gmFlags & GM::kSkipPicture_Flag)) { | 1582 !(gmFlags & GM::kSkipPicture_Flag)) { |
1572 const char* pictureSuffix = "skp"; | 1583 const char* pictureSuffix = "skp"; |
1573 SkString path = make_filename(FLAGS_writePicturePath[0], "", | 1584 SkString path = gmmain.make_filename(FLAGS_writePicturePath[0], "", |
1574 gm->shortName(), pictureSuffix); | 1585 gm->shortName(), pictureSuffix); |
1575 SkFILEWStream stream(path.c_str()); | 1586 SkFILEWStream stream(path.c_str()); |
1576 pict->serialize(&stream); | 1587 pict->serialize(&stream); |
1577 } | 1588 } |
1578 | 1589 |
1579 if (FLAGS_rtree) { | 1590 if (FLAGS_rtree) { |
1580 const char renderModeDescriptor[] = "-rtree"; | 1591 const char renderModeDescriptor[] = "-rtree"; |
1581 if (gmFlags & GM::kSkipPicture_Flag) { | 1592 if (gmFlags & GM::kSkipPicture_Flag) { |
1582 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, name, rend
erModeDescriptor); | 1593 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, name, rend
erModeDescriptor); |
1583 errorsForAllModes.add(kIntentionallySkipped_ErrorType); | 1594 errorsForAllModes.add(kIntentionallySkipped_ErrorType); |
1584 } else { | 1595 } else { |
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2045 if (FLAGS_forceBWtext) { | 2056 if (FLAGS_forceBWtext) { |
2046 canvas->setDrawFilter(SkNEW(BWTextDrawFilter))->unref(); | 2057 canvas->setDrawFilter(SkNEW(BWTextDrawFilter))->unref(); |
2047 } | 2058 } |
2048 } | 2059 } |
2049 | 2060 |
2050 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) | 2061 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) |
2051 int main(int argc, char * const argv[]) { | 2062 int main(int argc, char * const argv[]) { |
2052 return tool_main(argc, (char**) argv); | 2063 return tool_main(argc, (char**) argv); |
2053 } | 2064 } |
2054 #endif | 2065 #endif |
OLD | NEW |