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

Side by Side Diff: gm/gmmain.cpp

Issue 845623002: Remove SkTileGrid (except for TileGridInfo). (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: kill gridSupported Created 5 years, 11 months 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 | « dm/DMQuiltTask.cpp ('k') | gyp/core.gypi » ('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 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 enum Backend { 135 enum Backend {
136 kRaster_Backend, 136 kRaster_Backend,
137 kGPU_Backend, 137 kGPU_Backend,
138 kPDF_Backend, 138 kPDF_Backend,
139 kXPS_Backend, 139 kXPS_Backend,
140 }; 140 };
141 141
142 enum BbhType { 142 enum BbhType {
143 kNone_BbhType, 143 kNone_BbhType,
144 kRTree_BbhType, 144 kRTree_BbhType,
145 kTileGrid_BbhType,
146 }; 145 };
147 146
148 enum ConfigFlags { 147 enum ConfigFlags {
149 kNone_ConfigFlag = 0x0, 148 kNone_ConfigFlag = 0x0,
150 /* Write GM images if a write path is provided. */ 149 /* Write GM images if a write path is provided. */
151 kWrite_ConfigFlag = 0x1, 150 kWrite_ConfigFlag = 0x1,
152 /* Read reference GM images if a read path is provided. */ 151 /* Read reference GM images if a read path is provided. */
153 kRead_ConfigFlag = 0x2, 152 kRead_ConfigFlag = 0x2,
154 kRW_ConfigFlag = (kWrite_ConfigFlag | kRead_ConfigFlag), 153 kRW_ConfigFlag = (kWrite_ConfigFlag | kRead_ConfigFlag),
155 /* Use distance fields for rendering text */ 154 /* Use distance fields for rendering text */
(...skipping 876 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 1031
1033 return errors; 1032 return errors;
1034 } 1033 }
1035 1034
1036 static SkPicture* generate_new_picture(GM* gm, BbhType bbhType, uint32_t rec ordFlags, 1035 static SkPicture* generate_new_picture(GM* gm, BbhType bbhType, uint32_t rec ordFlags,
1037 SkScalar scale = SK_Scalar1) { 1036 SkScalar scale = SK_Scalar1) {
1038 SkScalar width = SkScalarMul(SkIntToScalar(gm->getISize().width()), scal e); 1037 SkScalar width = SkScalarMul(SkIntToScalar(gm->getISize().width()), scal e);
1039 SkScalar height = SkScalarMul(SkIntToScalar(gm->getISize().height()), sc ale); 1038 SkScalar height = SkScalarMul(SkIntToScalar(gm->getISize().height()), sc ale);
1040 1039
1041 SkAutoTDelete<SkBBHFactory> factory; 1040 SkAutoTDelete<SkBBHFactory> factory;
1042 if (kTileGrid_BbhType == bbhType) { 1041 if (kRTree_BbhType == bbhType) {
1043 SkTileGridFactory::TileGridInfo info;
1044 info.fMargin.setEmpty();
1045 info.fOffset.setZero();
1046 info.fTileInterval.set(16, 16);
1047 factory.reset(SkNEW_ARGS(SkTileGridFactory, (info)));
1048 } else if (kRTree_BbhType == bbhType) {
1049 factory.reset(SkNEW(SkRTreeFactory)); 1042 factory.reset(SkNEW(SkRTreeFactory));
1050 } 1043 }
1051 SkPictureRecorder recorder; 1044 SkPictureRecorder recorder;
1052 SkCanvas* cv = recorder.beginRecording(width, height, factory.get(), rec ordFlags); 1045 SkCanvas* cv = recorder.beginRecording(width, height, factory.get(), rec ordFlags);
1053 cv->scale(scale, scale); 1046 cv->scale(scale, scale);
1054 invokeGM(gm, cv, false, false); 1047 invokeGM(gm, cv, false, false);
1055 return recorder.endRecording(); 1048 return recorder.endRecording();
1056 } 1049 }
1057 1050
1058 static SkPicture* stream_to_new_picture(const SkPicture& src) { 1051 static SkPicture* stream_to_new_picture(const SkPicture& src) {
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1168 return compare_test_results_to_reference_bitmap( 1161 return compare_test_results_to_reference_bitmap(
1169 gm->getName(), gRec.fName, renderModeDescriptor, bitmap, &refere nceBitmap); 1162 gm->getName(), gRec.fName, renderModeDescriptor, bitmap, &refere nceBitmap);
1170 } 1163 }
1171 return kEmpty_ErrorCombination; 1164 return kEmpty_ErrorCombination;
1172 } 1165 }
1173 1166
1174 static SkSurface* CreateSurface(const ConfigData& config, 1167 static SkSurface* CreateSurface(const ConfigData& config,
1175 const SkISize& size, 1168 const SkISize& size,
1176 GrSurface* gpuTarget) { 1169 GrSurface* gpuTarget) {
1177 if (config.fBackend == kRaster_Backend) { 1170 if (config.fBackend == kRaster_Backend) {
1178 SkImageInfo ii = SkImageInfo::Make(size.width(), size.height(), 1171 SkImageInfo ii = SkImageInfo::Make(size.width(), size.height(),
1179 config.fColorType, kPremul_SkAlph aType); 1172 config.fColorType, kPremul_SkAlph aType);
1180 1173
1181 return SkSurface::NewRaster(ii); 1174 return SkSurface::NewRaster(ii);
1182 } 1175 }
1183 #if SK_SUPPORT_GPU 1176 #if SK_SUPPORT_GPU
1184 else { 1177 else {
1185 uint32_t flags = (config.fFlags & kDFText_ConfigFlag) ? 1178 uint32_t flags = (config.fFlags & kDFText_ConfigFlag) ?
1186 SkSurfaceProps::kUseDistanceFieldFonts_Flag : 0; 1179 SkSurfaceProps::kUseDistanceFieldFonts_Flag : 0;
1187 SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType ); 1180 SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType );
1188 return SkSurface::NewRenderTargetDirect(gpuTarget->asRenderTarget(), &props); 1181 return SkSurface::NewRenderTargetDirect(gpuTarget->asRenderTarget(), &props);
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
1718 SkPicture* pict = gmmain.generate_new_picture(gm, kRTree_BbhType, 0) ; 1711 SkPicture* pict = gmmain.generate_new_picture(gm, kRTree_BbhType, 0) ;
1719 SkAutoTUnref<SkPicture> aur(pict); 1712 SkAutoTUnref<SkPicture> aur(pict);
1720 SkBitmap bitmap; 1713 SkBitmap bitmap;
1721 gmmain.generate_image_from_picture(gm, compareConfig, gpuTarget, pic t, &bitmap); 1714 gmmain.generate_image_from_picture(gm, compareConfig, gpuTarget, pic t, &bitmap);
1722 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma p( 1715 errorsForAllModes.add(gmmain.compare_test_results_to_reference_bitma p(
1723 gm->getName(), compareConfig.fName, renderModeDescriptor, bitmap , 1716 gm->getName(), compareConfig.fName, renderModeDescriptor, bitmap ,
1724 &comparisonBitmap)); 1717 &comparisonBitmap));
1725 } 1718 }
1726 } 1719 }
1727 1720
1728 if (FLAGS_tileGrid) {
1729 for(int scaleIndex = 0; scaleIndex < tileGridReplayScales.count(); ++sca leIndex) {
1730 SkScalar replayScale = tileGridReplayScales[scaleIndex];
1731 SkString renderModeDescriptor("-tilegrid");
1732 if (SK_Scalar1 != replayScale) {
1733 renderModeDescriptor += "-scale-";
1734 renderModeDescriptor.appendScalar(replayScale);
1735 }
1736
1737 if ((gmFlags & GM::kSkipPicture_Flag) ||
1738 (gmFlags & GM::kSkipTiled_Flag) ||
1739 ((gmFlags & GM::kSkipScaledReplay_Flag) && replayScale != 1)) {
1740 gmmain.RecordTestResults(kIntentionallySkipped_ErrorType, shortN amePlusConfig,
1741 renderModeDescriptor.c_str());
1742 errorsForAllModes.add(kIntentionallySkipped_ErrorType);
1743 } else {
1744 // We record with the reciprocal scale to obtain a replay
1745 // result that can be validated against comparisonBitmap.
1746 SkScalar recordScale = SkScalarInvert(replayScale);
1747 SkPicture* pict = gmmain.generate_new_picture(
1748 gm, kTileGrid_BbhType, 0, recordScale);
1749 SkAutoTUnref<SkPicture> aur(pict);
1750 SkBitmap bitmap;
1751 // We cannot yet pass 'true' to generate_image_from_picture to
1752 // perform actual tiled rendering (see Issue 1198 -
1753 // https://code.google.com/p/skia/issues/detail?id=1198)
1754 gmmain.generate_image_from_picture(gm, compareConfig, gpuTarget, pict, &bitmap,
1755 replayScale /*, true */);
1756 errorsForAllModes.add(gmmain.compare_test_results_to_reference_b itmap(
1757 gm->getName(), compareConfig.fName, renderModeDescriptor.c_s tr(), bitmap,
1758 &comparisonBitmap));
1759 }
1760 }
1761 }
1762
1763 // run the pipe centric GM steps 1721 // run the pipe centric GM steps
1764 if (FLAGS_pipe) { 1722 if (FLAGS_pipe) {
1765 errorsForAllModes.add(gmmain.test_pipe_playback(gm, compareConfig, compa risonBitmap, 1723 errorsForAllModes.add(gmmain.test_pipe_playback(gm, compareConfig, compa risonBitmap,
1766 FLAGS_simulatePipePlayba ckFailure)); 1724 FLAGS_simulatePipePlayba ckFailure));
1767 if (FLAGS_tiledPipe) { 1725 if (FLAGS_tiledPipe) {
1768 errorsForAllModes.add(gmmain.test_tiled_pipe_playback(gm, compareCon fig, 1726 errorsForAllModes.add(gmmain.test_tiled_pipe_playback(gm, compareCon fig,
1769 comparisonBitm ap)); 1727 comparisonBitm ap));
1770 } 1728 }
1771 } 1729 }
1772 return errorsForAllModes; 1730 return errorsForAllModes;
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1902 } 1860 }
1903 1861
1904 if (FLAGS_mpd && (kGPU_Backend == config.fBackend || kRaster_Backend == config.fBackend)) { 1862 if (FLAGS_mpd && (kGPU_Backend == config.fBackend || kRaster_Backend == config.fBackend)) {
1905 1863
1906 if (gmFlags & GM::kSkipPicture_Flag) { 1864 if (gmFlags & GM::kSkipPicture_Flag) {
1907 gmmain.RecordSkippedTest(shortNamePlusConfig, 1865 gmmain.RecordSkippedTest(shortNamePlusConfig,
1908 renderModeDescriptor, 1866 renderModeDescriptor,
1909 config.fBackend); 1867 config.fBackend);
1910 errorsForThisConfig.add(kIntentionallySkipped_ErrorType); 1868 errorsForThisConfig.add(kIntentionallySkipped_ErrorType);
1911 } else if (!(gmFlags & GM::kGPUOnly_Flag)) { 1869 } else if (!(gmFlags & GM::kGPUOnly_Flag)) {
1912 errorsForThisConfig.add(gmmain.testMPDDrawing(gm, config, 1870 errorsForThisConfig.add(gmmain.testMPDDrawing(gm, config,
1913 writePath, gpuTarg et, 1871 writePath, gpuTarg et,
1914 comparisonBitmap)) ; 1872 comparisonBitmap)) ;
1915 } 1873 }
1916 } 1874 }
1917 1875
1918 errorsForAllConfigs.add(errorsForThisConfig); 1876 errorsForAllConfigs.add(errorsForThisConfig);
1919 } 1877 }
1920 return errorsForAllConfigs; 1878 return errorsForAllConfigs;
1921 } 1879 }
1922 1880
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
2582 if (FLAGS_forceBWtext) { 2540 if (FLAGS_forceBWtext) {
2583 canvas->setDrawFilter(SkNEW(BWTextDrawFilter))->unref(); 2541 canvas->setDrawFilter(SkNEW(BWTextDrawFilter))->unref();
2584 } 2542 }
2585 } 2543 }
2586 2544
2587 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) 2545 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
2588 int main(int argc, char * const argv[]) { 2546 int main(int argc, char * const argv[]) {
2589 return tool_main(argc, (char**) argv); 2547 return tool_main(argc, (char**) argv);
2590 } 2548 }
2591 #endif 2549 #endif
OLDNEW
« no previous file with comments | « dm/DMQuiltTask.cpp ('k') | gyp/core.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698