OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkChecksum.h" | 8 #include "SkChecksum.h" |
9 #include "SkResourceCache.h" | 9 #include "SkResourceCache.h" |
10 #include "SkMipMap.h" | 10 #include "SkMipMap.h" |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 | 284 |
285 size_t SkResourceCache::setTotalByteLimit(size_t newLimit) { | 285 size_t SkResourceCache::setTotalByteLimit(size_t newLimit) { |
286 size_t prevLimit = fTotalByteLimit; | 286 size_t prevLimit = fTotalByteLimit; |
287 fTotalByteLimit = newLimit; | 287 fTotalByteLimit = newLimit; |
288 if (newLimit < prevLimit) { | 288 if (newLimit < prevLimit) { |
289 this->purgeAsNeeded(); | 289 this->purgeAsNeeded(); |
290 } | 290 } |
291 return prevLimit; | 291 return prevLimit; |
292 } | 292 } |
293 | 293 |
| 294 SkCachedData* SkResourceCache::newCachedData(size_t bytes) { |
| 295 if (fDiscardableFactory) { |
| 296 SkDiscardableMemory* dm = fDiscardableFactory(bytes); |
| 297 return dm ? SkNEW_ARGS(SkCachedData, (bytes, dm)) : NULL; |
| 298 } else { |
| 299 return SkNEW_ARGS(SkCachedData, (sk_malloc_throw(bytes), bytes)); |
| 300 } |
| 301 } |
| 302 |
294 /////////////////////////////////////////////////////////////////////////////// | 303 /////////////////////////////////////////////////////////////////////////////// |
295 | 304 |
296 void SkResourceCache::detach(Rec* rec) { | 305 void SkResourceCache::detach(Rec* rec) { |
297 Rec* prev = rec->fPrev; | 306 Rec* prev = rec->fPrev; |
298 Rec* next = rec->fNext; | 307 Rec* next = rec->fNext; |
299 | 308 |
300 if (!prev) { | 309 if (!prev) { |
301 SkASSERT(fHead == rec); | 310 SkASSERT(fHead == rec); |
302 fHead = next; | 311 fHead = next; |
303 } else { | 312 } else { |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
463 SkResourceCache::DiscardableFactory SkResourceCache::GetDiscardableFactory() { | 472 SkResourceCache::DiscardableFactory SkResourceCache::GetDiscardableFactory() { |
464 SkAutoMutexAcquire am(gMutex); | 473 SkAutoMutexAcquire am(gMutex); |
465 return get_cache()->discardableFactory(); | 474 return get_cache()->discardableFactory(); |
466 } | 475 } |
467 | 476 |
468 SkBitmap::Allocator* SkResourceCache::GetAllocator() { | 477 SkBitmap::Allocator* SkResourceCache::GetAllocator() { |
469 SkAutoMutexAcquire am(gMutex); | 478 SkAutoMutexAcquire am(gMutex); |
470 return get_cache()->allocator(); | 479 return get_cache()->allocator(); |
471 } | 480 } |
472 | 481 |
| 482 SkCachedData* SkResourceCache::NewCachedData(size_t bytes) { |
| 483 SkAutoMutexAcquire am(gMutex); |
| 484 return get_cache()->newCachedData(bytes); |
| 485 } |
| 486 |
473 void SkResourceCache::Dump() { | 487 void SkResourceCache::Dump() { |
474 SkAutoMutexAcquire am(gMutex); | 488 SkAutoMutexAcquire am(gMutex); |
475 get_cache()->dump(); | 489 get_cache()->dump(); |
476 } | 490 } |
477 | 491 |
478 size_t SkResourceCache::SetSingleAllocationByteLimit(size_t size) { | 492 size_t SkResourceCache::SetSingleAllocationByteLimit(size_t size) { |
479 SkAutoMutexAcquire am(gMutex); | 493 SkAutoMutexAcquire am(gMutex); |
480 return get_cache()->setSingleAllocationByteLimit(size); | 494 return get_cache()->setSingleAllocationByteLimit(size); |
481 } | 495 } |
482 | 496 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 } | 535 } |
522 | 536 |
523 size_t SkGraphics::SetResourceCacheSingleAllocationByteLimit(size_t newLimit) { | 537 size_t SkGraphics::SetResourceCacheSingleAllocationByteLimit(size_t newLimit) { |
524 return SkResourceCache::SetSingleAllocationByteLimit(newLimit); | 538 return SkResourceCache::SetSingleAllocationByteLimit(newLimit); |
525 } | 539 } |
526 | 540 |
527 void SkGraphics::PurgeResourceCache() { | 541 void SkGraphics::PurgeResourceCache() { |
528 return SkResourceCache::PurgeAll(); | 542 return SkResourceCache::PurgeAll(); |
529 } | 543 } |
530 | 544 |
OLD | NEW |