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 #include "PictureRenderer.h" | 8 #include "PictureRenderer.h" |
9 #include "picture_utils.h" | 9 #include "picture_utils.h" |
10 #include "SamplePipeControllers.h" | 10 #include "SamplePipeControllers.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 return SkScalarLog(x) * log2_conversion_factor; | 41 return SkScalarLog(x) * log2_conversion_factor; |
42 } | 42 } |
43 | 43 |
44 namespace sk_tools { | 44 namespace sk_tools { |
45 | 45 |
46 enum { | 46 enum { |
47 kDefaultTileWidth = 256, | 47 kDefaultTileWidth = 256, |
48 kDefaultTileHeight = 256 | 48 kDefaultTileHeight = 256 |
49 }; | 49 }; |
50 | 50 |
51 void PictureRenderer::init(SkPicture* pict, const SkString* writePath, const SkS
tring* mismatchPath, | 51 void PictureRenderer::init(const SkPicture* pict, |
52 const SkString* inputFilename, bool useChecksumBasedF
ilenames) { | 52 const SkString* writePath, |
| 53 const SkString* mismatchPath, |
| 54 const SkString* inputFilename, |
| 55 bool useChecksumBasedFilenames) { |
53 this->CopyString(&fWritePath, writePath); | 56 this->CopyString(&fWritePath, writePath); |
54 this->CopyString(&fMismatchPath, mismatchPath); | 57 this->CopyString(&fMismatchPath, mismatchPath); |
55 this->CopyString(&fInputFilename, inputFilename); | 58 this->CopyString(&fInputFilename, inputFilename); |
56 fUseChecksumBasedFilenames = useChecksumBasedFilenames; | 59 fUseChecksumBasedFilenames = useChecksumBasedFilenames; |
57 | 60 |
58 SkASSERT(NULL == fPicture); | 61 SkASSERT(NULL == fPicture); |
59 SkASSERT(NULL == fCanvas.get()); | 62 SkASSERT(NULL == fCanvas.get()); |
60 if (NULL != fPicture || NULL != fCanvas.get()) { | 63 if (NULL != fPicture || NULL != fCanvas.get()) { |
61 return; | 64 return; |
62 } | 65 } |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 return true; | 402 return true; |
400 } | 403 } |
401 } | 404 } |
402 | 405 |
403 SkString PipePictureRenderer::getConfigNameInternal() { | 406 SkString PipePictureRenderer::getConfigNameInternal() { |
404 return SkString("pipe"); | 407 return SkString("pipe"); |
405 } | 408 } |
406 | 409 |
407 ////////////////////////////////////////////////////////////////////////////////
/////////////// | 410 ////////////////////////////////////////////////////////////////////////////////
/////////////// |
408 | 411 |
409 void SimplePictureRenderer::init(SkPicture* picture, const SkString* writePath, | 412 void SimplePictureRenderer::init(const SkPicture* picture, const SkString* write
Path, |
410 const SkString* mismatchPath, const SkString* i
nputFilename, | 413 const SkString* mismatchPath, const SkString* i
nputFilename, |
411 bool useChecksumBasedFilenames) { | 414 bool useChecksumBasedFilenames) { |
412 INHERITED::init(picture, writePath, mismatchPath, inputFilename, useChecksum
BasedFilenames); | 415 INHERITED::init(picture, writePath, mismatchPath, inputFilename, useChecksum
BasedFilenames); |
413 this->buildBBoxHierarchy(); | 416 this->buildBBoxHierarchy(); |
414 } | 417 } |
415 | 418 |
416 bool SimplePictureRenderer::render(SkBitmap** out) { | 419 bool SimplePictureRenderer::render(SkBitmap** out) { |
417 SkASSERT(fCanvas.get() != NULL); | 420 SkASSERT(fCanvas.get() != NULL); |
418 SkASSERT(NULL != fPicture); | 421 SkASSERT(NULL != fPicture); |
419 if (NULL == fCanvas.get() || NULL == fPicture) { | 422 if (NULL == fCanvas.get() || NULL == fPicture) { |
(...skipping 24 matching lines...) Expand all Loading... |
444 TiledPictureRenderer::TiledPictureRenderer() | 447 TiledPictureRenderer::TiledPictureRenderer() |
445 : fTileWidth(kDefaultTileWidth) | 448 : fTileWidth(kDefaultTileWidth) |
446 , fTileHeight(kDefaultTileHeight) | 449 , fTileHeight(kDefaultTileHeight) |
447 , fTileWidthPercentage(0.0) | 450 , fTileWidthPercentage(0.0) |
448 , fTileHeightPercentage(0.0) | 451 , fTileHeightPercentage(0.0) |
449 , fTileMinPowerOf2Width(0) | 452 , fTileMinPowerOf2Width(0) |
450 , fCurrentTileOffset(-1) | 453 , fCurrentTileOffset(-1) |
451 , fTilesX(0) | 454 , fTilesX(0) |
452 , fTilesY(0) { } | 455 , fTilesY(0) { } |
453 | 456 |
454 void TiledPictureRenderer::init(SkPicture* pict, const SkString* writePath, | 457 void TiledPictureRenderer::init(const SkPicture* pict, const SkString* writePath
, |
455 const SkString* mismatchPath, const SkString* in
putFilename, | 458 const SkString* mismatchPath, const SkString* in
putFilename, |
456 bool useChecksumBasedFilenames) { | 459 bool useChecksumBasedFilenames) { |
457 SkASSERT(NULL != pict); | 460 SkASSERT(NULL != pict); |
458 SkASSERT(0 == fTileRects.count()); | 461 SkASSERT(0 == fTileRects.count()); |
459 if (NULL == pict || fTileRects.count() != 0) { | 462 if (NULL == pict || fTileRects.count() != 0) { |
460 return; | 463 return; |
461 } | 464 } |
462 | 465 |
463 // Do not call INHERITED::init(), which would create a (potentially large) c
anvas which is not | 466 // Do not call INHERITED::init(), which would create a (potentially large) c
anvas which is not |
464 // used by bench_pictures. | 467 // used by bench_pictures. |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
572 } | 575 } |
573 } | 576 } |
574 } | 577 } |
575 | 578 |
576 /** | 579 /** |
577 * Draw the specified picture to the canvas translated to rectangle provided, so
that this mini | 580 * Draw the specified picture to the canvas translated to rectangle provided, so
that this mini |
578 * canvas represents the rectangle's portion of the overall picture. | 581 * canvas represents the rectangle's portion of the overall picture. |
579 * Saves and restores so that the initial clip and matrix return to their state
before this function | 582 * Saves and restores so that the initial clip and matrix return to their state
before this function |
580 * is called. | 583 * is called. |
581 */ | 584 */ |
582 static void draw_tile_to_canvas(SkCanvas* canvas, const SkRect& tileRect, SkPict
ure* picture) { | 585 static void draw_tile_to_canvas(SkCanvas* canvas, |
| 586 const SkRect& tileRect, |
| 587 const SkPicture* picture) { |
583 int saveCount = canvas->save(); | 588 int saveCount = canvas->save(); |
584 // Translate so that we draw the correct portion of the picture. | 589 // Translate so that we draw the correct portion of the picture. |
585 // Perform a postTranslate so that the scaleFactor does not interfere with t
he positioning. | 590 // Perform a postTranslate so that the scaleFactor does not interfere with t
he positioning. |
586 SkMatrix mat(canvas->getTotalMatrix()); | 591 SkMatrix mat(canvas->getTotalMatrix()); |
587 mat.postTranslate(-tileRect.fLeft, -tileRect.fTop); | 592 mat.postTranslate(-tileRect.fLeft, -tileRect.fTop); |
588 canvas->setMatrix(mat); | 593 canvas->setMatrix(mat); |
589 canvas->drawPicture(picture); | 594 canvas->drawPicture(picture); |
590 canvas->restoreToCount(saveCount); | 595 canvas->restoreToCount(saveCount); |
591 canvas->flush(); | 596 canvas->flush(); |
592 } | 597 } |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
753 virtual SkString getConfigNameInternal() SK_OVERRIDE { | 758 virtual SkString getConfigNameInternal() SK_OVERRIDE { |
754 return SkString("gather_pixelrefs"); | 759 return SkString("gather_pixelrefs"); |
755 } | 760 } |
756 }; | 761 }; |
757 | 762 |
758 PictureRenderer* CreateGatherPixelRefsRenderer() { | 763 PictureRenderer* CreateGatherPixelRefsRenderer() { |
759 return SkNEW(GatherRenderer); | 764 return SkNEW(GatherRenderer); |
760 } | 765 } |
761 | 766 |
762 } // namespace sk_tools | 767 } // namespace sk_tools |
OLD | NEW |