diff options
| author | John Reck <jreck@google.com> | 2014-02-19 18:28:42 -0800 |
|---|---|---|
| committer | John Reck <jreck@google.com> | 2014-02-19 18:31:08 -0800 |
| commit | 0b2c8df7a6883a6af84c52efbd93619cc63cde53 (patch) | |
| tree | d08d114d3e2f04798a157b613ce6ff6f995f090f /core/java | |
| parent | 587f43d8725b11632b5d64a0a56a647207f01668 (diff) | |
Fix layer recycling for GLRenderer
Bug: 13007905
Change-Id: I1589f2bb14429099e391c03d7dfb1650da145f28
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/view/GLRenderer.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/java/android/view/GLRenderer.java b/core/java/android/view/GLRenderer.java index c1eb6b771c09..e9f1f67c3567 100644 --- a/core/java/android/view/GLRenderer.java +++ b/core/java/android/view/GLRenderer.java @@ -500,6 +500,10 @@ public class GLRenderer extends HardwareRenderer { if (mGlCanvas != null) { mGlCanvas.cancelLayerUpdate(layer); } + if (Looper.myLooper() == Looper.getMainLooper() && validate()) { + long backingLayer = layer.detachBackingLayer(); + nDestroyLayer(backingLayer); + } mAttachedLayers.remove(layer); } @@ -1472,6 +1476,8 @@ public class GLRenderer extends HardwareRenderer { */ static native boolean isBackBufferPreserved(); + static native void nDestroyLayer(long layerPtr); + class DrawPerformanceDataProvider extends GraphDataProvider { private final int mGraphType; |
