Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df6fd1e5 authored by Chet Haase's avatar Chet Haase Committed by The Android Automerger
Browse files

Glyph cache optimization

Precaching at startup was not working. One-liner fix to init the caches
so that precaching would kick in earlier, saving time at startup by avoiding
the multiple-upload issue of caching at render time.

Issue #6893691 long app launch time on manta for some apps comparing to nakasi/stingray

Change-Id: Ie5c7f0536ec8ea371c7892e5e09c1db14795531c
parent 1d2c384f
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -699,7 +699,6 @@ void FontRenderer::flushAllAndInvalidate() {
    }

#if DEBUG_FONT_RENDERER
    ALOGD("FontRenderer: flushAllAndInvalidatel");
    // Erase caches, just as a debugging facility
    if (mCacheTextureSmall && mCacheTextureSmall->mTexture) {
        memset(mCacheTextureSmall->mTexture, 0,
@@ -792,14 +791,12 @@ void FontRenderer::allocateTextureMemory(CacheTexture* cacheTexture) {

void FontRenderer::cacheBitmap(const SkGlyph& glyph, CachedGlyphInfo* cachedGlyph,
        uint32_t* retOriginX, uint32_t* retOriginY) {
    checkInit();
    cachedGlyph->mIsValid = false;
    // If the glyph is too tall, don't cache it
    if (mCacheLines.size() == 0 ||
        glyph.fHeight + TEXTURE_BORDER_SIZE * 2 > mCacheLines[mCacheLines.size() - 1]->mMaxHeight) {
        if (mCacheLines.size() != 0) {
    if (glyph.fHeight + TEXTURE_BORDER_SIZE * 2 > mCacheLines[mCacheLines.size() - 1]->mMaxHeight) {
        ALOGE("Font size too large to fit in cache. width, height = %i, %i",
                (int) glyph.fWidth, (int) glyph.fHeight);
        }
        return;
    }