summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2015-05-12 15:48:54 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-05-12 15:48:55 +0000
commitbf9c5c13cd24350e85f534d2348c1dd4ba8a33df (patch)
tree629b81b96d688c4ce0d94665b4395e9d17115515 /libs
parente74d5d09e1749b128437ff340b43278857139338 (diff)
parent42455fc9182cfe0c9f91c77712541888ca61df9e (diff)
downloadframeworks_base-bf9c5c13cd24350e85f534d2348c1dd4ba8a33df.zip
frameworks_base-bf9c5c13cd24350e85f534d2348c1dd4ba8a33df.tar.gz
frameworks_base-bf9c5c13cd24350e85f534d2348c1dd4ba8a33df.tar.bz2
Merge "Remove usage of Texture::cleanup in PathCache" into mnc-dev
Diffstat (limited to 'libs')
-rw-r--r--libs/hwui/PathCache.cpp37
-rw-r--r--libs/hwui/PathCache.h4
2 files changed, 12 insertions, 29 deletions
diff --git a/libs/hwui/PathCache.cpp b/libs/hwui/PathCache.cpp
index 74964f6..8f5fea3 100644
--- a/libs/hwui/PathCache.cpp
+++ b/libs/hwui/PathCache.cpp
@@ -142,7 +142,7 @@ PathCache::PathCache():
char property[PROPERTY_VALUE_MAX];
if (property_get(PROPERTY_PATH_CACHE_SIZE, property, nullptr) > 0) {
INIT_LOGD(" Setting %s cache size to %sMB", name, property);
- setMaxSize(MB(atof(property)));
+ mMaxSize = MB(atof(property));
} else {
INIT_LOGD(" Using default %s cache size of %.2fMB", name, DEFAULT_PATH_CACHE_SIZE);
}
@@ -172,13 +172,6 @@ uint32_t PathCache::getMaxSize() {
return mMaxSize;
}
-void PathCache::setMaxSize(uint32_t maxSize) {
- mMaxSize = maxSize;
- while (mSize > mMaxSize) {
- mCache.removeOldest();
- }
-}
-
///////////////////////////////////////////////////////////////////////////////
// Callbacks
///////////////////////////////////////////////////////////////////////////////
@@ -267,24 +260,18 @@ void PathCache::generateTexture(const PathDescription& entry, SkBitmap* bitmap,
PathTexture* texture, bool addToCache) {
generateTexture(*bitmap, texture);
+ // Note here that we upload to a texture even if it's bigger than mMaxSize.
+ // Such an entry in mCache will only be temporary, since it will be evicted
+ // immediately on trim, or on any other Path entering the cache.
uint32_t size = texture->width * texture->height;
- if (size < mMaxSize) {
- mSize += size;
- PATH_LOGD("PathCache::get/create: name, size, mSize = %d, %d, %d",
- texture->id, size, mSize);
- if (mDebugEnabled) {
- ALOGD("Shape created, size = %d", size);
- }
- if (addToCache) {
- mCache.put(entry, texture);
- }
- } else {
- // It's okay to add a texture that's bigger than the cache since
- // we'll trim the cache later when addToCache is set to false
- if (!addToCache) {
- mSize += size;
- }
- texture->cleanup = true;
+ mSize += size;
+ PATH_LOGD("PathCache::get/create: name, size, mSize = %d, %d, %d",
+ texture->id, size, mSize);
+ if (mDebugEnabled) {
+ ALOGD("Shape created, size = %d", size);
+ }
+ if (addToCache) {
+ mCache.put(entry, texture);
}
}
diff --git a/libs/hwui/PathCache.h b/libs/hwui/PathCache.h
index 4297693..7014863 100644
--- a/libs/hwui/PathCache.h
+++ b/libs/hwui/PathCache.h
@@ -186,10 +186,6 @@ public:
void clear();
/**
- * Sets the maximum size of the cache in bytes.
- */
- void setMaxSize(uint32_t maxSize);
- /**
* Returns the maximum size of the cache in bytes.
*/
uint32_t getMaxSize();