| Index: src/core/SkScaledImageCache.h
|
| diff --git a/src/core/SkScaledImageCache.h b/src/core/SkScaledImageCache.h
|
| index fe072306d383f44eec7554724f4c3d8b94ae9fdf..817147e3b81e7bd75fc954fb029ca8854572d379 100644
|
| --- a/src/core/SkScaledImageCache.h
|
| +++ b/src/core/SkScaledImageCache.h
|
| @@ -60,9 +60,12 @@ public:
|
|
|
| static void Unlock(ID*);
|
|
|
| - static size_t GetBytesUsed();
|
| - static size_t GetByteLimit();
|
| - static size_t SetByteLimit(size_t newLimit);
|
| + static size_t GetTotalBytesUsed();
|
| + static size_t GetTotalByteLimit();
|
| + static size_t SetTotalByteLimit(size_t newLimit);
|
| +
|
| + static size_t SetSingleAllocationByteLimit(size_t);
|
| + static size_t GetSingleAllocationByteLimit();
|
|
|
| static SkBitmap::Allocator* GetAllocator();
|
|
|
| @@ -76,9 +79,9 @@ public:
|
| /**
|
| * Construct the cache to call DiscardableFactory when it
|
| * allocates memory for the pixels. In this mode, the cache has
|
| - * not explicit budget, and so methods like getBytesUsed() and
|
| - * getByteLimit() will return 0, and setByteLimit will ignore its argument
|
| - * and return 0.
|
| + * not explicit budget, and so methods like getTotalBytesUsed()
|
| + * and getTotalByteLimit() will return 0, and setTotalByteLimit
|
| + * will ignore its argument and return 0.
|
| */
|
| SkScaledImageCache(DiscardableFactory);
|
|
|
| @@ -86,7 +89,7 @@ public:
|
| * Construct the cache, allocating memory with malloc, and respect the
|
| * byteLimit, purging automatically when a new image is added to the cache
|
| * that pushes the total bytesUsed over the limit. Note: The limit can be
|
| - * changed at runtime with setByteLimit.
|
| + * changed at runtime with setTotalByteLimit.
|
| */
|
| SkScaledImageCache(size_t byteLimit);
|
|
|
| @@ -144,15 +147,22 @@ public:
|
| */
|
| void unlock(ID*);
|
|
|
| - size_t getBytesUsed() const { return fBytesUsed; }
|
| - size_t getByteLimit() const { return fByteLimit; }
|
| + size_t getTotalBytesUsed() const { return fTotalBytesUsed; }
|
| + size_t getTotalByteLimit() const { return fTotalByteLimit; }
|
|
|
| /**
|
| + * This is respected by SkBitmapProcState::possiblyScaleImage.
|
| + * 0 is no maximum at all; this is the default.
|
| + * setSingleAllocationByteLimit() returns the previous value.
|
| + */
|
| + size_t setSingleAllocationByteLimit(size_t maximumAllocationSize);
|
| + size_t getSingleAllocationByteLimit() const;
|
| + /**
|
| * Set the maximum number of bytes available to this cache. If the current
|
| * cache exceeds this new value, it will be purged to try to fit within
|
| * this new limit.
|
| */
|
| - size_t setByteLimit(size_t newLimit);
|
| + size_t setTotalByteLimit(size_t newLimit);
|
|
|
| SkBitmap::Allocator* allocator() const { return fAllocator; };
|
|
|
| @@ -175,8 +185,9 @@ private:
|
| // the allocator is NULL or one that matches discardables
|
| SkBitmap::Allocator* fAllocator;
|
|
|
| - size_t fBytesUsed;
|
| - size_t fByteLimit;
|
| + size_t fTotalBytesUsed;
|
| + size_t fTotalByteLimit;
|
| + size_t fSingleAllocationByteLimit;
|
| int fCount;
|
|
|
| Rec* findAndLock(uint32_t generationID, SkScalar sx, SkScalar sy,
|
|
|