summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/content/Context.java2
-rw-r--r--core/java/android/view/HardwareRenderer.java26
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()));
}
}
}