diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java index a52e3d49148d4..2c31e32f2ef87 100644 --- a/core/java/android/os/GraphicsEnvironment.java +++ b/core/java/android/os/GraphicsEnvironment.java @@ -212,6 +212,13 @@ public class GraphicsEnvironment { Trace.traceEnd(Trace.TRACE_TAG_GRAPHICS); } + /** + * Switch the system to use ANGLE as the default GLES driver. + */ + public void toggleAngleAsSystemDriver(boolean enabled) { + nativeToggleAngleAsSystemDriver(enabled); + } + /** * Query to determine if the Game Mode has enabled ANGLE. */ @@ -992,6 +999,7 @@ public class GraphicsEnvironment { String appPackage, boolean angleIsSystemDriver, String legacyDriverName); private static native boolean getShouldUseAngle(String packageName); private static native boolean setInjectLayersPrSetDumpable(); + private static native void nativeToggleAngleAsSystemDriver(boolean enabled); /** * Hint for GraphicsEnvironment that an activity is launching on the process. diff --git a/core/jni/android_os_GraphicsEnvironment.cpp b/core/jni/android_os_GraphicsEnvironment.cpp index 78e2d3164993d..d9152d61ed8a7 100644 --- a/core/jni/android_os_GraphicsEnvironment.cpp +++ b/core/jni/android_os_GraphicsEnvironment.cpp @@ -122,6 +122,10 @@ void hintActivityLaunch_native(JNIEnv* env, jobject clazz) { android::GraphicsEnv::getInstance().hintActivityLaunch(); } +void nativeToggleAngleAsSystemDriver_native(JNIEnv* env, jobject clazz, jboolean enabled) { + android::GraphicsEnv::getInstance().nativeToggleAngleAsSystemDriver(enabled); +} + const JNINativeMethod g_methods[] = { {"isDebuggable", "()Z", reinterpret_cast(isDebuggable_native)}, {"setDriverPathAndSphalLibraries", "(Ljava/lang/String;Ljava/lang/String;)V", @@ -143,6 +147,8 @@ const JNINativeMethod g_methods[] = { {"setDebugLayersGLES", "(Ljava/lang/String;)V", reinterpret_cast(setDebugLayersGLES_native)}, {"hintActivityLaunch", "()V", reinterpret_cast(hintActivityLaunch_native)}, + {"nativeToggleAngleAsSystemDriver", "(Z)V", + reinterpret_cast(nativeToggleAngleAsSystemDriver_native)}, }; const char* const kGraphicsEnvironmentName = "android/os/GraphicsEnvironment"; diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index e216f88d3c4da..11fcd1e248dbf 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -7629,6 +7629,13 @@ + + +