Index: src/core/SkScaledImageCache.h |
diff --git a/src/core/SkScaledImageCache.h b/src/core/SkScaledImageCache.h |
index 32474b7f61013943ec6a1bd6ce741d8184f20aa1..fee69d2d58598eb8fee6a7562a45bd2940912e6f 100644 |
--- a/src/core/SkScaledImageCache.h |
+++ b/src/core/SkScaledImageCache.h |
@@ -31,13 +31,25 @@ public: |
* instance of this cache. |
*/ |
+ static ID* FindAndLock(uint32_t pixelGenerationID, |
+ int32_t width, |
+ int32_t height, |
+ SkBitmap* returnedBitmap); |
+ |
static ID* FindAndLock(const SkBitmap& original, SkScalar scaleX, |
- SkScalar scaleY, SkBitmap* scaled); |
- static ID* FindAndLockMip(const SkBitmap& original, SkMipMap const**); |
+ SkScalar scaleY, SkBitmap* returnedBitmap); |
+ static ID* FindAndLockMip(const SkBitmap& original, |
+ SkMipMap const** returnedMipMap); |
+ |
+ |
+ static ID* AddAndLock(uint32_t pixelGenerationID, |
+ int32_t width, |
+ int32_t height, |
+ const SkBitmap& bitmap); |
static ID* AddAndLock(const SkBitmap& original, SkScalar scaleX, |
- SkScalar scaleY, const SkBitmap& scaled); |
- static ID* AddAndLockMip(const SkBitmap& original, const SkMipMap*); |
+ SkScalar scaleY, const SkBitmap& bitmap); |
+ static ID* AddAndLockMip(const SkBitmap& original, const SkMipMap* mipMap); |
static void Unlock(ID*); |
@@ -51,24 +63,48 @@ public: |
~SkScaledImageCache(); |
/** |
- * Search the cache for a scaled version of original. If found, return it |
- * in scaled, and return its ID pointer. Use the returned ptr to unlock |
- * the cache when you are done using scaled. |
+ * Search the cache for a matching bitmap (using generationID, |
+ * width, and height as a search key). If found, return it in |
+ * returnedBitmap, and return its ID pointer. Use the returned |
+ * ptr to unlock the cache when you are done using |
+ * returnedBitmap. |
+ * |
+ * If a match is not found, returnedBitmap will be unmodifed, and |
+ * NULL will be returned. |
+ * |
+ * This is used if there is no scaling or subsetting, for example |
+ * by SkLazyPixelRef. |
+ */ |
+ ID* findAndLock(uint32_t pixelGenerationID, int32_t width, int32_t height, |
+ SkBitmap* returnedBitmap); |
+ |
+ /** |
+ * Search the cache for a scaled version of original. If found, |
+ * return it in returnedBitmap, and return its ID pointer. Use |
+ * the returned ptr to unlock the cache when you are done using |
+ * returnedBitmap. |
* |
- * If a match is not found, scaled will be unmodifed, and NULL will be |
- * returned. |
+ * If a match is not found, returnedBitmap will be unmodifed, and |
+ * NULL will be returned. |
*/ |
ID* findAndLock(const SkBitmap& original, SkScalar scaleX, |
- SkScalar scaleY, SkBitmap* scaled); |
- ID* findAndLockMip(const SkBitmap& original, SkMipMap const**); |
+ SkScalar scaleY, SkBitmap* returnedBitmap); |
+ ID* findAndLockMip(const SkBitmap& original, |
+ SkMipMap const** returnedMipMap); |
/** |
- * To add a new (scaled) bitmap to the cache, call AddAndLock. Use the |
- * returned ptr to unlock the cache when you are done using scaled. |
+ * To add a new bitmap (or mipMap) to the cache, call |
+ * AddAndLock. Use the returned ptr to unlock the cache when you |
+ * are done using scaled. |
+ * |
+ * Use (generationID, width, and height) or (original, scaleX, |
+ * scaleY) or (original) as a search key |
*/ |
+ ID* addAndLock(uint32_t pixelGenerationID, int32_t width, int32_t height, |
+ const SkBitmap& bitmap); |
ID* addAndLock(const SkBitmap& original, SkScalar scaleX, |
- SkScalar scaleY, const SkBitmap& scaled); |
- ID* addAndLockMip(const SkBitmap& original, const SkMipMap*); |
+ SkScalar scaleY, const SkBitmap& bitmap); |
+ ID* addAndLockMip(const SkBitmap& original, const SkMipMap* mipMap); |
/** |
* Given a non-null ID ptr returned by either findAndLock or addAndLock, |
@@ -101,7 +137,9 @@ private: |
size_t fByteLimit; |
int fCount; |
- Rec* findAndLock(const SkBitmap& original, SkScalar sx, SkScalar sy); |
+ Rec* findAndLock(uint32_t generationID, SkScalar sx, SkScalar sy, |
+ const SkIRect& bounds); |
+ void addAndLock(Rec* rec); |
void purgeAsNeeded(); |
@@ -115,5 +153,4 @@ private: |
void validate() const {} |
#endif |
}; |
- |
#endif |