| Index: src/core/SkScaledImageCache.cpp
|
| diff --git a/src/core/SkScaledImageCache.cpp b/src/core/SkScaledImageCache.cpp
|
| index 3e8929358c65bbdc2ccaee2da15fcce09fc6d238..80a2b779e3030b06647badd9c1abe9269299495e 100644
|
| --- a/src/core/SkScaledImageCache.cpp
|
| +++ b/src/core/SkScaledImageCache.cpp
|
| @@ -299,56 +299,18 @@ SkScaledImageCache::Rec* SkScaledImageCache::findAndLock(const SkScaledImageCach
|
| return rec;
|
| }
|
|
|
| -/**
|
| - This function finds the bounds of the bitmap *within its pixelRef*.
|
| - If the bitmap lacks a pixelRef, it will return an empty rect, since
|
| - that doesn't make sense. This may be a useful enough function that
|
| - it should be somewhere else (in SkBitmap?). */
|
| -static SkIRect get_bounds_from_bitmap(const SkBitmap& bm) {
|
| - if (!(bm.pixelRef())) {
|
| - return SkIRect::MakeEmpty();
|
| - }
|
| - SkIPoint origin = bm.pixelRefOrigin();
|
| - return SkIRect::MakeXYWH(origin.fX, origin.fY, bm.width(), bm.height());
|
| -}
|
| -
|
| -
|
| -SkScaledImageCache::ID* SkScaledImageCache::findAndLock(uint32_t genID,
|
| - int32_t width,
|
| - int32_t height,
|
| - SkBitmap* bitmap) {
|
| - Rec* rec = this->findAndLock(genID, SK_Scalar1, SK_Scalar1,
|
| - SkIRect::MakeWH(width, height));
|
| - if (rec) {
|
| - SkASSERT(NULL == rec->fMip);
|
| - SkASSERT(rec->fBitmap.pixelRef());
|
| - *bitmap = rec->fBitmap;
|
| - }
|
| - return rec_to_id(rec);
|
| -}
|
| -
|
| -SkScaledImageCache::ID* SkScaledImageCache::findAndLock(const SkBitmap& orig,
|
| - SkScalar scaleX,
|
| - SkScalar scaleY,
|
| - SkBitmap* scaled) {
|
| - if (0 == scaleX || 0 == scaleY) {
|
| - // degenerate, and the key we use for mipmaps
|
| - return NULL;
|
| - }
|
| - Rec* rec = this->findAndLock(orig.getGenerationID(), scaleX,
|
| - scaleY, get_bounds_from_bitmap(orig));
|
| +SkScaledImageCache::ID* SkScaledImageCache::findAndLock(const Key& key, SkBitmap* result) {
|
| + Rec* rec = this->findAndLock(key);
|
| if (rec) {
|
| SkASSERT(NULL == rec->fMip);
|
| SkASSERT(rec->fBitmap.pixelRef());
|
| - *scaled = rec->fBitmap;
|
| + *result = rec->fBitmap;
|
| }
|
| return rec_to_id(rec);
|
| }
|
|
|
| -SkScaledImageCache::ID* SkScaledImageCache::findAndLockMip(const SkBitmap& orig,
|
| - SkMipMap const ** mip) {
|
| - Rec* rec = this->findAndLock(orig.getGenerationID(), 0, 0,
|
| - get_bounds_from_bitmap(orig));
|
| +SkScaledImageCache::ID* SkScaledImageCache::findAndLock(const Key& key, SkMipMap const ** mip) {
|
| + Rec* rec = this->findAndLock(key);
|
| if (rec) {
|
| SkASSERT(rec->fMip);
|
| SkASSERT(NULL == rec->fBitmap.pixelRef());
|
| @@ -385,39 +347,12 @@ SkScaledImageCache::ID* SkScaledImageCache::addAndLock(SkScaledImageCache::Rec*
|
| return rec_to_id(rec);
|
| }
|
|
|
| -SkScaledImageCache::ID* SkScaledImageCache::addAndLock(uint32_t genID,
|
| - int32_t width,
|
| - int32_t height,
|
| - const SkBitmap& bitmap) {
|
| - GenWHKey key(genID, SK_Scalar1, SK_Scalar1, SkIRect::MakeWH(width, height));
|
| - Rec* rec = SkNEW_ARGS(Rec, (key, bitmap));
|
| - return this->addAndLock(rec);
|
| -}
|
| -
|
| -SkScaledImageCache::ID* SkScaledImageCache::addAndLock(const SkBitmap& orig,
|
| - SkScalar scaleX,
|
| - SkScalar scaleY,
|
| - const SkBitmap& scaled) {
|
| - if (0 == scaleX || 0 == scaleY) {
|
| - // degenerate, and the key we use for mipmaps
|
| - return NULL;
|
| - }
|
| - SkIRect bounds = get_bounds_from_bitmap(orig);
|
| - if (bounds.isEmpty()) {
|
| - return NULL;
|
| - }
|
| - GenWHKey key(orig.getGenerationID(), scaleX, scaleY, bounds);
|
| +SkScaledImageCache::ID* SkScaledImageCache::addAndLock(const Key& key, const SkBitmap& scaled) {
|
| Rec* rec = SkNEW_ARGS(Rec, (key, scaled));
|
| return this->addAndLock(rec);
|
| }
|
|
|
| -SkScaledImageCache::ID* SkScaledImageCache::addAndLockMip(const SkBitmap& orig,
|
| - const SkMipMap* mip) {
|
| - SkIRect bounds = get_bounds_from_bitmap(orig);
|
| - if (bounds.isEmpty()) {
|
| - return NULL;
|
| - }
|
| - GenWHKey key(orig.getGenerationID(), 0, 0, bounds);
|
| +SkScaledImageCache::ID* SkScaledImageCache::addAndLock(const Key& key, const SkMipMap* mip) {
|
| Rec* rec = SkNEW_ARGS(Rec, (key, mip));
|
| return this->addAndLock(rec);
|
| }
|
| @@ -663,52 +598,24 @@ static SkScaledImageCache* get_cache() {
|
| return gScaledImageCache;
|
| }
|
|
|
| -
|
| -SkScaledImageCache::ID* SkScaledImageCache::FindAndLock(
|
| - uint32_t pixelGenerationID,
|
| - int32_t width,
|
| - int32_t height,
|
| - SkBitmap* scaled) {
|
| - SkAutoMutexAcquire am(gMutex);
|
| - return get_cache()->findAndLock(pixelGenerationID, width, height, scaled);
|
| -}
|
| -
|
| -SkScaledImageCache::ID* SkScaledImageCache::AddAndLock(
|
| - uint32_t pixelGenerationID,
|
| - int32_t width,
|
| - int32_t height,
|
| - const SkBitmap& scaled) {
|
| - SkAutoMutexAcquire am(gMutex);
|
| - return get_cache()->addAndLock(pixelGenerationID, width, height, scaled);
|
| -}
|
| -
|
| -
|
| -SkScaledImageCache::ID* SkScaledImageCache::FindAndLock(const SkBitmap& orig,
|
| - SkScalar scaleX,
|
| - SkScalar scaleY,
|
| - SkBitmap* scaled) {
|
| +SkScaledImageCache::ID* SkScaledImageCache::FindAndLock(const Key& key, SkBitmap* result) {
|
| SkAutoMutexAcquire am(gMutex);
|
| - return get_cache()->findAndLock(orig, scaleX, scaleY, scaled);
|
| + return get_cache()->findAndLock(key, result);
|
| }
|
|
|
| -SkScaledImageCache::ID* SkScaledImageCache::FindAndLockMip(const SkBitmap& orig,
|
| - SkMipMap const ** mip) {
|
| +SkScaledImageCache::ID* SkScaledImageCache::FindAndLock(const Key& key, SkMipMap const ** mip) {
|
| SkAutoMutexAcquire am(gMutex);
|
| - return get_cache()->findAndLockMip(orig, mip);
|
| + return get_cache()->findAndLock(key, mip);
|
| }
|
|
|
| -SkScaledImageCache::ID* SkScaledImageCache::AddAndLock(const SkBitmap& orig,
|
| - SkScalar scaleX,
|
| - SkScalar scaleY,
|
| - const SkBitmap& scaled) {
|
| +SkScaledImageCache::ID* SkScaledImageCache::AddAndLock(const Key& key, const SkBitmap& scaled) {
|
| SkAutoMutexAcquire am(gMutex);
|
| - return get_cache()->addAndLock(orig, scaleX, scaleY, scaled);
|
| + return get_cache()->addAndLock(key, scaled);
|
| }
|
|
|
| -SkScaledImageCache::ID* SkScaledImageCache::AddAndLockMip(const SkBitmap& orig,
|
| - const SkMipMap* mip) {
|
| +SkScaledImageCache::ID* SkScaledImageCache::AddAndLock(const Key& key, const SkMipMap* mip) {
|
| SkAutoMutexAcquire am(gMutex);
|
| - return get_cache()->addAndLockMip(orig, mip);
|
| + return get_cache()->addAndLock(key, mip);
|
| }
|
|
|
| void SkScaledImageCache::Unlock(SkScaledImageCache::ID* id) {
|
|
|