Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1436)

Unified Diff: src/utils/SkDeferredCanvas.cpp

Issue 545813002: Picture Recording: fix the performance bottleneck in SkDeferredCanvas::isFullFrame (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: use interface in SkDeferredCanvas Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698