| OLD | NEW | 
|---|
| 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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 77     SK_COMPILE_ASSERT(!(kMaskFilter_DrawFilterFlag & SkPaint::kAllFlags), maskfi
     lter_flag_must_be_greater); | 77     SK_COMPILE_ASSERT(!(kMaskFilter_DrawFilterFlag & SkPaint::kAllFlags), maskfi
     lter_flag_must_be_greater); | 
| 78     SK_COMPILE_ASSERT(!(kHinting_DrawFilterFlag & SkPaint::kAllFlags), | 78     SK_COMPILE_ASSERT(!(kHinting_DrawFilterFlag & SkPaint::kAllFlags), | 
| 79             hinting_flag_must_be_greater); | 79             hinting_flag_must_be_greater); | 
| 80     SK_COMPILE_ASSERT(!(kSlightHinting_DrawFilterFlag & SkPaint::kAllFlags), | 80     SK_COMPILE_ASSERT(!(kSlightHinting_DrawFilterFlag & SkPaint::kAllFlags), | 
| 81             slight_hinting_flag_must_be_greater); | 81             slight_hinting_flag_must_be_greater); | 
| 82 | 82 | 
| 83     /** | 83     /** | 
| 84      * Called with each new SkPicture to render. | 84      * Called with each new SkPicture to render. | 
| 85      * | 85      * | 
| 86      * @param pict The SkPicture to render. | 86      * @param pict The SkPicture to render. | 
| 87      * @param outputDir The output directory within which this renderer should w
     rite files, | 87      * @param writePath The output directory within which this renderer should w
     rite all images, | 
| 88      *     or NULL if this renderer should not write files at all. | 88      *     or NULL if this renderer should not write all images. | 
|  | 89      * @param mismatchPath The output directory within which this renderer shoul
     d write any images | 
|  | 90      *     which do not match expectations, or NULL if this renderer should not 
     write mismatches. | 
| 89      * @param inputFilename The name of the input file we are rendering. | 91      * @param inputFilename The name of the input file we are rendering. | 
| 90      * @param useChecksumBasedFilenames Whether to use checksum-based filenames 
     when writing | 92      * @param useChecksumBasedFilenames Whether to use checksum-based filenames 
     when writing | 
| 91      *     bitmap images to disk. | 93      *     bitmap images to disk. | 
| 92      */ | 94      */ | 
| 93     virtual void init(SkPicture* pict, const SkString* outputDir, | 95     virtual void init(SkPicture* pict, const SkString* writePath, const SkString
     * mismatchPath, | 
| 94                       const SkString* inputFilename, bool useChecksumBasedFilena
     mes); | 96                       const SkString* inputFilename, bool useChecksumBasedFilena
     mes); | 
| 95 | 97 | 
| 96     /** | 98     /** | 
| 97      *  Set the viewport so that only the portion listed gets drawn. | 99      *  Set the viewport so that only the portion listed gets drawn. | 
| 98      */ | 100      */ | 
| 99     void setViewport(SkISize size) { fViewport = size; } | 101     void setViewport(SkISize size) { fViewport = size; } | 
| 100 | 102 | 
| 101     /** | 103     /** | 
| 102      *  Set the scale factor at which draw the picture. | 104      *  Set the scale factor at which draw the picture. | 
| 103      */ | 105      */ | 
| 104     void setScaleFactor(SkScalar scale) { fScaleFactor = scale; } | 106     void setScaleFactor(SkScalar scale) { fScaleFactor = scale; } | 
| 105 | 107 | 
| 106     /** | 108     /** | 
| 107      * Perform any setup that should done prior to each iteration of render() wh
     ich should not be | 109      * Perform any setup that should done prior to each iteration of render() wh
     ich should not be | 
| 108      * timed. | 110      * timed. | 
| 109      */ | 111      */ | 
| 110     virtual void setup() {} | 112     virtual void setup() {} | 
| 111 | 113 | 
| 112     /** | 114     /** | 
| 113      * Perform the work.  If this is being called within the context of bench_pi
     ctures, | 115      * Perform the work.  If this is being called within the context of bench_pi
     ctures, | 
| 114      * this is the step that will be timed. | 116      * this is the step that will be timed. | 
| 115      * | 117      * | 
| 116      * Typically "the work" is rendering an SkPicture into a bitmap, but in some
      subclasses | 118      * Typically "the work" is rendering an SkPicture into a bitmap, but in some
      subclasses | 
| 117      * it is recording the source SkPicture into another SkPicture. | 119      * it is recording the source SkPicture into another SkPicture. | 
| 118      * | 120      * | 
| 119      * If fOutputDir has been specified, the result of the work will be written 
     to that dir. | 121      * If fWritePath has been specified, the result of the work will be written 
     to that dir. | 
|  | 122      * If fMismatchPath has been specified, and the actual image result differs 
     from its | 
|  | 123      * expectation, the result of the work will be written to that dir. | 
| 120      * | 124      * | 
| 121      * @param out If non-null, the implementing subclass MAY allocate an SkBitma
     p, copy the | 125      * @param out If non-null, the implementing subclass MAY allocate an SkBitma
     p, copy the | 
| 122      *            output image into it, and return it here.  (Some subclasses ig
     nore this parameter) | 126      *            output image into it, and return it here.  (Some subclasses ig
     nore this parameter) | 
| 123      * @return bool True if rendering succeeded and, if fOutputDir had been spec
     ified, the output | 127      * @return bool True if rendering succeeded and, if fWritePath had been spec
     ified, the output | 
| 124      *              was successfully written to a file. | 128      *              was successfully written to a file. | 
| 125      */ | 129      */ | 
| 126     virtual bool render(SkBitmap** out = NULL) = 0; | 130     virtual bool render(SkBitmap** out = NULL) = 0; | 
| 127 | 131 | 
| 128     /** | 132     /** | 
| 129      * Called once finished with a particular SkPicture, before calling init aga
     in, and before | 133      * Called once finished with a particular SkPicture, before calling init aga
     in, and before | 
| 130      * being done with this Renderer. | 134      * being done with this Renderer. | 
| 131      */ | 135      */ | 
| 132     virtual void end(); | 136     virtual void end(); | 
| 133 | 137 | 
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 363 | 367 | 
| 364 protected: | 368 protected: | 
| 365     SkAutoTUnref<SkCanvas> fCanvas; | 369     SkAutoTUnref<SkCanvas> fCanvas; | 
| 366     SkAutoTUnref<SkPicture> fPicture; | 370     SkAutoTUnref<SkPicture> fPicture; | 
| 367     bool                   fUseChecksumBasedFilenames; | 371     bool                   fUseChecksumBasedFilenames; | 
| 368     ImageResultsAndExpectations*   fJsonSummaryPtr; | 372     ImageResultsAndExpectations*   fJsonSummaryPtr; | 
| 369     SkDeviceTypes          fDeviceType; | 373     SkDeviceTypes          fDeviceType; | 
| 370     BBoxHierarchyType      fBBoxHierarchyType; | 374     BBoxHierarchyType      fBBoxHierarchyType; | 
| 371     DrawFilterFlags        fDrawFilters[SkDrawFilter::kTypeCount]; | 375     DrawFilterFlags        fDrawFilters[SkDrawFilter::kTypeCount]; | 
| 372     SkString               fDrawFiltersConfig; | 376     SkString               fDrawFiltersConfig; | 
| 373     SkString               fOutputDir; | 377     SkString               fWritePath; | 
|  | 378     SkString               fMismatchPath; | 
| 374     SkString               fInputFilename; | 379     SkString               fInputFilename; | 
| 375     SkTileGridFactory::TileGridInfo fGridInfo; // used when fBBoxHierarchyType i
     s TileGrid | 380     SkTileGridFactory::TileGridInfo fGridInfo; // used when fBBoxHierarchyType i
     s TileGrid | 
| 376 | 381 | 
| 377     void buildBBoxHierarchy(); | 382     void buildBBoxHierarchy(); | 
| 378 | 383 | 
| 379     /** | 384     /** | 
| 380      * Return the total width that should be drawn. If the viewport width has be
     en set greater than | 385      * Return the total width that should be drawn. If the viewport width has be
     en set greater than | 
| 381      * 0, this will be the minimum of the current SkPicture's width and the view
     port's width. | 386      * 0, this will be the minimum of the current SkPicture's width and the view
     port's width. | 
| 382      */ | 387      */ | 
| 383     int getViewWidth(); | 388     int getViewWidth(); | 
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 440     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 445     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 
| 441 | 446 | 
| 442 private: | 447 private: | 
| 443     virtual SkString getConfigNameInternal() SK_OVERRIDE; | 448     virtual SkString getConfigNameInternal() SK_OVERRIDE; | 
| 444 | 449 | 
| 445     typedef PictureRenderer INHERITED; | 450     typedef PictureRenderer INHERITED; | 
| 446 }; | 451 }; | 
| 447 | 452 | 
| 448 class SimplePictureRenderer : public PictureRenderer { | 453 class SimplePictureRenderer : public PictureRenderer { | 
| 449 public: | 454 public: | 
| 450     virtual void init(SkPicture* pict, const SkString* outputDir, | 455     virtual void init(SkPicture* pict, const SkString* writePath, const SkString
     * mismatchPath, | 
| 451                       const SkString* inputFilename, bool useChecksumBasedFilena
     mes) SK_OVERRIDE; | 456                       const SkString* inputFilename, bool useChecksumBasedFilena
     mes) SK_OVERRIDE; | 
| 452 | 457 | 
| 453     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 458     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 
| 454 | 459 | 
| 455 private: | 460 private: | 
| 456     virtual SkString getConfigNameInternal() SK_OVERRIDE; | 461     virtual SkString getConfigNameInternal() SK_OVERRIDE; | 
| 457 | 462 | 
| 458     typedef PictureRenderer INHERITED; | 463     typedef PictureRenderer INHERITED; | 
| 459 }; | 464 }; | 
| 460 | 465 | 
| 461 class TiledPictureRenderer : public PictureRenderer { | 466 class TiledPictureRenderer : public PictureRenderer { | 
| 462 public: | 467 public: | 
| 463     TiledPictureRenderer(); | 468     TiledPictureRenderer(); | 
| 464 | 469 | 
| 465     virtual void init(SkPicture* pict, const SkString* outputDir, | 470     virtual void init(SkPicture* pict, const SkString* writePath, const SkString
     * mismatchPath, | 
| 466                       const SkString* inputFilename, bool useChecksumBasedFilena
     mes) SK_OVERRIDE; | 471                       const SkString* inputFilename, bool useChecksumBasedFilena
     mes) SK_OVERRIDE; | 
| 467 | 472 | 
| 468     /** | 473     /** | 
| 469      * Renders to tiles, rather than a single canvas. | 474      * Renders to tiles, rather than a single canvas. | 
| 470      * If fOutputDir was provided, a separate file is | 475      * If fWritePath was provided, a separate file is | 
| 471      * created for each tile, named "path0.png", "path1.png", etc. | 476      * created for each tile, named "path0.png", "path1.png", etc. | 
| 472      * Multithreaded mode currently does not support writing to a file. | 477      * Multithreaded mode currently does not support writing to a file. | 
| 473      */ | 478      */ | 
| 474     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 479     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 
| 475 | 480 | 
| 476     virtual void end() SK_OVERRIDE; | 481     virtual void end() SK_OVERRIDE; | 
| 477 | 482 | 
| 478     void setTileWidth(int width) { | 483     void setTileWidth(int width) { | 
| 479         fTileWidth = width; | 484         fTileWidth = width; | 
| 480     } | 485     } | 
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 580 }; | 585 }; | 
| 581 | 586 | 
| 582 class CloneData; | 587 class CloneData; | 
| 583 | 588 | 
| 584 class MultiCorePictureRenderer : public TiledPictureRenderer { | 589 class MultiCorePictureRenderer : public TiledPictureRenderer { | 
| 585 public: | 590 public: | 
| 586     explicit MultiCorePictureRenderer(int threadCount); | 591     explicit MultiCorePictureRenderer(int threadCount); | 
| 587 | 592 | 
| 588     ~MultiCorePictureRenderer(); | 593     ~MultiCorePictureRenderer(); | 
| 589 | 594 | 
| 590     virtual void init(SkPicture* pict, const SkString* outputDir, | 595     virtual void init(SkPicture* pict, const SkString* writePath, const SkString
     * mismatchPath, | 
| 591                       const SkString* inputFilename, bool useChecksumBasedFilena
     mes) SK_OVERRIDE; | 596                       const SkString* inputFilename, bool useChecksumBasedFilena
     mes) SK_OVERRIDE; | 
| 592 | 597 | 
| 593     /** | 598     /** | 
| 594      * Behaves like TiledPictureRenderer::render(), only using multiple threads. | 599      * Behaves like TiledPictureRenderer::render(), only using multiple threads. | 
| 595      */ | 600      */ | 
| 596     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 601     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 
| 597 | 602 | 
| 598     virtual void end() SK_OVERRIDE; | 603     virtual void end() SK_OVERRIDE; | 
| 599 | 604 | 
| 600     virtual bool supportsTimingIndividualTiles() SK_OVERRIDE { return false; } | 605     virtual bool supportsTimingIndividualTiles() SK_OVERRIDE { return false; } | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 633 | 638 | 
| 634     typedef PictureRenderer INHERITED; | 639     typedef PictureRenderer INHERITED; | 
| 635 }; | 640 }; | 
| 636 | 641 | 
| 637 extern PictureRenderer* CreateGatherPixelRefsRenderer(); | 642 extern PictureRenderer* CreateGatherPixelRefsRenderer(); | 
| 638 extern PictureRenderer* CreatePictureCloneRenderer(); | 643 extern PictureRenderer* CreatePictureCloneRenderer(); | 
| 639 | 644 | 
| 640 } | 645 } | 
| 641 | 646 | 
| 642 #endif  // PictureRenderer_DEFINED | 647 #endif  // PictureRenderer_DEFINED | 
| OLD | NEW | 
|---|