OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "SkDeferredCanvas.h" | 9 #include "SkDeferredCanvas.h" |
10 | 10 |
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 canvas.setDeferredDrawing(false); | 543 canvas.setDeferredDrawing(false); |
544 fCanvas = &canvas; | 544 fCanvas = &canvas; |
545 } else { | 545 } else { |
546 fCanvas = NULL; | 546 fCanvas = NULL; |
547 } | 547 } |
548 } | 548 } |
549 | 549 |
550 SkDeferredCanvas* fCanvas; | 550 SkDeferredCanvas* fCanvas; |
551 }; | 551 }; |
552 | 552 |
553 #if !SK_DEFERRED_CANVAS_USES_FACTORIES | |
554 SkDeferredCanvas::SkDeferredCanvas() { | |
555 this->init(); | |
556 } | |
557 | |
558 SkDeferredCanvas::SkDeferredCanvas(SkDevice* device) { | |
559 this->init(); | |
560 this->setDevice(device); | |
561 } | |
562 | |
563 SkDeferredCanvas::SkDeferredCanvas(SkSurface* surface) { | |
564 this->init(); | |
565 this->INHERITED::setDevice(SkNEW_ARGS(DeferredDevice, (surface)))->unref(); | |
566 } | |
567 #endif | |
568 | |
569 SkDeferredCanvas* SkDeferredCanvas::Create(SkSurface* surface) { | 553 SkDeferredCanvas* SkDeferredCanvas::Create(SkSurface* surface) { |
570 SkAutoTUnref<DeferredDevice> deferredDevice(SkNEW_ARGS(DeferredDevice, (surf
ace))); | 554 SkAutoTUnref<DeferredDevice> deferredDevice(SkNEW_ARGS(DeferredDevice, (surf
ace))); |
571 return SkNEW_ARGS(SkDeferredCanvas, (deferredDevice)); | 555 return SkNEW_ARGS(SkDeferredCanvas, (deferredDevice)); |
572 } | 556 } |
573 | 557 |
574 #ifdef SK_DEVELOPER | |
575 SkDeferredCanvas* SkDeferredCanvas::Create(SkDevice* device) { | 558 SkDeferredCanvas* SkDeferredCanvas::Create(SkDevice* device) { |
576 SkAutoTUnref<DeferredDevice> deferredDevice(SkNEW_ARGS(DeferredDevice, (devi
ce))); | 559 SkAutoTUnref<DeferredDevice> deferredDevice(SkNEW_ARGS(DeferredDevice, (devi
ce))); |
577 return SkNEW_ARGS(SkDeferredCanvas, (deferredDevice)); | 560 return SkNEW_ARGS(SkDeferredCanvas, (deferredDevice)); |
578 } | 561 } |
579 #endif | |
580 | 562 |
581 SkDeferredCanvas::SkDeferredCanvas(DeferredDevice* device) : SkCanvas (device) { | 563 SkDeferredCanvas::SkDeferredCanvas(DeferredDevice* device) : SkCanvas (device) { |
582 this->init(); | 564 this->init(); |
583 } | 565 } |
584 | 566 |
585 void SkDeferredCanvas::init() { | 567 void SkDeferredCanvas::init() { |
586 fDeferredDrawing = true; // On by default | 568 fDeferredDrawing = true; // On by default |
587 } | 569 } |
588 | 570 |
589 void SkDeferredCanvas::setMaxRecordingStorage(size_t maxStorage) { | 571 void SkDeferredCanvas::setMaxRecordingStorage(size_t maxStorage) { |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
655 | 637 |
656 void SkDeferredCanvas::silentFlush() { | 638 void SkDeferredCanvas::silentFlush() { |
657 if (fDeferredDrawing) { | 639 if (fDeferredDrawing) { |
658 this->getDeferredDevice()->flushPendingCommands(kSilent_PlaybackMode); | 640 this->getDeferredDevice()->flushPendingCommands(kSilent_PlaybackMode); |
659 } | 641 } |
660 } | 642 } |
661 | 643 |
662 SkDeferredCanvas::~SkDeferredCanvas() { | 644 SkDeferredCanvas::~SkDeferredCanvas() { |
663 } | 645 } |
664 | 646 |
665 SkDevice* SkDeferredCanvas::setDevice(SkDevice* device) { | |
666 #if SK_DEFERRED_CANVAS_USES_FACTORIES | |
667 SkASSERT(0); // setDevice is deprecated | |
668 #else | |
669 this->INHERITED::setDevice(SkNEW_ARGS(DeferredDevice, (device)))->unref(); | |
670 #endif | |
671 return device; | |
672 } | |
673 | |
674 SkSurface* SkDeferredCanvas::setSurface(SkSurface* surface) { | 647 SkSurface* SkDeferredCanvas::setSurface(SkSurface* surface) { |
675 DeferredDevice* deferredDevice = this->getDeferredDevice(); | 648 DeferredDevice* deferredDevice = this->getDeferredDevice(); |
676 SkASSERT(NULL != deferredDevice); | 649 SkASSERT(NULL != deferredDevice); |
677 // By swapping the surface into the existing device, we preserve | 650 // By swapping the surface into the existing device, we preserve |
678 // all pending commands, which can help to seamlessly recover from | 651 // all pending commands, which can help to seamlessly recover from |
679 // a lost accelerated graphics context. | 652 // a lost accelerated graphics context. |
680 deferredDevice->setSurface(surface); | 653 deferredDevice->setSurface(surface); |
681 return surface; | 654 return surface; |
682 } | 655 } |
683 | 656 |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1029 SkDrawFilter* SkDeferredCanvas::setDrawFilter(SkDrawFilter* filter) { | 1002 SkDrawFilter* SkDeferredCanvas::setDrawFilter(SkDrawFilter* filter) { |
1030 this->drawingCanvas()->setDrawFilter(filter); | 1003 this->drawingCanvas()->setDrawFilter(filter); |
1031 this->INHERITED::setDrawFilter(filter); | 1004 this->INHERITED::setDrawFilter(filter); |
1032 this->recordedDrawCommand(); | 1005 this->recordedDrawCommand(); |
1033 return filter; | 1006 return filter; |
1034 } | 1007 } |
1035 | 1008 |
1036 SkCanvas* SkDeferredCanvas::canvasForDrawIter() { | 1009 SkCanvas* SkDeferredCanvas::canvasForDrawIter() { |
1037 return this->drawingCanvas(); | 1010 return this->drawingCanvas(); |
1038 } | 1011 } |
OLD | NEW |