summaryrefslogtreecommitdiff
path: root/libs/hwui/TextureCache.cpp
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2017-05-23 17:51:28 +0000
committer android-build-merger <android-build-merger@google.com> 2017-05-23 17:51:28 +0000
commit9d08fca62fbe140ffa107dd0f216282971af6748 (patch)
tree9092abe87a86f073a0c4991a9e46a2985e48b403 /libs/hwui/TextureCache.cpp
parent5c05a04448307cfa92dd71f2131d6dc581e8b2e1 (diff)
parent1bc0286ef84c68b32c2e5f820c7498cc5df3a20b (diff)
Merge "Improve time to texture destruction" into oc-dev
am: 1bc0286ef8 Change-Id: I93daab53961a018a2cf8d4e2d4d8300b84bb917e
Diffstat (limited to 'libs/hwui/TextureCache.cpp')
-rw-r--r--libs/hwui/TextureCache.cpp25
1 files changed, 7 insertions, 18 deletions
diff --git a/libs/hwui/TextureCache.cpp b/libs/hwui/TextureCache.cpp
index 63a6a2c8c89c..710cdd9286e8 100644
--- a/libs/hwui/TextureCache.cpp
+++ b/libs/hwui/TextureCache.cpp
@@ -191,25 +191,14 @@ Texture* TextureCache::get(Bitmap* bitmap) {
return texture;
}
-void TextureCache::releaseTexture(uint32_t pixelRefStableID) {
- Mutex::Autolock _l(mLock);
- mGarbage.push_back(pixelRefStableID);
-}
-
-void TextureCache::clearGarbage() {
- Mutex::Autolock _l(mLock);
- size_t count = mGarbage.size();
- for (size_t i = 0; i < count; i++) {
- uint32_t pixelRefId = mGarbage[i];
- auto hardwareIter = mHardwareTextures.find(pixelRefId);
- if (hardwareIter == mHardwareTextures.end()) {
- mCache.remove(pixelRefId);
- } else {
- hardwareIter->second->deleteTexture();
- mHardwareTextures.erase(hardwareIter);
- }
+bool TextureCache::destroyTexture(uint32_t pixelRefStableID) {
+ auto hardwareIter = mHardwareTextures.find(pixelRefStableID);
+ if (hardwareIter != mHardwareTextures.end()) {
+ hardwareIter->second->deleteTexture();
+ mHardwareTextures.erase(hardwareIter);
+ return true;
}
- mGarbage.clear();
+ return mCache.remove(pixelRefStableID);
}
void TextureCache::clear() {