Loading core/jni/android/graphics/Canvas.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -760,7 +760,8 @@ public: jint count = end - start; sp<TextLayoutCacheValue> value; #if USE_TEXT_LAYOUT_CACHE value = gTextLayoutCache.getValue(paint, textArray, start, count, end, flags); value = TextLayoutCache::getInstance().getValue(paint, textArray, start, count, end, flags); if (value == NULL) { LOGE("Cannot get TextLayoutCache value"); return ; Loading @@ -780,7 +781,8 @@ public: sp<TextLayoutCacheValue> value; #if USE_TEXT_LAYOUT_CACHE value = gTextLayoutCache.getValue(paint, textArray, start, count, contextCount, flags); value = TextLayoutCache::getInstance().getValue(paint, textArray, start, count, contextCount, flags); if (value == NULL) { LOGE("Cannot get TextLayoutCache value"); return ; Loading core/jni/android/graphics/TextLayout.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ void TextLayout::getTextRunAdvances(SkPaint* paint, const jchar* chars, jint sta sp<TextLayoutCacheValue> value; #if USE_TEXT_LAYOUT_CACHE // Return advances from the cache. Compute them if needed value = gTextLayoutCache.getValue( value = TextLayoutCache::getInstance().getValue( paint, chars, start, count, contextCount, dirFlags); #else value = new TextLayoutCacheValue(); Loading core/jni/android/graphics/TextLayout.h +0 −5 Original line number Diff line number Diff line Loading @@ -41,11 +41,6 @@ namespace android { */ #define USE_TEXT_LAYOUT_CACHE 1 #if USE_TEXT_LAYOUT_CACHE static TextLayoutCache gTextLayoutCache; #endif enum { kBidi_LTR = 0, kBidi_RTL = 1, Loading core/jni/android/graphics/TextLayoutCache.cpp +16 −20 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ * limitations under the License. */ #define LOG_TAG "TextLayoutCache" #include "TextLayoutCache.h" #include "TextLayout.h" Loading @@ -23,6 +25,12 @@ extern "C" { namespace android { //-------------------------------------------------------------------------------------------------- #if USE_TEXT_LAYOUT_CACHE ANDROID_SINGLETON_STATIC_INSTANCE(TextLayoutCache); #endif //-------------------------------------------------------------------------------------------------- TextLayoutCache::TextLayoutCache() : mCache(GenerationCache<TextLayoutCacheKey, sp<TextLayoutCacheValue> >::kUnlimitedCapacity), mSize(0), mMaxSize(MB(DEFAULT_TEXT_LAYOUT_CACHE_SIZE_IN_MB)), Loading @@ -30,13 +38,6 @@ TextLayoutCache::TextLayoutCache() : init(); } TextLayoutCache::TextLayoutCache(uint32_t max): mCache(GenerationCache<TextLayoutCacheKey, sp<TextLayoutCacheValue> >::kUnlimitedCapacity), mSize(0), mMaxSize(max), mCacheHitCount(0), mNanosecondsSaved(0) { init(); } TextLayoutCache::~TextLayoutCache() { mCache.clear(); } Loading @@ -46,25 +47,21 @@ void TextLayoutCache::init() { mDebugLevel = readRtlDebugLevel(); mDebugEnabled = mDebugLevel & kRtlDebugCaches; LOGD("Using TextLayoutCache debug level: %d - Debug Enabled: %d", mDebugLevel, mDebugEnabled); LOGD("Using debug level: %d - Debug Enabled: %d", mDebugLevel, mDebugEnabled); mCacheStartTime = systemTime(SYSTEM_TIME_MONOTONIC); if (mDebugEnabled) { LOGD("TextLayoutCache start time: %lld", mCacheStartTime); } mInitialized = true; if (mDebugEnabled) { LOGD("Start time: %lld", mCacheStartTime); #if RTL_USE_HARFBUZZ LOGD("TextLayoutCache is using HARFBUZZ"); LOGD("Using HARFBUZZ"); #else LOGD("TextLayoutCache is using ICU"); LOGD("Using ICU"); #endif LOGD("Initialization is done"); } if (mDebugEnabled) { LOGD("TextLayoutCache initialization is done"); } mInitialized = true; } /* Loading Loading @@ -147,8 +144,7 @@ sp<TextLayoutCacheValue> TextLayoutCache::getValue(SkPaint* paint, // Cleanup to make some room if needed if (mSize + size > mMaxSize) { if (mDebugEnabled) { LOGD("TextLayoutCache: need to clean some entries " "for making some room for a new entry"); LOGD("Need to clean some entries for making some room for a new entry"); } while (mSize + size > mMaxSize) { // This will call the callback Loading Loading @@ -213,7 +209,7 @@ void TextLayoutCache::dumpCacheStats() { float remainingPercent = 100 * ((mMaxSize - mSize) / ((float)mMaxSize)); float timeRunningInSec = (systemTime(SYSTEM_TIME_MONOTONIC) - mCacheStartTime) / 1000000000; LOGD("------------------------------------------------"); LOGD("TextLayoutCache stats"); LOGD("Cache stats"); LOGD("------------------------------------------------"); LOGD("pid : %d", getpid()); LOGD("running : %.0f seconds", timeRunningInSec); Loading core/jni/android/graphics/TextLayoutCache.h +3 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <utils/GenerationCache.h> #include <utils/Compare.h> #include <utils/RefBase.h> #include <utils/Singleton.h> #include <SkPaint.h> #include <SkTemplates.h> Loading Loading @@ -187,11 +188,11 @@ private: /** * Cache of text layout information. */ class TextLayoutCache : public OnEntryRemoved<TextLayoutCacheKey, sp<TextLayoutCacheValue> > class TextLayoutCache : public OnEntryRemoved<TextLayoutCacheKey, sp<TextLayoutCacheValue> >, public Singleton<TextLayoutCache> { public: TextLayoutCache(); TextLayoutCache(uint32_t maxByteSize); virtual ~TextLayoutCache(); Loading Loading
core/jni/android/graphics/Canvas.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -760,7 +760,8 @@ public: jint count = end - start; sp<TextLayoutCacheValue> value; #if USE_TEXT_LAYOUT_CACHE value = gTextLayoutCache.getValue(paint, textArray, start, count, end, flags); value = TextLayoutCache::getInstance().getValue(paint, textArray, start, count, end, flags); if (value == NULL) { LOGE("Cannot get TextLayoutCache value"); return ; Loading @@ -780,7 +781,8 @@ public: sp<TextLayoutCacheValue> value; #if USE_TEXT_LAYOUT_CACHE value = gTextLayoutCache.getValue(paint, textArray, start, count, contextCount, flags); value = TextLayoutCache::getInstance().getValue(paint, textArray, start, count, contextCount, flags); if (value == NULL) { LOGE("Cannot get TextLayoutCache value"); return ; Loading
core/jni/android/graphics/TextLayout.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ void TextLayout::getTextRunAdvances(SkPaint* paint, const jchar* chars, jint sta sp<TextLayoutCacheValue> value; #if USE_TEXT_LAYOUT_CACHE // Return advances from the cache. Compute them if needed value = gTextLayoutCache.getValue( value = TextLayoutCache::getInstance().getValue( paint, chars, start, count, contextCount, dirFlags); #else value = new TextLayoutCacheValue(); Loading
core/jni/android/graphics/TextLayout.h +0 −5 Original line number Diff line number Diff line Loading @@ -41,11 +41,6 @@ namespace android { */ #define USE_TEXT_LAYOUT_CACHE 1 #if USE_TEXT_LAYOUT_CACHE static TextLayoutCache gTextLayoutCache; #endif enum { kBidi_LTR = 0, kBidi_RTL = 1, Loading
core/jni/android/graphics/TextLayoutCache.cpp +16 −20 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ * limitations under the License. */ #define LOG_TAG "TextLayoutCache" #include "TextLayoutCache.h" #include "TextLayout.h" Loading @@ -23,6 +25,12 @@ extern "C" { namespace android { //-------------------------------------------------------------------------------------------------- #if USE_TEXT_LAYOUT_CACHE ANDROID_SINGLETON_STATIC_INSTANCE(TextLayoutCache); #endif //-------------------------------------------------------------------------------------------------- TextLayoutCache::TextLayoutCache() : mCache(GenerationCache<TextLayoutCacheKey, sp<TextLayoutCacheValue> >::kUnlimitedCapacity), mSize(0), mMaxSize(MB(DEFAULT_TEXT_LAYOUT_CACHE_SIZE_IN_MB)), Loading @@ -30,13 +38,6 @@ TextLayoutCache::TextLayoutCache() : init(); } TextLayoutCache::TextLayoutCache(uint32_t max): mCache(GenerationCache<TextLayoutCacheKey, sp<TextLayoutCacheValue> >::kUnlimitedCapacity), mSize(0), mMaxSize(max), mCacheHitCount(0), mNanosecondsSaved(0) { init(); } TextLayoutCache::~TextLayoutCache() { mCache.clear(); } Loading @@ -46,25 +47,21 @@ void TextLayoutCache::init() { mDebugLevel = readRtlDebugLevel(); mDebugEnabled = mDebugLevel & kRtlDebugCaches; LOGD("Using TextLayoutCache debug level: %d - Debug Enabled: %d", mDebugLevel, mDebugEnabled); LOGD("Using debug level: %d - Debug Enabled: %d", mDebugLevel, mDebugEnabled); mCacheStartTime = systemTime(SYSTEM_TIME_MONOTONIC); if (mDebugEnabled) { LOGD("TextLayoutCache start time: %lld", mCacheStartTime); } mInitialized = true; if (mDebugEnabled) { LOGD("Start time: %lld", mCacheStartTime); #if RTL_USE_HARFBUZZ LOGD("TextLayoutCache is using HARFBUZZ"); LOGD("Using HARFBUZZ"); #else LOGD("TextLayoutCache is using ICU"); LOGD("Using ICU"); #endif LOGD("Initialization is done"); } if (mDebugEnabled) { LOGD("TextLayoutCache initialization is done"); } mInitialized = true; } /* Loading Loading @@ -147,8 +144,7 @@ sp<TextLayoutCacheValue> TextLayoutCache::getValue(SkPaint* paint, // Cleanup to make some room if needed if (mSize + size > mMaxSize) { if (mDebugEnabled) { LOGD("TextLayoutCache: need to clean some entries " "for making some room for a new entry"); LOGD("Need to clean some entries for making some room for a new entry"); } while (mSize + size > mMaxSize) { // This will call the callback Loading Loading @@ -213,7 +209,7 @@ void TextLayoutCache::dumpCacheStats() { float remainingPercent = 100 * ((mMaxSize - mSize) / ((float)mMaxSize)); float timeRunningInSec = (systemTime(SYSTEM_TIME_MONOTONIC) - mCacheStartTime) / 1000000000; LOGD("------------------------------------------------"); LOGD("TextLayoutCache stats"); LOGD("Cache stats"); LOGD("------------------------------------------------"); LOGD("pid : %d", getpid()); LOGD("running : %.0f seconds", timeRunningInSec); Loading
core/jni/android/graphics/TextLayoutCache.h +3 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <utils/GenerationCache.h> #include <utils/Compare.h> #include <utils/RefBase.h> #include <utils/Singleton.h> #include <SkPaint.h> #include <SkTemplates.h> Loading Loading @@ -187,11 +188,11 @@ private: /** * Cache of text layout information. */ class TextLayoutCache : public OnEntryRemoved<TextLayoutCacheKey, sp<TextLayoutCacheValue> > class TextLayoutCache : public OnEntryRemoved<TextLayoutCacheKey, sp<TextLayoutCacheValue> >, public Singleton<TextLayoutCache> { public: TextLayoutCache(); TextLayoutCache(uint32_t maxByteSize); virtual ~TextLayoutCache(); Loading