aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils/SkDeferredCanvas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/SkDeferredCanvas.cpp')
-rw-r--r--src/utils/SkDeferredCanvas.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
index 5beaa5bc92..a854d8cf59 100644
--- a/src/utils/SkDeferredCanvas.cpp
+++ b/src/utils/SkDeferredCanvas.cpp
@@ -157,7 +157,7 @@ public:
virtual void* requestBlock(size_t minRequest, size_t* actual) SK_OVERRIDE;
virtual void notifyWritten(size_t bytes) SK_OVERRIDE;
void playback(bool silent);
- bool hasRecorded() const { return fAllocator.blockCount() != 0; }
+ bool hasPendingCommands() const { return fAllocator.blockCount() != 0; }
size_t storageAllocatedForRecording() const { return fAllocator.totalCapacity(); }
private:
enum {
@@ -237,6 +237,7 @@ public:
SkCanvas* immediateCanvas() const {return fImmediateCanvas;}
SkDevice* immediateDevice() const {return fImmediateDevice;}
bool isFreshFrame();
+ bool hasPendingCommands();
size_t storageAllocatedForRecording() const;
size_t freeMemoryIfPossible(size_t bytesToFree);
void flushPendingCommands(PlaybackMode);
@@ -377,7 +378,7 @@ void DeferredDevice::setNotificationClient(
}
void DeferredDevice::skipPendingCommands() {
- if (!fRecordingCanvas->isDrawingToLayer() && fPipeController.hasRecorded()) {
+ if (!fRecordingCanvas->isDrawingToLayer() && fPipeController.hasPendingCommands()) {
fFreshFrame = true;
flushPendingCommands(kSilent_PlaybackMode);
}
@@ -389,8 +390,12 @@ bool DeferredDevice::isFreshFrame() {
return ret;
}
+bool DeferredDevice::hasPendingCommands() {
+ return fPipeController.hasPendingCommands();
+}
+
void DeferredDevice::flushPendingCommands(PlaybackMode playbackMode) {
- if (!fPipeController.hasRecorded()) {
+ if (!fPipeController.hasPendingCommands()) {
return;
}
if (playbackMode == kNormal_PlaybackMode && fNotificationClient) {
@@ -589,6 +594,10 @@ bool SkDeferredCanvas::isFreshFrame() const {
return this->getDeferredDevice()->isFreshFrame();
}
+bool SkDeferredCanvas::hasPendingCommands() const {
+ return this->getDeferredDevice()->hasPendingCommands();
+}
+
void SkDeferredCanvas::silentFlush() {
if (fDeferredDrawing) {
this->getDeferredDevice()->flushPendingCommands(kSilent_PlaybackMode);