| 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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 49 #endif | 49 #endif | 
| 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         kQuadTree_BBoxHierarchyType, |  | 
| 60         kRTree_BBoxHierarchyType, | 59         kRTree_BBoxHierarchyType, | 
| 61         kTileGrid_BBoxHierarchyType, | 60         kTileGrid_BBoxHierarchyType, | 
| 62 | 61 | 
| 63         kLast_BBoxHierarchyType = kTileGrid_BBoxHierarchyType, | 62         kLast_BBoxHierarchyType = kTileGrid_BBoxHierarchyType, | 
| 64     }; | 63     }; | 
| 65 | 64 | 
| 66     // this uses SkPaint::Flags as a base and adds additional flags | 65     // this uses SkPaint::Flags as a base and adds additional flags | 
| 67     enum DrawFilterFlags { | 66     enum DrawFilterFlags { | 
| 68         kNone_DrawFilterFlag = 0, | 67         kNone_DrawFilterFlag = 0, | 
| 69         kHinting_DrawFilterFlag = 0x10000, // toggles between no hinting and nor
     mal hinting | 68         kHinting_DrawFilterFlag = 0x10000, // toggles between no hinting and nor
     mal hinting | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 83      * | 82      * | 
| 84      * @param pict The SkPicture to render. | 83      * @param pict The SkPicture to render. | 
| 85      * @param writePath The output directory within which this renderer should w
     rite all images, | 84      * @param writePath The output directory within which this renderer should w
     rite all images, | 
| 86      *     or NULL if this renderer should not write all images. | 85      *     or NULL if this renderer should not write all images. | 
| 87      * @param mismatchPath The output directory within which this renderer shoul
     d write any images | 86      * @param mismatchPath The output directory within which this renderer shoul
     d write any images | 
| 88      *     which do not match expectations, or NULL if this renderer should not 
     write mismatches. | 87      *     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. | 88      * @param inputFilename The name of the input file we are rendering. | 
| 90      * @param useChecksumBasedFilenames Whether to use checksum-based filenames 
     when writing | 89      * @param useChecksumBasedFilenames Whether to use checksum-based filenames 
     when writing | 
| 91      *     bitmap images to disk. | 90      *     bitmap images to disk. | 
| 92      */ | 91      */ | 
| 93     virtual void init(const SkPicture* pict, | 92     virtual void init(const SkPicture* pict, | 
| 94                       const SkString* writePath, | 93                       const SkString* writePath, | 
| 95                       const SkString* mismatchPath, | 94                       const SkString* mismatchPath, | 
| 96                       const SkString* inputFilename, | 95                       const SkString* inputFilename, | 
| 97                       bool useChecksumBasedFilenames); | 96                       bool useChecksumBasedFilenames); | 
| 98 | 97 | 
| 99     /** | 98     /** | 
| 100      * TODO(epoger): Temporary hack, while we work on http://skbug.com/2584 ('be
     nch_pictures is | 99      * TODO(epoger): Temporary hack, while we work on http://skbug.com/2584 ('be
     nch_pictures is | 
| 101      * timing reading pixels and writing json files'), such that: | 100      * timing reading pixels and writing json files'), such that: | 
| 102      * - render_pictures can call this method and continue to work | 101      * - render_pictures can call this method and continue to work | 
| 103      * - any other callers (bench_pictures) will skip calls to write() by defaul
     t | 102      * - any other callers (bench_pictures) will skip calls to write() by defaul
     t | 
| 104      */ | 103      */ | 
| 105     void enableWrites() { fEnableWrites = true; } | 104     void enableWrites() { fEnableWrites = true; } | 
| 106 | 105 | 
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 254     SkString getConfigName() { | 253     SkString getConfigName() { | 
| 255         SkString config = this->getConfigNameInternal(); | 254         SkString config = this->getConfigNameInternal(); | 
| 256         if (!fViewport.isEmpty()) { | 255         if (!fViewport.isEmpty()) { | 
| 257             config.appendf("_viewport_%ix%i", fViewport.width(), fViewport.heigh
     t()); | 256             config.appendf("_viewport_%ix%i", fViewport.width(), fViewport.heigh
     t()); | 
| 258         } | 257         } | 
| 259         if (fScaleFactor != SK_Scalar1) { | 258         if (fScaleFactor != SK_Scalar1) { | 
| 260             config.appendf("_scalar_%f", SkScalarToFloat(fScaleFactor)); | 259             config.appendf("_scalar_%f", SkScalarToFloat(fScaleFactor)); | 
| 261         } | 260         } | 
| 262         if (kRTree_BBoxHierarchyType == fBBoxHierarchyType) { | 261         if (kRTree_BBoxHierarchyType == fBBoxHierarchyType) { | 
| 263             config.append("_rtree"); | 262             config.append("_rtree"); | 
| 264         } else if (kQuadTree_BBoxHierarchyType == fBBoxHierarchyType) { |  | 
| 265             config.append("_quadtree"); |  | 
| 266         } else if (kTileGrid_BBoxHierarchyType == fBBoxHierarchyType) { | 263         } else if (kTileGrid_BBoxHierarchyType == fBBoxHierarchyType) { | 
| 267             config.append("_grid"); | 264             config.append("_grid"); | 
| 268             config.append("_"); | 265             config.append("_"); | 
| 269             config.appendS32(fGridInfo.fTileInterval.width()); | 266             config.appendS32(fGridInfo.fTileInterval.width()); | 
| 270             config.append("x"); | 267             config.append("x"); | 
| 271             config.appendS32(fGridInfo.fTileInterval.height()); | 268             config.appendS32(fGridInfo.fTileInterval.height()); | 
| 272         } | 269         } | 
| 273 #if SK_SUPPORT_GPU | 270 #if SK_SUPPORT_GPU | 
| 274         switch (fDeviceType) { | 271         switch (fDeviceType) { | 
| 275             case kGPU_DeviceType: | 272             case kGPU_DeviceType: | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
| 304     Json::Value getJSONConfig() { | 301     Json::Value getJSONConfig() { | 
| 305         Json::Value result; | 302         Json::Value result; | 
| 306 | 303 | 
| 307         result["mode"] = this->getConfigNameInternal().c_str(); | 304         result["mode"] = this->getConfigNameInternal().c_str(); | 
| 308         result["scale"] = 1.0f; | 305         result["scale"] = 1.0f; | 
| 309         if (SK_Scalar1 != fScaleFactor) { | 306         if (SK_Scalar1 != fScaleFactor) { | 
| 310             result["scale"] = SkScalarToFloat(fScaleFactor); | 307             result["scale"] = SkScalarToFloat(fScaleFactor); | 
| 311         } | 308         } | 
| 312         if (kRTree_BBoxHierarchyType == fBBoxHierarchyType) { | 309         if (kRTree_BBoxHierarchyType == fBBoxHierarchyType) { | 
| 313             result["bbh"] = "rtree"; | 310             result["bbh"] = "rtree"; | 
| 314         } else if (kQuadTree_BBoxHierarchyType == fBBoxHierarchyType) { |  | 
| 315             result["bbh"] = "quadtree"; |  | 
| 316         } else if (kTileGrid_BBoxHierarchyType == fBBoxHierarchyType) { | 311         } else if (kTileGrid_BBoxHierarchyType == fBBoxHierarchyType) { | 
| 317             SkString tmp("grid_"); | 312             SkString tmp("grid_"); | 
| 318             tmp.appendS32(fGridInfo.fTileInterval.width()); | 313             tmp.appendS32(fGridInfo.fTileInterval.width()); | 
| 319             tmp.append("x"); | 314             tmp.append("x"); | 
| 320             tmp.appendS32(fGridInfo.fTileInterval.height()); | 315             tmp.appendS32(fGridInfo.fTileInterval.height()); | 
| 321             result["bbh"] = tmp.c_str(); | 316             result["bbh"] = tmp.c_str(); | 
| 322         } | 317         } | 
| 323 #if SK_SUPPORT_GPU | 318 #if SK_SUPPORT_GPU | 
| 324         SkString tmp; | 319         SkString tmp; | 
| 325         switch (fDeviceType) { | 320         switch (fDeviceType) { | 
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 409     } | 404     } | 
| 410 #endif | 405 #endif | 
| 411 | 406 | 
| 412     SkCanvas* getCanvas() { | 407     SkCanvas* getCanvas() { | 
| 413         return fCanvas; | 408         return fCanvas; | 
| 414     } | 409     } | 
| 415 | 410 | 
| 416     const SkPicture* getPicture() { | 411     const SkPicture* getPicture() { | 
| 417         return fPicture; | 412         return fPicture; | 
| 418     } | 413     } | 
| 419 | 414 | 
| 420 #if SK_SUPPORT_GPU | 415 #if SK_SUPPORT_GPU | 
| 421     explicit PictureRenderer(const GrContext::Options &opts) | 416     explicit PictureRenderer(const GrContext::Options &opts) | 
| 422 #else | 417 #else | 
| 423     PictureRenderer() | 418     PictureRenderer() | 
| 424 #endif | 419 #endif | 
| 425         : fJsonSummaryPtr(NULL) | 420         : fJsonSummaryPtr(NULL) | 
| 426         , fDeviceType(kBitmap_DeviceType) | 421         , fDeviceType(kBitmap_DeviceType) | 
| 427         , fEnableWrites(false) | 422         , fEnableWrites(false) | 
| 428         , fBBoxHierarchyType(kNone_BBoxHierarchyType) | 423         , fBBoxHierarchyType(kNone_BBoxHierarchyType) | 
| 429         , fScaleFactor(SK_Scalar1) | 424         , fScaleFactor(SK_Scalar1) | 
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 543     typedef PictureRenderer INHERITED; | 538     typedef PictureRenderer INHERITED; | 
| 544 }; | 539 }; | 
| 545 | 540 | 
| 546 class SimplePictureRenderer : public PictureRenderer { | 541 class SimplePictureRenderer : public PictureRenderer { | 
| 547 public: | 542 public: | 
| 548 #if SK_SUPPORT_GPU | 543 #if SK_SUPPORT_GPU | 
| 549     SimplePictureRenderer(const GrContext::Options &opts) : INHERITED(opts) { } | 544     SimplePictureRenderer(const GrContext::Options &opts) : INHERITED(opts) { } | 
| 550 #endif | 545 #endif | 
| 551 | 546 | 
| 552     virtual void init(const SkPicture* pict, | 547     virtual void init(const SkPicture* pict, | 
| 553                       const SkString* writePath, | 548                       const SkString* writePath, | 
| 554                       const SkString* mismatchPath, | 549                       const SkString* mismatchPath, | 
| 555                       const SkString* inputFilename, | 550                       const SkString* inputFilename, | 
| 556                       bool useChecksumBasedFilenames) SK_OVERRIDE; | 551                       bool useChecksumBasedFilenames) SK_OVERRIDE; | 
| 557 | 552 | 
| 558     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 553     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 
| 559 | 554 | 
| 560 private: | 555 private: | 
| 561     virtual SkString getConfigNameInternal() SK_OVERRIDE; | 556     virtual SkString getConfigNameInternal() SK_OVERRIDE; | 
| 562 | 557 | 
| 563     typedef PictureRenderer INHERITED; | 558     typedef PictureRenderer INHERITED; | 
| 564 }; | 559 }; | 
| 565 | 560 | 
| 566 class TiledPictureRenderer : public PictureRenderer { | 561 class TiledPictureRenderer : public PictureRenderer { | 
| 567 public: | 562 public: | 
| 568 #if SK_SUPPORT_GPU | 563 #if SK_SUPPORT_GPU | 
| 569     TiledPictureRenderer(const GrContext::Options &opts); | 564     TiledPictureRenderer(const GrContext::Options &opts); | 
| 570 #else | 565 #else | 
| 571     TiledPictureRenderer(); | 566     TiledPictureRenderer(); | 
| 572 #endif | 567 #endif | 
| 573 | 568 | 
| 574     virtual void init(const SkPicture* pict, | 569     virtual void init(const SkPicture* pict, | 
| 575                       const SkString* writePath, | 570                       const SkString* writePath, | 
| 576                       const SkString* mismatchPath, | 571                       const SkString* mismatchPath, | 
| 577                       const SkString* inputFilename, | 572                       const SkString* inputFilename, | 
| 578                       bool useChecksumBasedFilenames) SK_OVERRIDE; | 573                       bool useChecksumBasedFilenames) SK_OVERRIDE; | 
| 579 | 574 | 
| 580     /** | 575     /** | 
| 581      * Renders to tiles, rather than a single canvas. | 576      * Renders to tiles, rather than a single canvas. | 
| 582      * If fWritePath was provided, a separate file is | 577      * If fWritePath was provided, a separate file is | 
| 583      * created for each tile, named "path0.png", "path1.png", etc. | 578      * created for each tile, named "path0.png", "path1.png", etc. | 
| 584      */ | 579      */ | 
| 585     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 580     virtual bool render(SkBitmap** out = NULL) SK_OVERRIDE; | 
| 586 | 581 | 
| 587     virtual void end() SK_OVERRIDE; | 582     virtual void end() SK_OVERRIDE; | 
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 718 | 713 | 
| 719 #if SK_SUPPORT_GPU | 714 #if SK_SUPPORT_GPU | 
| 720 extern PictureRenderer* CreateGatherPixelRefsRenderer(const GrContext::Options& 
     opts); | 715 extern PictureRenderer* CreateGatherPixelRefsRenderer(const GrContext::Options& 
     opts); | 
| 721 #else | 716 #else | 
| 722 extern PictureRenderer* CreateGatherPixelRefsRenderer(); | 717 extern PictureRenderer* CreateGatherPixelRefsRenderer(); | 
| 723 #endif | 718 #endif | 
| 724 | 719 | 
| 725 } | 720 } | 
| 726 | 721 | 
| 727 #endif  // PictureRenderer_DEFINED | 722 #endif  // PictureRenderer_DEFINED | 
| OLD | NEW | 
|---|