Chromium Code Reviews| Index: src/utils/SkDeferredCanvas.cpp |
| diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp |
| index cb69b4e282abee98cc95990b767fd24eae83d53d..46bd9e98f96269376b7d1081c022d7df9edc3cc1 100644 |
| --- a/src/utils/SkDeferredCanvas.cpp |
| +++ b/src/utils/SkDeferredCanvas.cpp |
| @@ -370,6 +370,7 @@ void SkDeferredDevice::flushPendingCommands(PlaybackMode playbackMode) { |
| void SkDeferredDevice::flush() { |
| this->flushPendingCommands(kNormal_PlaybackMode); |
| fImmediateCanvas->flush(); |
| + fFreshFrame = true; |
| } |
| size_t SkDeferredDevice::freeMemoryIfPossible(size_t bytesToFree) { |
| @@ -630,9 +631,11 @@ SkImage* SkDeferredCanvas::newImageSnapshot() { |
| } |
| bool SkDeferredCanvas::isFullFrame(const SkRect* rect, |
| - const SkPaint* paint) const { |
| + const SkPaint* paint) { |
| SkCanvas* canvas = this->drawingCanvas(); |
| - SkISize canvasSize = this->getDeviceSize(); |
| + if (isFreshFrame()) { |
|
yunchao
2014/09/05 08:43:13
maybe I should implement a new method named isNewF
reed1
2014/09/05 13:18:33
nit: this->isFreshFrame()
Justin Novosad
2014/09/05 13:54:49
isFreshFrame is not the right condition for refres
yunchao
2014/09/09 08:58:00
Done.
yunchao
2014/09/09 08:58:00
Done. Added a new interface SkDeferredCanvas::canv
|
| + canvasSize = this->getDeviceSize(); |
| + } |
| if (rect) { |
| if (!canvas->getTotalMatrix().rectStaysRect()) { |
| return false; // conservative |