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

Side by Side Diff: tools/PictureRenderer.h

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 | « tests/TileGridTest.cpp ('k') | tools/PictureRenderer.cpp » ('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 2012 Google Inc. 2 * Copyright 2012 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 #ifndef PictureRenderer_DEFINED 8 #ifndef PictureRenderer_DEFINED
9 #define PictureRenderer_DEFINED 9 #define PictureRenderer_DEFINED
10 10
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 kBitmap_DeviceType, 50 kBitmap_DeviceType,
51 #if SK_SUPPORT_GPU 51 #if SK_SUPPORT_GPU
52 kGPU_DeviceType, 52 kGPU_DeviceType,
53 kNVPR_DeviceType, 53 kNVPR_DeviceType,
54 #endif 54 #endif
55 }; 55 };
56 56
57 enum BBoxHierarchyType { 57 enum BBoxHierarchyType {
58 kNone_BBoxHierarchyType = 0, 58 kNone_BBoxHierarchyType = 0,
59 kRTree_BBoxHierarchyType, 59 kRTree_BBoxHierarchyType,
60 kTileGrid_BBoxHierarchyType,
61 60
62 kLast_BBoxHierarchyType = kTileGrid_BBoxHierarchyType, 61 kLast_BBoxHierarchyType = kRTree_BBoxHierarchyType,
63 }; 62 };
64 63
65 // this uses SkPaint::Flags as a base and adds additional flags 64 // this uses SkPaint::Flags as a base and adds additional flags
66 enum DrawFilterFlags { 65 enum DrawFilterFlags {
67 kNone_DrawFilterFlag = 0, 66 kNone_DrawFilterFlag = 0,
68 kHinting_DrawFilterFlag = 0x10000, // toggles between no hinting and nor mal hinting 67 kHinting_DrawFilterFlag = 0x10000, // toggles between no hinting and nor mal hinting
69 kSlightHinting_DrawFilterFlag = 0x20000, // toggles between slight and n ormal hinting 68 kSlightHinting_DrawFilterFlag = 0x20000, // toggles between slight and n ormal hinting
70 kAAClip_DrawFilterFlag = 0x40000, // toggles between soft and hard clip 69 kAAClip_DrawFilterFlag = 0x40000, // toggles between soft and hard clip
71 kMaskFilter_DrawFilterFlag = 0x80000, // toggles on/off mask filters (e. g., blurs) 70 kMaskFilter_DrawFilterFlag = 0x80000, // toggles on/off mask filters (e. g., blurs)
72 }; 71 };
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 memcpy(fDrawFilters, filters, sizeof(fDrawFilters)); 229 memcpy(fDrawFilters, filters, sizeof(fDrawFilters));
231 fDrawFiltersConfig = configName; 230 fDrawFiltersConfig = configName;
232 } 231 }
233 232
234 void setBBoxHierarchyType(BBoxHierarchyType bbhType) { 233 void setBBoxHierarchyType(BBoxHierarchyType bbhType) {
235 fBBoxHierarchyType = bbhType; 234 fBBoxHierarchyType = bbhType;
236 } 235 }
237 236
238 BBoxHierarchyType getBBoxHierarchyType() { return fBBoxHierarchyType; } 237 BBoxHierarchyType getBBoxHierarchyType() { return fBBoxHierarchyType; }
239 238
240 void setGridSize(int width, int height) {
241 fGridInfo.fTileInterval.set(width, height);
242 }
243
244 void setJsonSummaryPtr(ImageResultsAndExpectations* jsonSummaryPtr) { 239 void setJsonSummaryPtr(ImageResultsAndExpectations* jsonSummaryPtr) {
245 fJsonSummaryPtr = jsonSummaryPtr; 240 fJsonSummaryPtr = jsonSummaryPtr;
246 } 241 }
247 242
248 bool isUsingBitmapDevice() { 243 bool isUsingBitmapDevice() {
249 return kBitmap_DeviceType == fDeviceType; 244 return kBitmap_DeviceType == fDeviceType;
250 } 245 }
251 246
252 virtual SkString getPerIterTimeFormat() { return SkString("%.2f"); } 247 virtual SkString getPerIterTimeFormat() { return SkString("%.2f"); }
253 248
254 virtual SkString getNormalTimeFormat() { return SkString("%6.2f"); } 249 virtual SkString getNormalTimeFormat() { return SkString("%6.2f"); }
255 250
256 /** 251 /**
257 * Reports the configuration of this PictureRenderer. 252 * Reports the configuration of this PictureRenderer.
258 */ 253 */
259 SkString getConfigName() { 254 SkString getConfigName() {
260 SkString config = this->getConfigNameInternal(); 255 SkString config = this->getConfigNameInternal();
261 if (!fViewport.isEmpty()) { 256 if (!fViewport.isEmpty()) {
262 config.appendf("_viewport_%ix%i", fViewport.width(), fViewport.heigh t()); 257 config.appendf("_viewport_%ix%i", fViewport.width(), fViewport.heigh t());
263 } 258 }
264 if (fScaleFactor != SK_Scalar1) { 259 if (fScaleFactor != SK_Scalar1) {
265 config.appendf("_scalar_%f", SkScalarToFloat(fScaleFactor)); 260 config.appendf("_scalar_%f", SkScalarToFloat(fScaleFactor));
266 } 261 }
267 if (kRTree_BBoxHierarchyType == fBBoxHierarchyType) { 262 if (kRTree_BBoxHierarchyType == fBBoxHierarchyType) {
268 config.append("_rtree"); 263 config.append("_rtree");
269 } else if (kTileGrid_BBoxHierarchyType == fBBoxHierarchyType) {
270 config.append("_grid");
271 config.append("_");
272 config.appendS32(fGridInfo.fTileInterval.width());
273 config.append("x");
274 config.appendS32(fGridInfo.fTileInterval.height());
275 } 264 }
276 #if SK_SUPPORT_GPU 265 #if SK_SUPPORT_GPU
277 switch (fDeviceType) { 266 switch (fDeviceType) {
278 case kGPU_DeviceType: 267 case kGPU_DeviceType:
279 if (fSampleCount) { 268 if (fSampleCount) {
280 config.appendf("_msaa%d", fSampleCount); 269 config.appendf("_msaa%d", fSampleCount);
281 } else if (fUseDFText) { 270 } else if (fUseDFText) {
282 config.append("_gpudft"); 271 config.append("_gpudft");
283 } else { 272 } else {
284 config.append("_gpu"); 273 config.append("_gpu");
(...skipping 24 matching lines...) Expand all
309 Json::Value getJSONConfig() { 298 Json::Value getJSONConfig() {
310 Json::Value result; 299 Json::Value result;
311 300
312 result["mode"] = this->getConfigNameInternal().c_str(); 301 result["mode"] = this->getConfigNameInternal().c_str();
313 result["scale"] = 1.0f; 302 result["scale"] = 1.0f;
314 if (SK_Scalar1 != fScaleFactor) { 303 if (SK_Scalar1 != fScaleFactor) {
315 result["scale"] = SkScalarToFloat(fScaleFactor); 304 result["scale"] = SkScalarToFloat(fScaleFactor);
316 } 305 }
317 if (kRTree_BBoxHierarchyType == fBBoxHierarchyType) { 306 if (kRTree_BBoxHierarchyType == fBBoxHierarchyType) {
318 result["bbh"] = "rtree"; 307 result["bbh"] = "rtree";
319 } else if (kTileGrid_BBoxHierarchyType == fBBoxHierarchyType) {
320 SkString tmp("grid_");
321 tmp.appendS32(fGridInfo.fTileInterval.width());
322 tmp.append("x");
323 tmp.appendS32(fGridInfo.fTileInterval.height());
324 result["bbh"] = tmp.c_str();
325 } 308 }
326 #if SK_SUPPORT_GPU 309 #if SK_SUPPORT_GPU
327 SkString tmp; 310 SkString tmp;
328 switch (fDeviceType) { 311 switch (fDeviceType) {
329 case kGPU_DeviceType: 312 case kGPU_DeviceType:
330 if (0 != fSampleCount) { 313 if (0 != fSampleCount) {
331 tmp = "msaa"; 314 tmp = "msaa";
332 tmp.appendS32(fSampleCount); 315 tmp.appendS32(fSampleCount);
333 result["config"] = tmp.c_str(); 316 result["config"] = tmp.c_str();
334 } else if (fUseDFText) { 317 } else if (fUseDFText) {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 , fEnableWrites(false) 415 , fEnableWrites(false)
433 , fBBoxHierarchyType(kNone_BBoxHierarchyType) 416 , fBBoxHierarchyType(kNone_BBoxHierarchyType)
434 , fScaleFactor(SK_Scalar1) 417 , fScaleFactor(SK_Scalar1)
435 #if SK_SUPPORT_GPU 418 #if SK_SUPPORT_GPU
436 , fGrContextFactory(opts) 419 , fGrContextFactory(opts)
437 , fGrContext(NULL) 420 , fGrContext(NULL)
438 , fSampleCount(0) 421 , fSampleCount(0)
439 , fUseDFText(false) 422 , fUseDFText(false)
440 #endif 423 #endif
441 { 424 {
442 fGridInfo.fMargin.setEmpty();
443 fGridInfo.fOffset.setZero();
444 fGridInfo.fTileInterval.set(1, 1);
445 sk_bzero(fDrawFilters, sizeof(fDrawFilters)); 425 sk_bzero(fDrawFilters, sizeof(fDrawFilters));
446 fViewport.set(0, 0); 426 fViewport.set(0, 0);
447 } 427 }
448 428
449 #if SK_SUPPORT_GPU 429 #if SK_SUPPORT_GPU
450 virtual ~PictureRenderer() { 430 virtual ~PictureRenderer() {
451 SkSafeUnref(fGrContext); 431 SkSafeUnref(fGrContext);
452 } 432 }
453 #endif 433 #endif
454 434
455 protected: 435 protected:
456 SkAutoTUnref<SkCanvas> fCanvas; 436 SkAutoTUnref<SkCanvas> fCanvas;
457 SkAutoTUnref<const SkPicture> fPicture; 437 SkAutoTUnref<const SkPicture> fPicture;
458 bool fUseChecksumBasedFilenames; 438 bool fUseChecksumBasedFilenames;
459 bool fUseMultiPictureDraw; 439 bool fUseMultiPictureDraw;
460 ImageResultsAndExpectations* fJsonSummaryPtr; 440 ImageResultsAndExpectations* fJsonSummaryPtr;
461 SkDeviceTypes fDeviceType; 441 SkDeviceTypes fDeviceType;
462 bool fEnableWrites; 442 bool fEnableWrites;
463 BBoxHierarchyType fBBoxHierarchyType; 443 BBoxHierarchyType fBBoxHierarchyType;
464 DrawFilterFlags fDrawFilters[SkDrawFilter::kTypeCount]; 444 DrawFilterFlags fDrawFilters[SkDrawFilter::kTypeCount];
465 SkString fDrawFiltersConfig; 445 SkString fDrawFiltersConfig;
466 SkString fWritePath; 446 SkString fWritePath;
467 SkString fMismatchPath; 447 SkString fMismatchPath;
468 SkString fInputFilename; 448 SkString fInputFilename;
469 SkTileGridFactory::TileGridInfo fGridInfo; // used when fBBoxHierarchyType i s TileGrid
470 449
471 void buildBBoxHierarchy(); 450 void buildBBoxHierarchy();
472 451
473 /** 452 /**
474 * Return the total width that should be drawn. If the viewport width has be en set greater than 453 * Return the total width that should be drawn. If the viewport width has be en set greater than
475 * 0, this will be the minimum of the current SkPicture's width and the view port's width. 454 * 0, this will be the minimum of the current SkPicture's width and the view port's width.
476 */ 455 */
477 int getViewWidth(); 456 int getViewWidth();
478 457
479 /** 458 /**
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 // These variables are only used for timing individual tiles. 668 // These variables are only used for timing individual tiles.
690 // Next tile to draw in fTileRects. 669 // Next tile to draw in fTileRects.
691 int fCurrentTileOffset; 670 int fCurrentTileOffset;
692 // Number of tiles in the x direction. 671 // Number of tiles in the x direction.
693 int fTilesX; 672 int fTilesX;
694 // Number of tiles in the y direction. 673 // Number of tiles in the y direction.
695 int fTilesY; 674 int fTilesY;
696 675
697 void setupTiles(); 676 void setupTiles();
698 void setupPowerOf2Tiles(); 677 void setupPowerOf2Tiles();
699 bool postRender(SkCanvas*, const SkIRect& tileRect, 678 bool postRender(SkCanvas*, const SkIRect& tileRect,
700 SkBitmap* tempBM, SkBitmap** out, 679 SkBitmap* tempBM, SkBitmap** out,
701 int tileNumber); 680 int tileNumber);
702 681
703 typedef PictureRenderer INHERITED; 682 typedef PictureRenderer INHERITED;
704 }; 683 };
705 684
706 /** 685 /**
707 * This class does not do any rendering, but its render function executes turnin g an SkPictureRecord 686 * This class does not do any rendering, but its render function executes turnin g an SkPictureRecord
708 * into an SkPicturePlayback, which we want to time. 687 * into an SkPicturePlayback, which we want to time.
709 */ 688 */
(...skipping 21 matching lines...) Expand all
731 710
732 #if SK_SUPPORT_GPU 711 #if SK_SUPPORT_GPU
733 extern PictureRenderer* CreateGatherPixelRefsRenderer(const GrContext::Options& opts); 712 extern PictureRenderer* CreateGatherPixelRefsRenderer(const GrContext::Options& opts);
734 #else 713 #else
735 extern PictureRenderer* CreateGatherPixelRefsRenderer(); 714 extern PictureRenderer* CreateGatherPixelRefsRenderer();
736 #endif 715 #endif
737 716
738 } 717 }
739 718
740 #endif // PictureRenderer_DEFINED 719 #endif // PictureRenderer_DEFINED
OLDNEW
« no previous file with comments | « tests/TileGridTest.cpp ('k') | tools/PictureRenderer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698