Making SkDeferredCanvas::silentFlush trigger a skippedPendingDrawCommands callback
The bug was preventing Canvas2DLayerBridge from properly tracking changes
in memory consumption that were triggered by calls to silentFlush.
BUG=344666
TEST=DeferredCanvas unit test
R=senorblanco@google.com, senorblanco@chromium.org
Author: junov@chromium.org
Review URL: https://codereview.chromium.org/214803002
git-svn-id: http://skia.googlecode.com/svn/trunk@13965 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
index 2c5e530..4836cd7 100644
--- a/src/utils/SkDeferredCanvas.cpp
+++ b/src/utils/SkDeferredCanvas.cpp
@@ -324,9 +324,6 @@
if (fPipeController.hasPendingCommands()) {
fFreshFrame = true;
flushPendingCommands(kSilent_PlaybackMode);
- if (fNotificationClient) {
- fNotificationClient->skippedPendingDrawCommands();
- }
}
}
}
@@ -363,9 +360,14 @@
}
fPipeWriter.flushRecording(true);
fPipeController.playback(kSilent_PlaybackMode == playbackMode);
- if (playbackMode == kNormal_PlaybackMode && fNotificationClient) {
- fNotificationClient->flushedDrawCommands();
+ if (fNotificationClient) {
+ if (playbackMode == kSilent_PlaybackMode) {
+ fNotificationClient->skippedPendingDrawCommands();
+ } else {
+ fNotificationClient->flushedDrawCommands();
+ }
}
+
fPreviousStorageAllocated = storageAllocatedForRecording();
}