summaryrefslogtreecommitdiffstats
path: root/core/jni/android
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2011-04-05 13:43:18 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2011-04-05 14:13:22 -0700
commit1de9e7a9dffb4391a446000f748e4c017d948f6b (patch)
tree5e03a3f478bc0e2f4d2e15bb5a55b4ff99674f28 /core/jni/android
parent67ed4f547ebcec208ce3fde379562e0c610a9bb3 (diff)
downloadframeworks_base-1de9e7a9dffb4391a446000f748e4c017d948f6b.zip
frameworks_base-1de9e7a9dffb4391a446000f748e4c017d948f6b.tar.gz
frameworks_base-1de9e7a9dffb4391a446000f748e4c017d948f6b.tar.bz2
Code refactoring for TextLayoutCache
- rename TextLayoutCache entry name - update references to old name - better variable names in TextLayoutCache::getRunAdvances() Change-Id: I5173fbc8af79437ce4786084580426f130120ce8
Diffstat (limited to 'core/jni/android')
-rw-r--r--core/jni/android/graphics/Paint.cpp2
-rw-r--r--core/jni/android/graphics/TextLayout.cpp6
-rw-r--r--core/jni/android/graphics/TextLayoutCache.cpp46
-rw-r--r--core/jni/android/graphics/TextLayoutCache.h18
4 files changed, 36 insertions, 36 deletions
diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp
index 27be871..fbb9cea 100644
--- a/core/jni/android/graphics/Paint.cpp
+++ b/core/jni/android/graphics/Paint.cpp
@@ -407,7 +407,7 @@ public:
HB_ShaperItem shaperItem;
HB_FontRec font;
FontData fontData;
- RunAdvanceDescription::shapeWithHarfbuzz(&shaperItem, &font, &fontData, paint, text,
+ TextLayoutCacheValue::shapeWithHarfbuzz(&shaperItem, &font, &fontData, paint, text,
start, count, contextCount, flags);
int glyphCount = shaperItem.num_glyphs;
diff --git a/core/jni/android/graphics/TextLayout.cpp b/core/jni/android/graphics/TextLayout.cpp
index 434f63b..2578ea1 100644
--- a/core/jni/android/graphics/TextLayout.cpp
+++ b/core/jni/android/graphics/TextLayout.cpp
@@ -264,7 +264,7 @@ void TextLayout::getTextRunAdvances(SkPaint* paint, const jchar* chars, jint sta
dirFlags, resultAdvances, &resultTotalAdvance);
#else
// Compute advances and return them
- RunAdvanceDescription::computeAdvances(paint, chars, start, count, contextCount, dirFlags,
+ TextLayoutCacheValue::computeAdvances(paint, chars, start, count, contextCount, dirFlags,
resultAdvances, &resultTotalAdvance);
#endif
}
@@ -273,7 +273,7 @@ void TextLayout::getTextRunAdvancesHB(SkPaint* paint, const jchar* chars, jint s
jint count, jint contextCount, jint dirFlags,
jfloat* resultAdvances, jfloat& resultTotalAdvance) {
// Compute advances and return them
- RunAdvanceDescription::computeAdvancesWithHarfbuzz(paint, chars, start, count, contextCount, dirFlags,
+ TextLayoutCacheValue::computeAdvancesWithHarfbuzz(paint, chars, start, count, contextCount, dirFlags,
resultAdvances, &resultTotalAdvance);
}
@@ -281,7 +281,7 @@ void TextLayout::getTextRunAdvancesICU(SkPaint* paint, const jchar* chars, jint
jint count, jint contextCount, jint dirFlags,
jfloat* resultAdvances, jfloat& resultTotalAdvance) {
// Compute advances and return them
- RunAdvanceDescription::computeAdvancesWithICU(paint, chars, start, count, contextCount, dirFlags,
+ TextLayoutCacheValue::computeAdvancesWithICU(paint, chars, start, count, contextCount, dirFlags,
resultAdvances, &resultTotalAdvance);
}
diff --git a/core/jni/android/graphics/TextLayoutCache.cpp b/core/jni/android/graphics/TextLayoutCache.cpp
index a7265be..ff13c2b 100644
--- a/core/jni/android/graphics/TextLayoutCache.cpp
+++ b/core/jni/android/graphics/TextLayoutCache.cpp
@@ -19,14 +19,14 @@
namespace android {
TextLayoutCache::TextLayoutCache():
- mCache(GenerationCache<TextLayoutCacheKey, RunAdvanceDescription*>::kUnlimitedCapacity),
+ mCache(GenerationCache<TextLayoutCacheKey, TextLayoutCacheValue*>::kUnlimitedCapacity),
mSize(0), mMaxSize(MB(DEFAULT_TEXT_LAYOUT_CACHE_SIZE_IN_MB)),
mCacheHitCount(0), mNanosecondsSaved(0) {
init();
}
TextLayoutCache::TextLayoutCache(uint32_t max):
- mCache(GenerationCache<TextLayoutCacheKey, RunAdvanceDescription*>::kUnlimitedCapacity),
+ mCache(GenerationCache<TextLayoutCacheKey, TextLayoutCacheValue*>::kUnlimitedCapacity),
mSize(0), mMaxSize(max),
mCacheHitCount(0), mNanosecondsSaved(0) {
init();
@@ -88,12 +88,12 @@ void TextLayoutCache::removeOldests() {
/**
* Callbacks
*/
-void TextLayoutCache::operator()(TextLayoutCacheKey& text, RunAdvanceDescription*& desc) {
+void TextLayoutCache::operator()(TextLayoutCacheKey& text, TextLayoutCacheValue*& desc) {
if (desc) {
size_t totalSizeToDelete = text.getSize() + desc->getSize();
mSize -= totalSizeToDelete;
if (mDebugEnabled) {
- LOGD("RunAdvance description deleted, size = %d", totalSizeToDelete);
+ LOGD("Cache value deleted, size = %d", totalSizeToDelete);
}
delete desc;
}
@@ -120,21 +120,21 @@ void TextLayoutCache::getRunAdvances(SkPaint* paint, const jchar* text,
startTime = systemTime(SYSTEM_TIME_MONOTONIC);
}
- TextLayoutCacheKey entry(paint, text, start, count, contextCount, dirFlags);
+ TextLayoutCacheKey key(paint, text, start, count, contextCount, dirFlags);
// Get entry for cache if possible
- RunAdvanceDescription* desc = mCache.get(entry);
+ TextLayoutCacheValue* value = mCache.get(key);
// Value not found for the entry, we need to add a new value in the cache
- if (!desc) {
- desc = new RunAdvanceDescription();
+ if (!value) {
+ value = new TextLayoutCacheValue();
// Compute advances and store them
- desc->computeAdvances(paint, text, start, count, contextCount, dirFlags);
- desc->copyResult(outAdvances, outTotalAdvance);
+ value->computeAdvances(paint, text, start, count, contextCount, dirFlags);
+ value->copyResult(outAdvances, outTotalAdvance);
// Don't bother to add in the cache if the entry is too big
- size_t size = entry.getSize() + desc->getSize();
+ size_t size = key.getSize() + value->getSize();
if (size <= mMaxSize) {
// Cleanup to make some room if needed
if (mSize + size > mMaxSize) {
@@ -152,18 +152,18 @@ void TextLayoutCache::getRunAdvances(SkPaint* paint, const jchar* text,
mSize += size;
// Copy the text when we insert the new entry
- entry.internalTextCopy();
- mCache.put(entry, desc);
+ key.internalTextCopy();
+ mCache.put(key, value);
if (mDebugEnabled) {
// Update timing information for statistics.
- desc->setElapsedTime(systemTime(SYSTEM_TIME_MONOTONIC) - startTime);
+ value->setElapsedTime(systemTime(SYSTEM_TIME_MONOTONIC) - startTime);
LOGD("CACHE MISS: Added entry for text='%s' with start=%d, count=%d, "
"contextCount=%d, entry size %d bytes, remaining space %d bytes"
" - Compute time in nanos: %d",
String8(text, contextCount).string(), start, count, contextCount,
- size, mMaxSize - mSize, desc->getElapsedTime());
+ size, mMaxSize - mSize, value->getElapsedTime());
}
} else {
if (mDebugEnabled) {
@@ -172,27 +172,27 @@ void TextLayoutCache::getRunAdvances(SkPaint* paint, const jchar* text,
"entry size %d bytes, remaining space %d bytes"
" - Compute time in nanos: %d",
String8(text, contextCount).string(), start, count, contextCount,
- size, mMaxSize - mSize, desc->getElapsedTime());
+ size, mMaxSize - mSize, value->getElapsedTime());
}
- delete desc;
+ delete value;
}
} else {
// This is a cache hit, just copy the pre-computed results
- desc->copyResult(outAdvances, outTotalAdvance);
+ value->copyResult(outAdvances, outTotalAdvance);
if (mDebugEnabled) {
nsecs_t elapsedTimeThruCacheGet = systemTime(SYSTEM_TIME_MONOTONIC) - startTime;
- mNanosecondsSaved += (desc->getElapsedTime() - elapsedTimeThruCacheGet);
+ mNanosecondsSaved += (value->getElapsedTime() - elapsedTimeThruCacheGet);
++mCacheHitCount;
- if (desc->getElapsedTime() > 0) {
- float deltaPercent = 100 * ((desc->getElapsedTime() - elapsedTimeThruCacheGet)
- / ((float)desc->getElapsedTime()));
+ if (value->getElapsedTime() > 0) {
+ float deltaPercent = 100 * ((value->getElapsedTime() - elapsedTimeThruCacheGet)
+ / ((float)value->getElapsedTime()));
LOGD("CACHE HIT #%d for text='%s' with start=%d, count=%d, contextCount=%d "
"- Compute time in nanos: %d - "
"Cache get time in nanos: %lld - Gain in percent: %2.2f",
mCacheHitCount, String8(text, contextCount).string(), start, count,
contextCount,
- desc->getElapsedTime(), elapsedTimeThruCacheGet, deltaPercent);
+ value->getElapsedTime(), elapsedTimeThruCacheGet, deltaPercent);
}
if (mCacheHitCount % DEFAULT_DUMP_STATS_CACHE_HIT_INTERVAL == 0) {
dumpCacheStats();
diff --git a/core/jni/android/graphics/TextLayoutCache.h b/core/jni/android/graphics/TextLayoutCache.h
index bced40c..8438d78 100644
--- a/core/jni/android/graphics/TextLayoutCache.h
+++ b/core/jni/android/graphics/TextLayoutCache.h
@@ -137,16 +137,16 @@ private:
}; // TextLayoutCacheKey
/*
- * RunAdvanceDescription is the Cache entry
+ * TextLayoutCacheEntry is the Cache entry
*/
-class RunAdvanceDescription {
+class TextLayoutCacheValue {
public:
- RunAdvanceDescription() {
+ TextLayoutCacheValue() {
advances = NULL;
totalAdvance = 0;
}
- ~RunAdvanceDescription() {
+ ~TextLayoutCacheValue() {
delete[] advances;
}
@@ -186,7 +186,7 @@ public:
* Get the size of the Cache entry
*/
size_t getSize() {
- return sizeof(RunAdvanceDescription) + sizeof(jfloat) * count;
+ return sizeof(TextLayoutCacheValue) + sizeof(jfloat) * count;
}
static void setupShaperItem(HB_ShaperItem* shaperItem, HB_FontRec* font, FontData* fontData,
@@ -396,10 +396,10 @@ private:
memset(shaperItem->offsets, 0, size * sizeof(shaperItem->offsets[0]));
}
-}; // RunAdvanceDescription
+}; // TextLayoutCacheEntry
-class TextLayoutCache: public OnEntryRemoved<TextLayoutCacheKey, RunAdvanceDescription*>
+class TextLayoutCache: public OnEntryRemoved<TextLayoutCacheKey, TextLayoutCacheValue*>
{
public:
TextLayoutCache();
@@ -415,7 +415,7 @@ public:
* Used as a callback when an entry is removed from the cache.
* Do not invoke directly.
*/
- void operator()(TextLayoutCacheKey& text, RunAdvanceDescription*& desc);
+ void operator()(TextLayoutCacheKey& text, TextLayoutCacheValue*& desc);
/**
* Get cache entries
@@ -448,7 +448,7 @@ private:
Mutex mLock;
bool mInitialized;
- GenerationCache<TextLayoutCacheKey, RunAdvanceDescription*> mCache;
+ GenerationCache<TextLayoutCacheKey, TextLayoutCacheValue*> mCache;
uint32_t mSize;
uint32_t mMaxSize;