Loading core/java/android/view/DisplayListCanvas.java +1 −12 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import android.graphics.Paint; import android.util.Pools.SynchronizedPool; /** * A Canvas implementation that records drawing operations for deferred rendering. * A Canvas implementation that records view system drawing operations for deferred rendering. * This is intended for use with a DisplayList. This class keeps a list of all the Paint and * Bitmap objects that it draws, preventing the backing memory of Bitmaps from being freed while * the DisplayList is still holding a native reference to the memory. Loading Loading @@ -74,17 +74,6 @@ public class DisplayListCanvas extends Canvas { return o == mNode; } /////////////////////////////////////////////////////////////////////////// // JNI /////////////////////////////////////////////////////////////////////////// private static native boolean nIsAvailable(); private static boolean sIsAvailable = nIsAvailable(); static boolean isAvailable() { return sIsAvailable; } /////////////////////////////////////////////////////////////////////////// // Constructors /////////////////////////////////////////////////////////////////////////// Loading core/java/android/view/ThreadedRenderer.java +5 −2 Original line number Diff line number Diff line Loading @@ -226,6 +226,9 @@ public final class ThreadedRenderer { sTrimForeground = true; } private static native boolean nSupportsOpenGL(); private static boolean sSupportsOpenGL = nSupportsOpenGL(); /** * Indicates whether threaded rendering is available under any form for * the view hierarchy. Loading @@ -234,7 +237,7 @@ public final class ThreadedRenderer { * false otherwise */ public static boolean isAvailable() { return DisplayListCanvas.isAvailable(); return sSupportsOpenGL; } /** Loading @@ -258,7 +261,7 @@ public final class ThreadedRenderer { */ public static ThreadedRenderer create(Context context, boolean translucent) { ThreadedRenderer renderer = null; if (DisplayListCanvas.isAvailable()) { if (isAvailable()) { renderer = new ThreadedRenderer(context, translucent); } return renderer; Loading core/jni/android_view_DisplayListCanvas.cpp +0 −17 Original line number Diff line number Diff line Loading @@ -198,22 +198,6 @@ static void android_view_DisplayListCanvas_drawLayer(JNIEnv* env, jobject clazz, canvas->drawLayer(layer); } // ---------------------------------------------------------------------------- // Common // ---------------------------------------------------------------------------- static jboolean android_view_DisplayListCanvas_isAvailable(JNIEnv* env, jobject clazz) { char prop[PROPERTY_VALUE_MAX]; if (property_get("ro.kernel.qemu", prop, NULL) == 0) { // not in the emulator return JNI_TRUE; } // In the emulator this property will be set > 0 when OpenGL ES 2.0 is // enabled, 0 otherwise. On old emulator versions it will be undefined. property_get("qemu.gles", prop, "0"); return atoi(prop) > 0 ? JNI_TRUE : JNI_FALSE; } // ---------------------------------------------------------------------------- // Logging // ---------------------------------------------------------------------------- Loading @@ -231,7 +215,6 @@ android_app_ActivityThread_dumpGraphics(JNIEnv* env, jobject clazz, jobject java const char* const kClassPathName = "android/view/DisplayListCanvas"; static JNINativeMethod gMethods[] = { { "nIsAvailable", "!()Z", (void*) android_view_DisplayListCanvas_isAvailable }, { "nInsertReorderBarrier","!(JZ)V", (void*) android_view_DisplayListCanvas_insertReorderBarrier }, { "nCallDrawGLFunction", "!(JJLjava/lang/Runnable;)V", Loading core/jni/android_view_ThreadedRenderer.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -521,6 +521,18 @@ void NotifyHandler::handleMessage(const Message& message) { mObserver->decStrong(nullptr); } static jboolean android_view_ThreadedRenderer_supportsOpenGL(JNIEnv* env, jobject clazz) { char prop[PROPERTY_VALUE_MAX]; if (property_get("ro.kernel.qemu", prop, NULL) == 0) { // not in the emulator return JNI_TRUE; } // In the emulator this property will be set > 0 when OpenGL ES 2.0 is // enabled, 0 otherwise. On old emulator versions it will be undefined. property_get("qemu.gles", prop, "0"); return atoi(prop) > 0 ? JNI_TRUE : JNI_FALSE; } static void android_view_ThreadedRenderer_setAtlas(JNIEnv* env, jobject clazz, jlong proxyPtr, jobject graphicBuffer, jlongArray atlasMapArray) { sp<GraphicBuffer> buffer = graphicBufferForJavaObject(env, graphicBuffer); Loading Loading @@ -855,6 +867,7 @@ static void android_view_ThreadedRenderer_setupShadersDiskCache(JNIEnv* env, job const char* const kClassPathName = "android/view/ThreadedRenderer"; static const JNINativeMethod gMethods[] = { { "nSupportsOpenGL", "!()Z", (void*) android_view_ThreadedRenderer_supportsOpenGL }, { "nSetAtlas", "(JLandroid/view/GraphicBuffer;[J)V", (void*) android_view_ThreadedRenderer_setAtlas }, { "nSetProcessStatsBuffer", "(JI)V", (void*) android_view_ThreadedRenderer_setProcessStatsBuffer }, { "nCreateRootRenderNode", "()J", (void*) android_view_ThreadedRenderer_createRootRenderNode }, Loading Loading
core/java/android/view/DisplayListCanvas.java +1 −12 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import android.graphics.Paint; import android.util.Pools.SynchronizedPool; /** * A Canvas implementation that records drawing operations for deferred rendering. * A Canvas implementation that records view system drawing operations for deferred rendering. * This is intended for use with a DisplayList. This class keeps a list of all the Paint and * Bitmap objects that it draws, preventing the backing memory of Bitmaps from being freed while * the DisplayList is still holding a native reference to the memory. Loading Loading @@ -74,17 +74,6 @@ public class DisplayListCanvas extends Canvas { return o == mNode; } /////////////////////////////////////////////////////////////////////////// // JNI /////////////////////////////////////////////////////////////////////////// private static native boolean nIsAvailable(); private static boolean sIsAvailable = nIsAvailable(); static boolean isAvailable() { return sIsAvailable; } /////////////////////////////////////////////////////////////////////////// // Constructors /////////////////////////////////////////////////////////////////////////// Loading
core/java/android/view/ThreadedRenderer.java +5 −2 Original line number Diff line number Diff line Loading @@ -226,6 +226,9 @@ public final class ThreadedRenderer { sTrimForeground = true; } private static native boolean nSupportsOpenGL(); private static boolean sSupportsOpenGL = nSupportsOpenGL(); /** * Indicates whether threaded rendering is available under any form for * the view hierarchy. Loading @@ -234,7 +237,7 @@ public final class ThreadedRenderer { * false otherwise */ public static boolean isAvailable() { return DisplayListCanvas.isAvailable(); return sSupportsOpenGL; } /** Loading @@ -258,7 +261,7 @@ public final class ThreadedRenderer { */ public static ThreadedRenderer create(Context context, boolean translucent) { ThreadedRenderer renderer = null; if (DisplayListCanvas.isAvailable()) { if (isAvailable()) { renderer = new ThreadedRenderer(context, translucent); } return renderer; Loading
core/jni/android_view_DisplayListCanvas.cpp +0 −17 Original line number Diff line number Diff line Loading @@ -198,22 +198,6 @@ static void android_view_DisplayListCanvas_drawLayer(JNIEnv* env, jobject clazz, canvas->drawLayer(layer); } // ---------------------------------------------------------------------------- // Common // ---------------------------------------------------------------------------- static jboolean android_view_DisplayListCanvas_isAvailable(JNIEnv* env, jobject clazz) { char prop[PROPERTY_VALUE_MAX]; if (property_get("ro.kernel.qemu", prop, NULL) == 0) { // not in the emulator return JNI_TRUE; } // In the emulator this property will be set > 0 when OpenGL ES 2.0 is // enabled, 0 otherwise. On old emulator versions it will be undefined. property_get("qemu.gles", prop, "0"); return atoi(prop) > 0 ? JNI_TRUE : JNI_FALSE; } // ---------------------------------------------------------------------------- // Logging // ---------------------------------------------------------------------------- Loading @@ -231,7 +215,6 @@ android_app_ActivityThread_dumpGraphics(JNIEnv* env, jobject clazz, jobject java const char* const kClassPathName = "android/view/DisplayListCanvas"; static JNINativeMethod gMethods[] = { { "nIsAvailable", "!()Z", (void*) android_view_DisplayListCanvas_isAvailable }, { "nInsertReorderBarrier","!(JZ)V", (void*) android_view_DisplayListCanvas_insertReorderBarrier }, { "nCallDrawGLFunction", "!(JJLjava/lang/Runnable;)V", Loading
core/jni/android_view_ThreadedRenderer.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -521,6 +521,18 @@ void NotifyHandler::handleMessage(const Message& message) { mObserver->decStrong(nullptr); } static jboolean android_view_ThreadedRenderer_supportsOpenGL(JNIEnv* env, jobject clazz) { char prop[PROPERTY_VALUE_MAX]; if (property_get("ro.kernel.qemu", prop, NULL) == 0) { // not in the emulator return JNI_TRUE; } // In the emulator this property will be set > 0 when OpenGL ES 2.0 is // enabled, 0 otherwise. On old emulator versions it will be undefined. property_get("qemu.gles", prop, "0"); return atoi(prop) > 0 ? JNI_TRUE : JNI_FALSE; } static void android_view_ThreadedRenderer_setAtlas(JNIEnv* env, jobject clazz, jlong proxyPtr, jobject graphicBuffer, jlongArray atlasMapArray) { sp<GraphicBuffer> buffer = graphicBufferForJavaObject(env, graphicBuffer); Loading Loading @@ -855,6 +867,7 @@ static void android_view_ThreadedRenderer_setupShadersDiskCache(JNIEnv* env, job const char* const kClassPathName = "android/view/ThreadedRenderer"; static const JNINativeMethod gMethods[] = { { "nSupportsOpenGL", "!()Z", (void*) android_view_ThreadedRenderer_supportsOpenGL }, { "nSetAtlas", "(JLandroid/view/GraphicBuffer;[J)V", (void*) android_view_ThreadedRenderer_setAtlas }, { "nSetProcessStatsBuffer", "(JI)V", (void*) android_view_ThreadedRenderer_setProcessStatsBuffer }, { "nCreateRootRenderNode", "()J", (void*) android_view_ThreadedRenderer_createRootRenderNode }, Loading