Adding API to SkGPipe and SkDeferredCanvas for controlling memory usage externally
BUG=http://code.google.com/p/chromium/issues/detail?id=136828
Review URL: https://codereview.appspot.com/6454102
git-svn-id: http://skia.googlecode.com/svn/trunk@4971 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/utils/SkDeferredCanvas.h b/include/utils/SkDeferredCanvas.h
index dab1eb5..363de1b 100644
--- a/include/utils/SkDeferredCanvas.h
+++ b/include/utils/SkDeferredCanvas.h
@@ -98,6 +98,21 @@
*/
void setMaxRecordingStorage(size_t maxStorage);
+ /**
+ * Returns the number of bytes currently allocated for the purpose of
+ * recording draw commands.
+ */
+ size_t storageAllocatedForRecording() const;
+
+ /**
+ * Attempt to reduce the storage allocated for recording by evicting
+ * cache resources.
+ * @param bytesToFree minimum number of bytes that should be attempted to
+ * be freed.
+ * @return number of bytes actually freed.
+ */
+ size_t freeMemoryIfPossible(size_t bytesToFree);
+
// Overrides of the SkCanvas interface
virtual int save(SaveFlags flags) SK_OVERRIDE;
virtual int saveLayer(const SkRect* bounds, const SkPaint* paint,
@@ -241,6 +256,8 @@
*/
bool isFreshFrame();
+ size_t storageAllocatedForRecording() const;
+ size_t freeMemoryIfPossible(size_t bytesToFree);
void flushPending();
void contentsCleared();
void setMaxRecordingStorage(size_t);