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 |