diff options
| -rw-r--r-- | core/java/android/content/Context.java | 2 | ||||
| -rw-r--r-- | core/java/android/view/HardwareRenderer.java | 26 |
2 files changed, 16 insertions, 12 deletions
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index b27f4cf7393f..7ca6270308d7 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -145,7 +145,7 @@ public abstract class Context { * tied to the lifetime of the process rather than the current component. * * <p>Consider for example how this interacts with - * {@ #registerReceiver(BroadcastReceiver, IntentFilter)}: + * {@link #registerReceiver(BroadcastReceiver, IntentFilter)}: * <ul> * <li> <p>If used from an Activity context, the receiver is being registered * within that activity. This means that you are expected to unregister diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java index 0e294f7169fc..5bb8c502fbfe 100644 --- a/core/java/android/view/HardwareRenderer.java +++ b/core/java/android/view/HardwareRenderer.java @@ -184,7 +184,7 @@ public abstract class HardwareRenderer { } /** - * Indicates whether hardware acceleration is currently request but not + * Indicates whether hardware acceleration is currently requested but not * necessarily enabled yet. * * @return True to request hardware acceleration, false otherwise. @@ -275,19 +275,22 @@ public abstract class HardwareRenderer { if (error != EGL10.EGL_SUCCESS) { // something bad has happened revert to // normal rendering. - destroy(true); - if (error != EGL11.EGL_CONTEXT_LOST) { - // we'll try again if it was context lost - setRequested(false); - } else { - Log.w(LOG_TAG, "Mountain View, we've had a problem here. " - + "Switching back to software rendering."); - } + fallback(error != EGL11.EGL_CONTEXT_LOST); Log.w(LOG_TAG, "EGL error: " + getEGLErrorString(error)); } } } + private void fallback(boolean fallback) { + destroy(true); + if (fallback) { + // we'll try again if it was context lost + setRequested(false); + Log.w(LOG_TAG, "Mountain View, we've had a problem here. " + + "Switching back to software rendering."); + } + } + @Override boolean initialize(SurfaceHolder holder) { if (isRequested() && !isEnabled()) { @@ -509,8 +512,9 @@ public abstract class HardwareRenderer { if (sEgl.eglGetCurrentContext() != sEglContext || sEgl.eglGetCurrentSurface(EGL10.EGL_DRAW) != mEglSurface) { if (!sEgl.eglMakeCurrent(sEglDisplay, mEglSurface, mEglSurface, sEglContext)) { - throw new RuntimeException("eglMakeCurrent failed " - + getEGLErrorString(sEgl.eglGetError())); + fallback(true); + Log.e(LOG_TAG, "eglMakeCurrent failed " + + getEGLErrorString(sEgl.eglGetError())); } } } |