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 1563 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1574 const SkTDArray<SkScalar> &tileGridReplaySca
les); | 1574 const SkTDArray<SkScalar> &tileGridReplaySca
les); |
1575 ErrorCombination run_multiple_modes(GMMain &gmmain, GM *gm, const ConfigData &co
mpareConfig, | 1575 ErrorCombination run_multiple_modes(GMMain &gmmain, GM *gm, const ConfigData &co
mpareConfig, |
1576 const SkBitmap &comparisonBitmap, | 1576 const SkBitmap &comparisonBitmap, |
1577 const SkTDArray<SkScalar> &tileGridReplaySca
les) { | 1577 const SkTDArray<SkScalar> &tileGridReplaySca
les) { |
1578 ErrorCombination errorsForAllModes; | 1578 ErrorCombination errorsForAllModes; |
1579 uint32_t gmFlags = gm->getFlags(); | 1579 uint32_t gmFlags = gm->getFlags(); |
1580 const SkString shortNamePlusConfig = gmmain.make_shortname_plus_config(gm->g
etName(), | 1580 const SkString shortNamePlusConfig = gmmain.make_shortname_plus_config(gm->g
etName(), |
1581 compa
reConfig.fName); | 1581 compa
reConfig.fName); |
1582 | 1582 |
1583 SkPicture* pict = gmmain.generate_new_picture(gm, kNone_BbhType, 0); | 1583 SkPicture* pict = gmmain.generate_new_picture(gm, kNone_BbhType, 0); |
1584 SkAutoUnref aur(pict); | 1584 SkAutoTUnref<SkPicture> aur(pict); |
1585 if (FLAGS_replay) { | 1585 if (FLAGS_replay) { |
1586 const char renderModeDescriptor[] = "-replay"; | 1586 const char renderModeDescriptor[] = "-replay"; |
1587 if (gmFlags & GM::kSkipPicture_Flag) { | 1587 if (gmFlags & GM::kSkipPicture_Flag) { |
1588 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, shortNameP
lusConfig, | 1588 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, shortNameP
lusConfig, |
1589 renderModeDescriptor); | 1589 renderModeDescriptor); |
1590 errorsForAllModes.add(kIntentionallySkipped_ErrorType); | 1590 errorsForAllModes.add(kIntentionallySkipped_ErrorType); |
1591 } else { | 1591 } else { |
1592 SkBitmap bitmap; | 1592 SkBitmap bitmap; |
1593 gmmain.generate_image_from_picture(gm, compareConfig, pict, &bitmap)
; | 1593 gmmain.generate_image_from_picture(gm, compareConfig, pict, &bitmap)
; |
1594 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma
p( | 1594 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma
p( |
1595 gm->getName(), compareConfig.fName, renderModeDescriptor, bitmap
, | 1595 gm->getName(), compareConfig.fName, renderModeDescriptor, bitmap
, |
1596 &comparisonBitmap)); | 1596 &comparisonBitmap)); |
1597 } | 1597 } |
1598 } | 1598 } |
1599 | 1599 |
1600 if (FLAGS_serialize) { | 1600 if (FLAGS_serialize) { |
1601 const char renderModeDescriptor[] = "-serialize"; | 1601 const char renderModeDescriptor[] = "-serialize"; |
1602 if (gmFlags & GM::kSkipPicture_Flag) { | 1602 if (gmFlags & GM::kSkipPicture_Flag) { |
1603 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, shortNameP
lusConfig, | 1603 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, shortNameP
lusConfig, |
1604 renderModeDescriptor); | 1604 renderModeDescriptor); |
1605 errorsForAllModes.add(kIntentionallySkipped_ErrorType); | 1605 errorsForAllModes.add(kIntentionallySkipped_ErrorType); |
1606 } else { | 1606 } else { |
1607 SkPicture* repict = gmmain.stream_to_new_picture(*pict); | 1607 SkPicture* repict = gmmain.stream_to_new_picture(*pict); |
1608 SkAutoUnref aurr(repict); | 1608 SkAutoTUnref<SkPicture> aurr(repict); |
1609 SkBitmap bitmap; | 1609 SkBitmap bitmap; |
1610 gmmain.generate_image_from_picture(gm, compareConfig, repict, &bitma
p); | 1610 gmmain.generate_image_from_picture(gm, compareConfig, repict, &bitma
p); |
1611 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma
p( | 1611 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma
p( |
1612 gm->getName(), compareConfig.fName, renderModeDescriptor, bitmap
, | 1612 gm->getName(), compareConfig.fName, renderModeDescriptor, bitmap
, |
1613 &comparisonBitmap)); | 1613 &comparisonBitmap)); |
1614 } | 1614 } |
1615 } | 1615 } |
1616 | 1616 |
1617 if ((1 == FLAGS_writePicturePath.count()) && | 1617 if ((1 == FLAGS_writePicturePath.count()) && |
1618 !(gmFlags & GM::kSkipPicture_Flag)) { | 1618 !(gmFlags & GM::kSkipPicture_Flag)) { |
(...skipping 12 matching lines...) Expand all Loading... |
1631 } | 1631 } |
1632 | 1632 |
1633 if (FLAGS_rtree) { | 1633 if (FLAGS_rtree) { |
1634 const char renderModeDescriptor[] = "-rtree"; | 1634 const char renderModeDescriptor[] = "-rtree"; |
1635 if ((gmFlags & GM::kSkipPicture_Flag) || (gmFlags & GM::kSkipTiled_Flag)
) { | 1635 if ((gmFlags & GM::kSkipPicture_Flag) || (gmFlags & GM::kSkipTiled_Flag)
) { |
1636 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, shortNameP
lusConfig, | 1636 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, shortNameP
lusConfig, |
1637 renderModeDescriptor); | 1637 renderModeDescriptor); |
1638 errorsForAllModes.add(kIntentionallySkipped_ErrorType); | 1638 errorsForAllModes.add(kIntentionallySkipped_ErrorType); |
1639 } else { | 1639 } else { |
1640 SkPicture* pict = gmmain.generate_new_picture(gm, kRTree_BbhType, 0)
; | 1640 SkPicture* pict = gmmain.generate_new_picture(gm, kRTree_BbhType, 0)
; |
1641 SkAutoUnref aur(pict); | 1641 SkAutoTUnref<SkPicture> aur(pict); |
1642 SkBitmap bitmap; | 1642 SkBitmap bitmap; |
1643 gmmain.generate_image_from_picture(gm, compareConfig, pict, &bitmap)
; | 1643 gmmain.generate_image_from_picture(gm, compareConfig, pict, &bitmap)
; |
1644 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma
p( | 1644 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma
p( |
1645 gm->getName(), compareConfig.fName, renderModeDescriptor, bitmap
, | 1645 gm->getName(), compareConfig.fName, renderModeDescriptor, bitmap
, |
1646 &comparisonBitmap)); | 1646 &comparisonBitmap)); |
1647 } | 1647 } |
1648 } | 1648 } |
1649 | 1649 |
1650 if (FLAGS_tileGrid) { | 1650 if (FLAGS_tileGrid) { |
1651 for(int scaleIndex = 0; scaleIndex < tileGridReplayScales.count(); ++sca
leIndex) { | 1651 for(int scaleIndex = 0; scaleIndex < tileGridReplayScales.count(); ++sca
leIndex) { |
1652 SkScalar replayScale = tileGridReplayScales[scaleIndex]; | 1652 SkScalar replayScale = tileGridReplayScales[scaleIndex]; |
1653 SkString renderModeDescriptor("-tilegrid"); | 1653 SkString renderModeDescriptor("-tilegrid"); |
1654 if (SK_Scalar1 != replayScale) { | 1654 if (SK_Scalar1 != replayScale) { |
1655 renderModeDescriptor += "-scale-"; | 1655 renderModeDescriptor += "-scale-"; |
1656 renderModeDescriptor.appendScalar(replayScale); | 1656 renderModeDescriptor.appendScalar(replayScale); |
1657 } | 1657 } |
1658 | 1658 |
1659 if ((gmFlags & GM::kSkipPicture_Flag) || | 1659 if ((gmFlags & GM::kSkipPicture_Flag) || |
1660 (gmFlags & GM::kSkipTiled_Flag) || | 1660 (gmFlags & GM::kSkipTiled_Flag) || |
1661 ((gmFlags & GM::kSkipScaledReplay_Flag) && replayScale != 1)) { | 1661 ((gmFlags & GM::kSkipScaledReplay_Flag) && replayScale != 1)) { |
1662 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, shortN
amePlusConfig, | 1662 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, shortN
amePlusConfig, |
1663 renderModeDescriptor.c_str()); | 1663 renderModeDescriptor.c_str()); |
1664 errorsForAllModes.add(kIntentionallySkipped_ErrorType); | 1664 errorsForAllModes.add(kIntentionallySkipped_ErrorType); |
1665 } else { | 1665 } else { |
1666 // We record with the reciprocal scale to obtain a replay | 1666 // We record with the reciprocal scale to obtain a replay |
1667 // result that can be validated against comparisonBitmap. | 1667 // result that can be validated against comparisonBitmap. |
1668 SkScalar recordScale = SkScalarInvert(replayScale); | 1668 SkScalar recordScale = SkScalarInvert(replayScale); |
1669 SkPicture* pict = gmmain.generate_new_picture( | 1669 SkPicture* pict = gmmain.generate_new_picture( |
1670 gm, kTileGrid_BbhType, 0, recordScale); | 1670 gm, kTileGrid_BbhType, 0, recordScale); |
1671 SkAutoUnref aur(pict); | 1671 SkAutoTUnref<SkPicture> aur(pict); |
1672 SkBitmap bitmap; | 1672 SkBitmap bitmap; |
1673 // We cannot yet pass 'true' to generate_image_from_picture to | 1673 // We cannot yet pass 'true' to generate_image_from_picture to |
1674 // perform actual tiled rendering (see Issue 1198 - | 1674 // perform actual tiled rendering (see Issue 1198 - |
1675 // https://code.google.com/p/skia/issues/detail?id=1198) | 1675 // https://code.google.com/p/skia/issues/detail?id=1198) |
1676 gmmain.generate_image_from_picture(gm, compareConfig, pict, &bit
map, | 1676 gmmain.generate_image_from_picture(gm, compareConfig, pict, &bit
map, |
1677 replayScale /*, true */); | 1677 replayScale /*, true */); |
1678 errorsForAllModes.add(gmmain.compare_test_results_to_reference_b
itmap( | 1678 errorsForAllModes.add(gmmain.compare_test_results_to_reference_b
itmap( |
1679 gm->getName(), compareConfig.fName, renderModeDescriptor.c_s
tr(), bitmap, | 1679 gm->getName(), compareConfig.fName, renderModeDescriptor.c_s
tr(), bitmap, |
1680 &comparisonBitmap)); | 1680 &comparisonBitmap)); |
1681 } | 1681 } |
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2490 if (FLAGS_forceBWtext) { | 2490 if (FLAGS_forceBWtext) { |
2491 canvas->setDrawFilter(SkNEW(BWTextDrawFilter))->unref(); | 2491 canvas->setDrawFilter(SkNEW(BWTextDrawFilter))->unref(); |
2492 } | 2492 } |
2493 } | 2493 } |
2494 | 2494 |
2495 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) | 2495 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) |
2496 int main(int argc, char * const argv[]) { | 2496 int main(int argc, char * const argv[]) { |
2497 return tool_main(argc, (char**) argv); | 2497 return tool_main(argc, (char**) argv); |
2498 } | 2498 } |
2499 #endif | 2499 #endif |
OLD | NEW |