Don't use OpenGL ES 2.0 to render the wallpaper on the emulator.
Bug #5352896
The emulator doesn't support OpenGL ES 2.0.
Change-Id: I7f647d78d4d8ad87d12a5f009d5d37f6aeaecf72
diff --git a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java b/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java
index 492f3c2..bf1ec25 100644
--- a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java
+++ b/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java
@@ -26,6 +26,7 @@
import android.graphics.Rect;
import android.graphics.Region.Op;
import android.opengl.GLUtils;
+import android.os.SystemProperties;
import android.renderscript.Matrix4f;
import android.service.wallpaper.WallpaperService;
import android.util.Log;
@@ -56,6 +57,7 @@
private static final String TAG = "ImageWallpaper";
private static final String GL_LOG_TAG = "ImageWallpaperGL";
private static final boolean DEBUG = false;
+ private static final String PROPERTY_KERNEL_QEMU = "ro.kernel.qemu";
static final boolean FIXED_SIZED_SURFACE = true;
static final boolean USE_OPENGL = true;
@@ -71,12 +73,19 @@
//noinspection PointlessBooleanExpression,ConstantConditions
if (FIXED_SIZED_SURFACE && USE_OPENGL) {
- WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
- Display display = windowManager.getDefaultDisplay();
- mIsHwAccelerated = ActivityManager.isHighEndGfx(display);
+ if (!isEmulator()) {
+ WindowManager windowManager =
+ (WindowManager) getSystemService(Context.WINDOW_SERVICE);
+ Display display = windowManager.getDefaultDisplay();
+ mIsHwAccelerated = ActivityManager.isHighEndGfx(display);
+ }
}
}
+ private static boolean isEmulator() {
+ return "1".equals(SystemProperties.get(PROPERTY_KERNEL_QEMU, "0"));
+ }
+
public Engine onCreateEngine() {
return new DrawableEngine();
}