| 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 "SkScaledImageCache.h" | 8 #include "SkScaledImageCache.h" |
| 9 #include "SkMipMap.h" | 9 #include "SkMipMap.h" |
| 10 #include "SkPixelRef.h" | 10 #include "SkPixelRef.h" |
| (...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 fCount, fBytesUsed, locked, | 663 fCount, fBytesUsed, locked, |
| 664 fDiscardableFactory ? "discardable" : "malloc"); | 664 fDiscardableFactory ? "discardable" : "malloc"); |
| 665 } | 665 } |
| 666 | 666 |
| 667 /////////////////////////////////////////////////////////////////////////////// | 667 /////////////////////////////////////////////////////////////////////////////// |
| 668 | 668 |
| 669 #include "SkThread.h" | 669 #include "SkThread.h" |
| 670 | 670 |
| 671 SK_DECLARE_STATIC_MUTEX(gMutex); | 671 SK_DECLARE_STATIC_MUTEX(gMutex); |
| 672 static SkScaledImageCache* gScaledImageCache = NULL; | 672 static SkScaledImageCache* gScaledImageCache = NULL; |
| 673 static void cleanup_gScaledImageCache() { SkDELETE(gScaledImageCache); } | 673 static void cleanup_gScaledImageCache() { |
| 674 // We'll clean this up in our own tests, but disable for clients. |
| 675 // Chrome seems to have funky multi-process things going on in unit tests th
at |
| 676 // makes this unsafe to delete when the main process atexit()s. |
| 677 // SkLazyPtr does the same sort of thing. |
| 678 #if SK_DEVELOPER |
| 679 SkDELETE(gScaledImageCache); |
| 680 #endif |
| 681 } |
| 674 | 682 |
| 675 /** Must hold gMutex when calling. */ | 683 /** Must hold gMutex when calling. */ |
| 676 static SkScaledImageCache* get_cache() { | 684 static SkScaledImageCache* get_cache() { |
| 677 // gMutex is always held when this is called, so we don't need to be fancy i
n here. | 685 // gMutex is always held when this is called, so we don't need to be fancy i
n here. |
| 678 gMutex.assertHeld(); | 686 gMutex.assertHeld(); |
| 679 if (NULL == gScaledImageCache) { | 687 if (NULL == gScaledImageCache) { |
| 680 #ifdef SK_USE_DISCARDABLE_SCALEDIMAGECACHE | 688 #ifdef SK_USE_DISCARDABLE_SCALEDIMAGECACHE |
| 681 gScaledImageCache = SkNEW_ARGS(SkScaledImageCache, (SkDiscardableMemory:
:Create)); | 689 gScaledImageCache = SkNEW_ARGS(SkScaledImageCache, (SkDiscardableMemory:
:Create)); |
| 682 #else | 690 #else |
| 683 gScaledImageCache = SkNEW_ARGS(SkScaledImageCache, (SK_DEFAULT_IMAGE_CAC
HE_LIMIT)); | 691 gScaledImageCache = SkNEW_ARGS(SkScaledImageCache, (SK_DEFAULT_IMAGE_CAC
HE_LIMIT)); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 return SkScaledImageCache::GetBytesUsed(); | 783 return SkScaledImageCache::GetBytesUsed(); |
| 776 } | 784 } |
| 777 | 785 |
| 778 size_t SkGraphics::GetImageCacheByteLimit() { | 786 size_t SkGraphics::GetImageCacheByteLimit() { |
| 779 return SkScaledImageCache::GetByteLimit(); | 787 return SkScaledImageCache::GetByteLimit(); |
| 780 } | 788 } |
| 781 | 789 |
| 782 size_t SkGraphics::SetImageCacheByteLimit(size_t newLimit) { | 790 size_t SkGraphics::SetImageCacheByteLimit(size_t newLimit) { |
| 783 return SkScaledImageCache::SetByteLimit(newLimit); | 791 return SkScaledImageCache::SetByteLimit(newLimit); |
| 784 } | 792 } |
| OLD | NEW |