Loading opengl/libs/EGL/Loader.cpp +43 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <limits.h> #include <cutils/log.h> #include <cutils/properties.h> #include <EGL/egl.h> Loading @@ -45,6 +46,39 @@ namespace android { ANDROID_SINGLETON_STATIC_INSTANCE( Loader ) /* This function is called to check whether we run inside the emulator, * and if this is the case whether GLES GPU emulation is supported. * * Returned values are: * -1 -> not running inside the emulator * 0 -> running inside the emulator, but GPU emulation not supported * 1 -> running inside the emulator, GPU emulation is supported * through the "emulation" config. */ static int checkGlesEmulationStatus(void) { /* We're going to check for the following kernel parameters: * * qemu=1 -> tells us that we run inside the emulator * android.qemu.gles=<number> -> tells us the GLES GPU emulation status * * Note that we will return <number> if we find it. This let us support * more additionnal emulation modes in the future. */ char prop[PROPERTY_VALUE_MAX]; int result = -1; /* First, check for qemu=1 */ property_get("ro.kernel.qemu",prop,"0"); if (atoi(prop) != 1) return -1; /* We are in the emulator, get GPU status value */ property_get("ro.kernel.qemu.gles",prop,"0"); return atoi(prop); } // ---------------------------------------------------------------------------- Loader::driver_t::driver_t(void* gles) Loading Loading @@ -94,6 +128,15 @@ Loader::Loader() { char line[256]; char tag[256]; /* Special case for GLES emulation */ if (checkGlesEmulationStatus() == 0) { LOGD("Emulator without GPU support detected. Fallback to software renderer."); gConfig.add( entry_t(0, 0, "android") ); return; } /* Otherwise, use egl.cfg */ FILE* cfg = fopen("/system/lib/egl/egl.cfg", "r"); if (cfg == NULL) { // default config Loading Loading
opengl/libs/EGL/Loader.cpp +43 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <limits.h> #include <cutils/log.h> #include <cutils/properties.h> #include <EGL/egl.h> Loading @@ -45,6 +46,39 @@ namespace android { ANDROID_SINGLETON_STATIC_INSTANCE( Loader ) /* This function is called to check whether we run inside the emulator, * and if this is the case whether GLES GPU emulation is supported. * * Returned values are: * -1 -> not running inside the emulator * 0 -> running inside the emulator, but GPU emulation not supported * 1 -> running inside the emulator, GPU emulation is supported * through the "emulation" config. */ static int checkGlesEmulationStatus(void) { /* We're going to check for the following kernel parameters: * * qemu=1 -> tells us that we run inside the emulator * android.qemu.gles=<number> -> tells us the GLES GPU emulation status * * Note that we will return <number> if we find it. This let us support * more additionnal emulation modes in the future. */ char prop[PROPERTY_VALUE_MAX]; int result = -1; /* First, check for qemu=1 */ property_get("ro.kernel.qemu",prop,"0"); if (atoi(prop) != 1) return -1; /* We are in the emulator, get GPU status value */ property_get("ro.kernel.qemu.gles",prop,"0"); return atoi(prop); } // ---------------------------------------------------------------------------- Loader::driver_t::driver_t(void* gles) Loading Loading @@ -94,6 +128,15 @@ Loader::Loader() { char line[256]; char tag[256]; /* Special case for GLES emulation */ if (checkGlesEmulationStatus() == 0) { LOGD("Emulator without GPU support detected. Fallback to software renderer."); gConfig.add( entry_t(0, 0, "android") ); return; } /* Otherwise, use egl.cfg */ FILE* cfg = fopen("/system/lib/egl/egl.cfg", "r"); if (cfg == NULL) { // default config Loading