Loading libs/hwui/LayerCache.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -69,10 +69,14 @@ void LayerCache::setMaxSize(uint32_t maxSize) { void LayerCache::deleteLayer(Layer* layer) { if (layer) { LAYER_LOGD("Destroying layer %dx%d", layer->getWidth(), layer->getHeight()); GLuint fbo = layer->getFbo(); LAYER_LOGD("Destroying layer %dx%d, fbo %d", layer->getWidth(), layer->getHeight(), fbo); mSize -= layer->getWidth() * layer->getHeight() * 4; layer->deleteFbo(); if (fbo) Caches::getInstance().fboCache.put(fbo); layer->deleteTexture(); delete layer; } } Loading Loading @@ -174,6 +178,10 @@ bool LayerCache::put(Layer* layer) { victim->layer.getHeight()); } layer->deferredUpdateScheduled = false; layer->renderer = NULL; layer->displayList = NULL; LayerEntry entry(layer); mCache.add(entry); Loading libs/hwui/LayerRenderer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -309,6 +309,7 @@ void LayerRenderer::destroyLayer(Layer* layer) { if (fbo) { flushLayer(layer); Caches::getInstance().fboCache.put(fbo); layer->setFbo(0); } if (!Caches::getInstance().layerCache.put(layer)) { Loading libs/hwui/OpenGLRenderer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -678,6 +678,7 @@ void OpenGLRenderer::composeLayer(sp<Snapshot> current, sp<Snapshot> previous) { // Put the FBO name back in the cache, if it doesn't fit, it will be destroyed mCaches.fboCache.put(current->fbo); layer->setFbo(0); } dirtyClip(); Loading Loading
libs/hwui/LayerCache.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -69,10 +69,14 @@ void LayerCache::setMaxSize(uint32_t maxSize) { void LayerCache::deleteLayer(Layer* layer) { if (layer) { LAYER_LOGD("Destroying layer %dx%d", layer->getWidth(), layer->getHeight()); GLuint fbo = layer->getFbo(); LAYER_LOGD("Destroying layer %dx%d, fbo %d", layer->getWidth(), layer->getHeight(), fbo); mSize -= layer->getWidth() * layer->getHeight() * 4; layer->deleteFbo(); if (fbo) Caches::getInstance().fboCache.put(fbo); layer->deleteTexture(); delete layer; } } Loading Loading @@ -174,6 +178,10 @@ bool LayerCache::put(Layer* layer) { victim->layer.getHeight()); } layer->deferredUpdateScheduled = false; layer->renderer = NULL; layer->displayList = NULL; LayerEntry entry(layer); mCache.add(entry); Loading
libs/hwui/LayerRenderer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -309,6 +309,7 @@ void LayerRenderer::destroyLayer(Layer* layer) { if (fbo) { flushLayer(layer); Caches::getInstance().fboCache.put(fbo); layer->setFbo(0); } if (!Caches::getInstance().layerCache.put(layer)) { Loading
libs/hwui/OpenGLRenderer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -678,6 +678,7 @@ void OpenGLRenderer::composeLayer(sp<Snapshot> current, sp<Snapshot> previous) { // Put the FBO name back in the cache, if it doesn't fit, it will be destroyed mCaches.fboCache.put(current->fbo); layer->setFbo(0); } dirtyClip(); Loading