Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(444)

Side by Side Diff: gm/gmmain.cpp

Issue 741793002: Add SkNVRefCnt, prune down SkPicture's size (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: tweak name Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | include/core/SkPicture.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | include/core/SkPicture.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698