| 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 |