Merge "Hack to workaround the fact that the EGL context can be removed from under us by framework in low memory condition." into ics-mr1

This commit is contained in:
Nicolas Roard
2011-11-16 19:40:04 -08:00
committed by Android (Google) Code Review

View File

@@ -119,6 +119,11 @@ import java.util.Vector;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLContext;
import javax.microedition.khronos.egl.EGLDisplay;
import static javax.microedition.khronos.egl.EGL10.*;
/** /**
* <p>A View that displays web pages. This class is the basis upon which you * <p>A View that displays web pages. This class is the basis upon which you
* can roll your own web browser or simply display some online content within your Activity. * can roll your own web browser or simply display some online content within your Activity.
@@ -909,6 +914,9 @@ public class WebView extends AbsoluteLayout
private Rect mScrollingLayerBounds = new Rect(); private Rect mScrollingLayerBounds = new Rect();
private boolean mSentAutoScrollMessage = false; private boolean mSentAutoScrollMessage = false;
// Temporary hack to work around the context removal upon memory pressure
private static boolean mIncrementEGLContextHack = false;
// used for serializing asynchronously handled touch events. // used for serializing asynchronously handled touch events.
private final TouchEventQueue mTouchEventQueue = new TouchEventQueue(); private final TouchEventQueue mTouchEventQueue = new TouchEventQueue();
@@ -4225,6 +4233,13 @@ public class WebView extends AbsoluteLayout
} }
if (canvas.isHardwareAccelerated()) { if (canvas.isHardwareAccelerated()) {
if (mIncrementEGLContextHack == false) {
mIncrementEGLContextHack = true;
EGL10 egl = (EGL10) EGLContext.getEGL();
EGLDisplay eglDisplay = egl.eglGetDisplay(EGL_DEFAULT_DISPLAY);
int[] version = new int[2];
egl.eglInitialize(eglDisplay, version);
}
mZoomManager.setHardwareAccelerated(); mZoomManager.setHardwareAccelerated();
} }