| 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 |