Loading core/java/android/view/HardwareRenderer.java +4 −5 Original line number Diff line number Diff line Loading @@ -344,9 +344,9 @@ public abstract class HardwareRenderer { static final int EGL_SURFACE_TYPE = 0x3033; static final int EGL_SWAP_BEHAVIOR_PRESERVED_BIT = 0x0400; private static final int SURFACE_STATE_ERROR = 0; private static final int SURFACE_STATE_SUCCESS = 1; private static final int SURFACE_STATE_UPDATED = 2; static final int SURFACE_STATE_ERROR = 0; static final int SURFACE_STATE_SUCCESS = 1; static final int SURFACE_STATE_UPDATED = 2; static EGL10 sEgl; static EGLDisplay sEglDisplay; Loading Loading @@ -913,8 +913,7 @@ public abstract class HardwareRenderer { @Override void destroyLayers(View view) { if (view != null && isEnabled()) { checkCurrent(); if (view != null && isEnabled() && checkCurrent() != SURFACE_STATE_ERROR) { destroyHardwareLayer(view); GLES20Canvas.flushCaches(GLES20Canvas.FLUSH_CACHES_LAYERS); } Loading core/java/android/view/TextureView.java +5 −0 Original line number Diff line number Diff line Loading @@ -285,6 +285,11 @@ public class TextureView extends View { } } @Override boolean destroyLayer() { return false; } @Override HardwareLayer getHardwareLayer() { if (mLayer == null) { Loading core/java/android/view/ViewRootImpl.java +9 −4 Original line number Diff line number Diff line Loading @@ -2141,6 +2141,10 @@ public final class ViewRootImpl extends Handler implements ViewParent, void dispatchDetachedFromWindow() { if (mView != null && mView.mAttachInfo != null) { if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) { mAttachInfo.mHardwareRenderer.validate(); } mView.dispatchDetachedFromWindow(); } Loading Loading @@ -3568,6 +3572,11 @@ public final class ViewRootImpl extends Handler implements ViewParent, checkThread(); if (LOCAL_LOGV) Log.v(TAG, "DIE in " + this + " of " + mSurface); synchronized (this) { if (mAdded) { mAdded = false; dispatchDetachedFromWindow(); } if (mAdded && !mFirst) { destroyHardwareRenderer(); Loading @@ -3588,10 +3597,6 @@ public final class ViewRootImpl extends Handler implements ViewParent, mSurface.release(); } if (mAdded) { mAdded = false; dispatchDetachedFromWindow(); } } } Loading Loading
core/java/android/view/HardwareRenderer.java +4 −5 Original line number Diff line number Diff line Loading @@ -344,9 +344,9 @@ public abstract class HardwareRenderer { static final int EGL_SURFACE_TYPE = 0x3033; static final int EGL_SWAP_BEHAVIOR_PRESERVED_BIT = 0x0400; private static final int SURFACE_STATE_ERROR = 0; private static final int SURFACE_STATE_SUCCESS = 1; private static final int SURFACE_STATE_UPDATED = 2; static final int SURFACE_STATE_ERROR = 0; static final int SURFACE_STATE_SUCCESS = 1; static final int SURFACE_STATE_UPDATED = 2; static EGL10 sEgl; static EGLDisplay sEglDisplay; Loading Loading @@ -913,8 +913,7 @@ public abstract class HardwareRenderer { @Override void destroyLayers(View view) { if (view != null && isEnabled()) { checkCurrent(); if (view != null && isEnabled() && checkCurrent() != SURFACE_STATE_ERROR) { destroyHardwareLayer(view); GLES20Canvas.flushCaches(GLES20Canvas.FLUSH_CACHES_LAYERS); } Loading
core/java/android/view/TextureView.java +5 −0 Original line number Diff line number Diff line Loading @@ -285,6 +285,11 @@ public class TextureView extends View { } } @Override boolean destroyLayer() { return false; } @Override HardwareLayer getHardwareLayer() { if (mLayer == null) { Loading
core/java/android/view/ViewRootImpl.java +9 −4 Original line number Diff line number Diff line Loading @@ -2141,6 +2141,10 @@ public final class ViewRootImpl extends Handler implements ViewParent, void dispatchDetachedFromWindow() { if (mView != null && mView.mAttachInfo != null) { if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) { mAttachInfo.mHardwareRenderer.validate(); } mView.dispatchDetachedFromWindow(); } Loading Loading @@ -3568,6 +3572,11 @@ public final class ViewRootImpl extends Handler implements ViewParent, checkThread(); if (LOCAL_LOGV) Log.v(TAG, "DIE in " + this + " of " + mSurface); synchronized (this) { if (mAdded) { mAdded = false; dispatchDetachedFromWindow(); } if (mAdded && !mFirst) { destroyHardwareRenderer(); Loading @@ -3588,10 +3597,6 @@ public final class ViewRootImpl extends Handler implements ViewParent, mSurface.release(); } if (mAdded) { mAdded = false; dispatchDetachedFromWindow(); } } } Loading