diff options
| author | 2012-09-25 20:30:09 -0700 | |
|---|---|---|
| committer | 2012-09-25 20:30:09 -0700 | |
| commit | 56257aff8a55c847be72be9924c392033fd8151d (patch) | |
| tree | 5e31b76ebbf03e281ccaeceec24882660e7de47e /libs/hwui/LayerRenderer.cpp | |
| parent | 8a1374946a928fcba7495c87ff6adda327fdfb9f (diff) | |
Revert "Deleting objects on the wrong thread is a silly idea Bug #7195815"
This reverts commit 8a1374946a928fcba7495c87ff6adda327fdfb9f
Change-Id: I53564a6c531d334afcc1fce0bea1e57ae266aa78
Diffstat (limited to 'libs/hwui/LayerRenderer.cpp')
| -rw-r--r-- | libs/hwui/LayerRenderer.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/hwui/LayerRenderer.cpp b/libs/hwui/LayerRenderer.cpp index c581041a3d75..799aea3755a5 100644 --- a/libs/hwui/LayerRenderer.cpp +++ b/libs/hwui/LayerRenderer.cpp @@ -299,6 +299,13 @@ void LayerRenderer::destroyLayer(Layer* layer) { LAYER_RENDERER_LOGD("Recycling layer, %dx%d fbo = %d", layer->getWidth(), layer->getHeight(), layer->getFbo()); + GLuint fbo = layer->getFbo(); + if (fbo) { + flushLayer(layer); + Caches::getInstance().fboCache.put(fbo); + layer->setFbo(0); + } + if (!Caches::getInstance().layerCache.put(layer)) { LAYER_RENDERER_LOGD(" Destroyed!"); Caches::getInstance().resourceCache.decrementRefcount(layer); @@ -315,6 +322,7 @@ void LayerRenderer::destroyLayer(Layer* layer) { void LayerRenderer::destroyLayerDeferred(Layer* layer) { if (layer) { LAYER_RENDERER_LOGD("Deferring layer destruction, fbo = %d", layer->getFbo()); + Caches::getInstance().deleteLayerDeferred(layer); } } |