Don't preload HardwareRenderer, its static initialization is process dependant.
Change-Id: I229357aaaa10b19209983c122f98dd3c07e01d7f
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java
index 011e44c..49673ef 100644
--- a/core/java/android/view/HardwareRenderer.java
+++ b/core/java/android/view/HardwareRenderer.java
@@ -32,6 +32,8 @@
import javax.microedition.khronos.egl.EGLSurface;
import javax.microedition.khronos.opengles.GL;
+import static javax.microedition.khronos.egl.EGL10.*;
+
/**
* Interface for rendering a ViewAncestor using hardware acceleration.
*
@@ -373,33 +375,33 @@
*/
static String getEGLErrorString(int error) {
switch (error) {
- case EGL10.EGL_SUCCESS:
+ case EGL_SUCCESS:
return "EGL_SUCCESS";
- case EGL10.EGL_NOT_INITIALIZED:
+ case EGL_NOT_INITIALIZED:
return "EGL_NOT_INITIALIZED";
- case EGL10.EGL_BAD_ACCESS:
+ case EGL_BAD_ACCESS:
return "EGL_BAD_ACCESS";
- case EGL10.EGL_BAD_ALLOC:
+ case EGL_BAD_ALLOC:
return "EGL_BAD_ALLOC";
- case EGL10.EGL_BAD_ATTRIBUTE:
+ case EGL_BAD_ATTRIBUTE:
return "EGL_BAD_ATTRIBUTE";
- case EGL10.EGL_BAD_CONFIG:
+ case EGL_BAD_CONFIG:
return "EGL_BAD_CONFIG";
- case EGL10.EGL_BAD_CONTEXT:
+ case EGL_BAD_CONTEXT:
return "EGL_BAD_CONTEXT";
- case EGL10.EGL_BAD_CURRENT_SURFACE:
+ case EGL_BAD_CURRENT_SURFACE:
return "EGL_BAD_CURRENT_SURFACE";
- case EGL10.EGL_BAD_DISPLAY:
+ case EGL_BAD_DISPLAY:
return "EGL_BAD_DISPLAY";
- case EGL10.EGL_BAD_MATCH:
+ case EGL_BAD_MATCH:
return "EGL_BAD_MATCH";
- case EGL10.EGL_BAD_NATIVE_PIXMAP:
+ case EGL_BAD_NATIVE_PIXMAP:
return "EGL_BAD_NATIVE_PIXMAP";
- case EGL10.EGL_BAD_NATIVE_WINDOW:
+ case EGL_BAD_NATIVE_WINDOW:
return "EGL_BAD_NATIVE_WINDOW";
- case EGL10.EGL_BAD_PARAMETER:
+ case EGL_BAD_PARAMETER:
return "EGL_BAD_PARAMETER";
- case EGL10.EGL_BAD_SURFACE:
+ case EGL_BAD_SURFACE:
return "EGL_BAD_SURFACE";
case EGL11.EGL_CONTEXT_LOST:
return "EGL_CONTEXT_LOST";
@@ -416,7 +418,7 @@
void checkEglErrors() {
if (isEnabled()) {
int error = sEgl.eglGetError();
- if (error != EGL10.EGL_SUCCESS) {
+ if (error != EGL_SUCCESS) {
// something bad has happened revert to
// normal rendering.
fallback(error != EGL11.EGL_CONTEXT_LOST);
@@ -444,7 +446,7 @@
if (mGl != null) {
int err = sEgl.eglGetError();
- if (err != EGL10.EGL_SUCCESS) {
+ if (err != EGL_SUCCESS) {
destroy(true);
setRequested(false);
} else {
@@ -480,9 +482,9 @@
sEgl = (EGL10) EGLContext.getEGL();
// Get to the default display.
- sEglDisplay = sEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
+ sEglDisplay = sEgl.eglGetDisplay(EGL_DEFAULT_DISPLAY);
- if (sEglDisplay == EGL10.EGL_NO_DISPLAY) {
+ if (sEglDisplay == EGL_NO_DISPLAY) {
throw new RuntimeException("eglGetDisplay failed "
+ getEGLErrorString(sEgl.eglGetError()));
}
@@ -550,22 +552,22 @@
* The window size has changed, so we need to create a new
* surface.
*/
- if (mEglSurface != null && mEglSurface != EGL10.EGL_NO_SURFACE) {
+ if (mEglSurface != null && mEglSurface != EGL_NO_SURFACE) {
/*
* Unbind and destroy the old EGL surface, if
* there is one.
*/
- sEgl.eglMakeCurrent(sEglDisplay, EGL10.EGL_NO_SURFACE,
- EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
+ sEgl.eglMakeCurrent(sEglDisplay, EGL_NO_SURFACE,
+ EGL_NO_SURFACE, EGL_NO_CONTEXT);
sEgl.eglDestroySurface(sEglDisplay, mEglSurface);
}
// Create an EGL surface we can render into.
mEglSurface = sEgl.eglCreateWindowSurface(sEglDisplay, sEglConfig, holder, null);
- if (mEglSurface == null || mEglSurface == EGL10.EGL_NO_SURFACE) {
+ if (mEglSurface == null || mEglSurface == EGL_NO_SURFACE) {
int error = sEgl.eglGetError();
- if (error == EGL10.EGL_BAD_NATIVE_WINDOW) {
+ if (error == EGL_BAD_NATIVE_WINDOW) {
Log.e(LOG_TAG, "createWindowSurface returned EGL_BAD_NATIVE_WINDOW.");
return null;
}
@@ -602,9 +604,9 @@
}
EGLContext createContext(EGL10 egl, EGLDisplay eglDisplay, EGLConfig eglConfig) {
- int[] attrib_list = { EGL_CONTEXT_CLIENT_VERSION, mGlVersion, EGL10.EGL_NONE };
+ int[] attrib_list = { EGL_CONTEXT_CLIENT_VERSION, mGlVersion, EGL_NONE };
- return egl.eglCreateContext(eglDisplay, eglConfig, EGL10.EGL_NO_CONTEXT,
+ return egl.eglCreateContext(eglDisplay, eglConfig, EGL_NO_CONTEXT,
mGlVersion != 0 ? attrib_list : null);
}
@@ -627,8 +629,8 @@
mDestroyed = true;
- sEgl.eglMakeCurrent(sEglDisplay, EGL10.EGL_NO_SURFACE,
- EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
+ sEgl.eglMakeCurrent(sEglDisplay, EGL_NO_SURFACE,
+ EGL_NO_SURFACE, EGL_NO_CONTEXT);
sEgl.eglDestroySurface(sEglDisplay, mEglSurface);
mEglSurface = null;
@@ -641,8 +643,8 @@
void invalidate() {
// Cancels any existing buffer to ensure we'll get a buffer
// of the right size before we call eglSwapBuffers
- sEgl.eglMakeCurrent(sEglDisplay, EGL10.EGL_NO_SURFACE,
- EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
+ sEgl.eglMakeCurrent(sEglDisplay, EGL_NO_SURFACE,
+ EGL_NO_SURFACE, EGL_NO_CONTEXT);
}
@Override
@@ -753,7 +755,7 @@
}
if (!sEglContext.equals(sEgl.eglGetCurrentContext()) ||
- !mEglSurface.equals(sEgl.eglGetCurrentSurface(EGL10.EGL_DRAW))) {
+ !mEglSurface.equals(sEgl.eglGetCurrentSurface(EGL_DRAW))) {
if (!sEgl.eglMakeCurrent(sEglDisplay, mEglSurface, mEglSurface, sEglContext)) {
fallback(true);
Log.e(LOG_TAG, "eglMakeCurrent failed " +
@@ -785,16 +787,16 @@
@Override
int[] getConfig(boolean dirtyRegions) {
return new int[] {
- EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
- EGL10.EGL_RED_SIZE, 8,
- EGL10.EGL_GREEN_SIZE, 8,
- EGL10.EGL_BLUE_SIZE, 8,
- EGL10.EGL_ALPHA_SIZE, 8,
- EGL10.EGL_DEPTH_SIZE, 0,
- EGL10.EGL_STENCIL_SIZE, 0,
- EGL_SURFACE_TYPE, EGL10.EGL_WINDOW_BIT |
- (dirtyRegions ? EGL_SWAP_BEHAVIOR_PRESERVED_BIT : 0),
- EGL10.EGL_NONE
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_ALPHA_SIZE, 8,
+ EGL_DEPTH_SIZE, 0,
+ EGL_STENCIL_SIZE, 0,
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT |
+ (dirtyRegions ? EGL_SWAP_BEHAVIOR_PRESERVED_BIT : 0),
+ EGL_NONE
};
}
diff --git a/preloaded-classes b/preloaded-classes
index 1eabe14..c530cd4 100644
--- a/preloaded-classes
+++ b/preloaded-classes
@@ -671,12 +671,6 @@
android.view.GLES20Canvas$CanvasFinalizer
android.view.Gravity
android.view.HardwareCanvas
-android.view.HardwareRenderer
-android.view.HardwareRenderer$Gl20Renderer
-android.view.HardwareRenderer$GlRenderer
-android.view.HardwareRenderer$GlRenderer$ComponentSizeChooser
-android.view.HardwareRenderer$GlRenderer$EglConfigChooser
-android.view.HardwareRenderer$HardwareDrawCallbacks
android.view.IWindow
android.view.IWindow$Stub
android.view.IWindowManager