| OLD | NEW |
| (Empty) |
| 1 #include "SkImageRef_GlobalPool.h" | |
| 2 #include "SkImageRefPool.h" | |
| 3 #include "SkThread.h" | |
| 4 | |
| 5 extern SkMutex gImageRefMutex; | |
| 6 | |
| 7 static SkImageRefPool gGlobalImageRefPool; | |
| 8 | |
| 9 SkImageRef_GlobalPool::SkImageRef_GlobalPool(SkStream* stream, | |
| 10 SkBitmap::Config config, | |
| 11 int sampleSize) | |
| 12 : SkImageRef(stream, config, sampleSize) { | |
| 13 this->mutex()->acquire(); | |
| 14 gGlobalImageRefPool.addToHead(this); | |
| 15 this->mutex()->release(); | |
| 16 } | |
| 17 | |
| 18 SkImageRef_GlobalPool::~SkImageRef_GlobalPool() { | |
| 19 this->mutex()->acquire(); | |
| 20 gGlobalImageRefPool.detach(this); | |
| 21 this->mutex()->release(); | |
| 22 } | |
| 23 | |
| 24 bool SkImageRef_GlobalPool::onDecode(SkImageDecoder* codec, SkStream* stream, | |
| 25 SkBitmap* bitmap, SkBitmap::Config config, | |
| 26 SkImageDecoder::Mode mode) { | |
| 27 if (!this->INHERITED::onDecode(codec, stream, bitmap, config, mode)) { | |
| 28 return false; | |
| 29 } | |
| 30 if (mode == SkImageDecoder::kDecodePixels_Mode) { | |
| 31 gGlobalImageRefPool.justAddedPixels(this); | |
| 32 } | |
| 33 return true; | |
| 34 } | |
| 35 | |
| 36 void SkImageRef_GlobalPool::onUnlockPixels() { | |
| 37 this->INHERITED::onUnlockPixels(); | |
| 38 | |
| 39 gGlobalImageRefPool.canLosePixels(this); | |
| 40 } | |
| 41 | |
| 42 SkImageRef_GlobalPool::SkImageRef_GlobalPool(SkFlattenableReadBuffer& buffer) | |
| 43 : INHERITED(buffer) { | |
| 44 this->mutex()->acquire(); | |
| 45 gGlobalImageRefPool.addToHead(this); | |
| 46 this->mutex()->release(); | |
| 47 } | |
| 48 | |
| 49 SkPixelRef* SkImageRef_GlobalPool::Create(SkFlattenableReadBuffer& buffer) { | |
| 50 return SkNEW_ARGS(SkImageRef_GlobalPool, (buffer)); | |
| 51 } | |
| 52 | |
| 53 static SkPixelRef::Registrar::Registrar reg("SkImageRef_GlobalPool", | |
| 54 SkImageRef_GlobalPool::Create); | |
| 55 | |
| 56 /////////////////////////////////////////////////////////////////////////////// | |
| 57 // global imagerefpool wrappers | |
| 58 | |
| 59 size_t SkImageRef_GlobalPool::GetRAMBudget() { | |
| 60 SkAutoMutexAcquire ac(gImageRefMutex); | |
| 61 return gGlobalImageRefPool.getRAMBudget(); | |
| 62 } | |
| 63 | |
| 64 void SkImageRef_GlobalPool::SetRAMBudget(size_t size) { | |
| 65 SkAutoMutexAcquire ac(gImageRefMutex); | |
| 66 gGlobalImageRefPool.setRAMBudget(size); | |
| 67 } | |
| 68 | |
| 69 size_t SkImageRef_GlobalPool::GetRAMUsed() { | |
| 70 SkAutoMutexAcquire ac(gImageRefMutex); | |
| 71 return gGlobalImageRefPool.getRAMUsed(); | |
| 72 } | |
| 73 | |
| 74 void SkImageRef_GlobalPool::SetRAMUsed(size_t usage) { | |
| 75 SkAutoMutexAcquire ac(gImageRefMutex); | |
| 76 gGlobalImageRefPool.setRAMUsed(usage); | |
| 77 } | |
| 78 | |
| 79 void SkImageRef_GlobalPool::DumpPool() { | |
| 80 SkAutoMutexAcquire ac(gImageRefMutex); | |
| 81 gGlobalImageRefPool.dump(); | |
| 82 } | |
| 83 | |
| OLD | NEW |