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

Side by Side Diff: tools/PictureRenderer.h

Issue 98643007: render_pictures: add --writeJsonSummaryPath (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix dependencies (nice catch, trybots) Created 7 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 | « gyp/tools.gyp ('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
11 #include "SkCanvas.h" 11 #include "SkCanvas.h"
12 #include "SkCountdown.h" 12 #include "SkCountdown.h"
13 #include "SkDrawFilter.h" 13 #include "SkDrawFilter.h"
14 #include "SkJSONCPP.h"
14 #include "SkMath.h" 15 #include "SkMath.h"
15 #include "SkPaint.h" 16 #include "SkPaint.h"
16 #include "SkPicture.h" 17 #include "SkPicture.h"
17 #include "SkRect.h" 18 #include "SkRect.h"
18 #include "SkRefCnt.h" 19 #include "SkRefCnt.h"
19 #include "SkRunnable.h" 20 #include "SkRunnable.h"
20 #include "SkString.h" 21 #include "SkString.h"
21 #include "SkTDArray.h" 22 #include "SkTDArray.h"
22 #include "SkThreadPool.h" 23 #include "SkThreadPool.h"
23 #include "SkTileGridPicture.h" 24 #include "SkTileGridPicture.h"
24 #include "SkTypes.h" 25 #include "SkTypes.h"
25 26
26 #if SK_SUPPORT_GPU 27 #if SK_SUPPORT_GPU
27 #include "GrContextFactory.h" 28 #include "GrContextFactory.h"
28 #include "GrContext.h" 29 #include "GrContext.h"
29 #endif 30 #endif
30 31
31 class SkBitmap; 32 class SkBitmap;
32 class SkCanvas; 33 class SkCanvas;
33 class SkGLContextHelper; 34 class SkGLContextHelper;
34 class SkThread; 35 class SkThread;
35 36
36 namespace sk_tools { 37 namespace sk_tools {
37 38
38 class TiledPictureRenderer; 39 class TiledPictureRenderer;
39 40
41 /**
42 * Class for collecting image results (checksums) as we go.
43 */
44 class ImageResultsSummary {
45 public:
46 /**
47 * Adds this bitmap's hash to the summary of results.
48 *
49 * @param testName name of the test
50 * @param bitmap bitmap to store the hash of
51 */
52 void add(const char *testName, const SkBitmap& bitmap);
53
54 /**
55 * Writes the summary (as constructed so far) to a file.
56 *
57 * @param filename path to write the summary to
58 */
59 void writeToFile(const char *filename);
60
61 private:
62 Json::Value fActualResultsNoComparison;
63 };
64
40 class PictureRenderer : public SkRefCnt { 65 class PictureRenderer : public SkRefCnt {
41 66
42 public: 67 public:
43 enum SkDeviceTypes { 68 enum SkDeviceTypes {
44 #if SK_ANGLE 69 #if SK_ANGLE
45 kAngle_DeviceType, 70 kAngle_DeviceType,
46 #endif 71 #endif
47 kBitmap_DeviceType, 72 kBitmap_DeviceType,
48 #if SK_SUPPORT_GPU 73 #if SK_SUPPORT_GPU
49 kGPU_DeviceType, 74 kGPU_DeviceType,
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 void setBBoxHierarchyType(BBoxHierarchyType bbhType) { 201 void setBBoxHierarchyType(BBoxHierarchyType bbhType) {
177 fBBoxHierarchyType = bbhType; 202 fBBoxHierarchyType = bbhType;
178 } 203 }
179 204
180 BBoxHierarchyType getBBoxHierarchyType() { return fBBoxHierarchyType; } 205 BBoxHierarchyType getBBoxHierarchyType() { return fBBoxHierarchyType; }
181 206
182 void setGridSize(int width, int height) { 207 void setGridSize(int width, int height) {
183 fGridInfo.fTileInterval.set(width, height); 208 fGridInfo.fTileInterval.set(width, height);
184 } 209 }
185 210
211 void setJsonSummaryPtr(ImageResultsSummary* jsonSummaryPtr) {
212 fJsonSummaryPtr = jsonSummaryPtr;
213 }
214
186 bool isUsingBitmapDevice() { 215 bool isUsingBitmapDevice() {
187 return kBitmap_DeviceType == fDeviceType; 216 return kBitmap_DeviceType == fDeviceType;
188 } 217 }
189 218
190 virtual SkString getPerIterTimeFormat() { return SkString("%.2f"); } 219 virtual SkString getPerIterTimeFormat() { return SkString("%.2f"); }
191 220
192 virtual SkString getNormalTimeFormat() { return SkString("%6.2f"); } 221 virtual SkString getNormalTimeFormat() { return SkString("%6.2f"); }
193 222
194 /** 223 /**
195 * Reports the configuration of this PictureRenderer. 224 * Reports the configuration of this PictureRenderer.
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 return fGrContextFactory.getGLContext(glContextType); 288 return fGrContextFactory.getGLContext(glContextType);
260 } 289 }
261 290
262 GrContext* getGrContext() { 291 GrContext* getGrContext() {
263 return fGrContext; 292 return fGrContext;
264 } 293 }
265 #endif 294 #endif
266 295
267 PictureRenderer() 296 PictureRenderer()
268 : fPicture(NULL) 297 : fPicture(NULL)
298 , fJsonSummaryPtr(NULL)
269 , fDeviceType(kBitmap_DeviceType) 299 , fDeviceType(kBitmap_DeviceType)
270 , fBBoxHierarchyType(kNone_BBoxHierarchyType) 300 , fBBoxHierarchyType(kNone_BBoxHierarchyType)
271 , fScaleFactor(SK_Scalar1) 301 , fScaleFactor(SK_Scalar1)
272 #if SK_SUPPORT_GPU 302 #if SK_SUPPORT_GPU
273 , fGrContext(NULL) 303 , fGrContext(NULL)
274 , fSampleCount(0) 304 , fSampleCount(0)
275 #endif 305 #endif
276 { 306 {
277 fGridInfo.fMargin.setEmpty(); 307 fGridInfo.fMargin.setEmpty();
278 fGridInfo.fOffset.setZero(); 308 fGridInfo.fOffset.setZero();
279 fGridInfo.fTileInterval.set(1, 1); 309 fGridInfo.fTileInterval.set(1, 1);
280 sk_bzero(fDrawFilters, sizeof(fDrawFilters)); 310 sk_bzero(fDrawFilters, sizeof(fDrawFilters));
281 fViewport.set(0, 0); 311 fViewport.set(0, 0);
282 } 312 }
283 313
284 #if SK_SUPPORT_GPU 314 #if SK_SUPPORT_GPU
285 virtual ~PictureRenderer() { 315 virtual ~PictureRenderer() {
286 SkSafeUnref(fGrContext); 316 SkSafeUnref(fGrContext);
287 } 317 }
288 #endif 318 #endif
289 319
290 protected: 320 protected:
291 SkAutoTUnref<SkCanvas> fCanvas; 321 SkAutoTUnref<SkCanvas> fCanvas;
292 SkPicture* fPicture; 322 SkPicture* fPicture;
323 ImageResultsSummary* fJsonSummaryPtr;
293 SkDeviceTypes fDeviceType; 324 SkDeviceTypes fDeviceType;
294 BBoxHierarchyType fBBoxHierarchyType; 325 BBoxHierarchyType fBBoxHierarchyType;
295 DrawFilterFlags fDrawFilters[SkDrawFilter::kTypeCount]; 326 DrawFilterFlags fDrawFilters[SkDrawFilter::kTypeCount];
296 SkString fDrawFiltersConfig; 327 SkString fDrawFiltersConfig;
297 SkTileGridPicture::TileGridInfo fGridInfo; // used when fBBoxHierarchyType i s TileGrid 328 SkTileGridPicture::TileGridInfo fGridInfo; // used when fBBoxHierarchyType i s TileGrid
298 329
299 void buildBBoxHierarchy(); 330 void buildBBoxHierarchy();
300 331
301 /** 332 /**
302 * Return the total width that should be drawn. If the viewport width has be en set greater than 333 * Return the total width that should be drawn. If the viewport width has be en set greater than
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 577
547 typedef PictureRenderer INHERITED; 578 typedef PictureRenderer INHERITED;
548 }; 579 };
549 580
550 extern PictureRenderer* CreateGatherPixelRefsRenderer(); 581 extern PictureRenderer* CreateGatherPixelRefsRenderer();
551 extern PictureRenderer* CreatePictureCloneRenderer(); 582 extern PictureRenderer* CreatePictureCloneRenderer();
552 583
553 } 584 }
554 585
555 #endif // PictureRenderer_DEFINED 586 #endif // PictureRenderer_DEFINED
OLDNEW
« no previous file with comments | « gyp/tools.gyp ('k') | tools/PictureRenderer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698