Skip to content

Commit 6d90c1c

Browse files
critsecAndroid (Google) Code Review
authored andcommitted
Merge "Disable GLES20Canvas on emu w/o native GL" into ics-mr1
2 parents 55347e6 + 4406345 commit 6d90c1c

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

core/jni/android_view_GLES20Canvas.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <nativehelper/JNIHelp.h>
2424
#include <android_runtime/AndroidRuntime.h>
2525
#include <android_runtime/android_graphics_SurfaceTexture.h>
26+
#include <cutils/properties.h>
2627
#include <utils/ResourceTypes.h>
2728

2829
#include <gui/SurfaceTexture.h>
@@ -736,7 +737,15 @@ static jboolean android_view_GLES20Canvas_copyLayer(JNIEnv* env, jobject clazz,
736737

737738
static jboolean android_view_GLES20Canvas_isAvailable(JNIEnv* env, jobject clazz) {
738739
#ifdef USE_OPENGL_RENDERER
739-
return JNI_TRUE;
740+
char prop[PROPERTY_VALUE_MAX];
741+
if (property_get("ro.kernel.qemu", prop, NULL) == 0) {
742+
// not in the emulator
743+
return JNI_TRUE;
744+
}
745+
// In the emulator this property will be set to 1 when hardware GLES is
746+
// enabled, 0 otherwise. On old emulator versions it will be undefined.
747+
property_get("ro.kernel.qemu.gles", prop, "0");
748+
return atoi(prop) == 1 ? JNI_TRUE : JNI_FALSE;
740749
#else
741750
return JNI_FALSE;
742751
#endif

0 commit comments

Comments
 (0)