diff options
-rw-r--r-- | res/values/arrays.xml | 16 | ||||
-rw-r--r-- | res/values/strings.xml | 3 | ||||
-rw-r--r-- | res/xml/development_prefs.xml | 7 | ||||
-rw-r--r-- | src/com/android/settings/DevelopmentSettings.java | 34 |
4 files changed, 60 insertions, 0 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 6b1c3f9..14e1fc8 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -670,6 +670,22 @@ <item>1280x720/213;1920x1080/320</item> </string-array> + <!-- Titles for OpenGL traces preference. [CHAR LIMIT=35] --> + <string-array name="enable_opengl_traces_entries"> + <item>None</item> + <item>Logcat</item> + <item>Systrace (Graphics)</item> + <item>Call stack on glGetError</item> + </string-array> + + <!-- Values for OpenGL traces preference. --> + <string-array name="enable_opengl_traces_values" translatable="false" > + <item>0</item> + <item>1</item> + <item>systrace</item> + <item>error</item> + </string-array> + <!-- Titles for app process limit preference. [CHAR LIMIT=35] --> <string-array name="app_process_limit_entries"> <item>Standard limit</item> diff --git a/res/values/strings.xml b/res/values/strings.xml index 5310c7b..2a60dd1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3954,6 +3954,9 @@ <!-- UI debug setting: enable low-level traces, all enabled summary [CHAR LIMIT=NONE] --> <string name="enable_traces_summary_all">All traces currently enabled</string> + <!-- UI debug setting: enable various types of OpenGL traces [CHAR LIMIT=25] --> + <string name="enable_opengl_traces_title">Enable OpenGL traces</string> + <!-- UI debug setting: show layout bounds information [CHAR LIMIT=25] --> <string name="debug_layout">Show layout bounds</string> <!-- UI debug setting: show layout bounds information summary [CHAR LIMIT=50] --> diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml index 1f08eaa..e67aad1 100644 --- a/res/xml/development_prefs.xml +++ b/res/xml/development_prefs.xml @@ -188,6 +188,13 @@ android:title="@string/track_frame_time" android:summary="@string/track_frame_time_summary"/> + <ListPreference + android:key="enable_opengl_traces" + android:title="@string/enable_opengl_traces_title" + android:persistent="false" + android:entries="@array/enable_opengl_traces_entries" + android:entryValues="@array/enable_opengl_traces_values" /> + <MultiCheckPreference android:key="enable_traces" android:title="@string/enable_traces_title" diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 0ad6a91..a98230f 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -95,6 +95,7 @@ public class DevelopmentSettings extends PreferenceFragment private static final String HARDWARE_UI_PROPERTY = "persist.sys.ui.hw"; private static final String MSAA_PROPERTY = "debug.egl.force_msaa"; private static final String BUGREPORT_IN_POWER_KEY = "bugreport_in_power"; + private static final String OPENGL_TRACES_PROPERTY = "debug.egl.trace"; private static final String DEBUG_APP_KEY = "debug_app"; private static final String WAIT_FOR_DEBUGGER_KEY = "wait_for_debugger"; @@ -117,6 +118,7 @@ public class DevelopmentSettings extends PreferenceFragment private static final String ANIMATOR_DURATION_SCALE_KEY = "animator_duration_scale"; private static final String OVERLAY_DISPLAY_DEVICES_KEY = "overlay_display_devices"; private static final String DEBUG_DEBUGGING_CATEGORY_KEY = "debug_debugging_category"; + private static final String OPENGL_TRACES_KEY = "enable_opengl_traces"; private static final String ENABLE_TRACES_KEY = "enable_traces"; @@ -170,6 +172,7 @@ public class DevelopmentSettings extends PreferenceFragment private ListPreference mTransitionAnimationScale; private ListPreference mAnimatorDurationScale; private ListPreference mOverlayDisplayDevices; + private ListPreference mOpenGLTraces; private MultiCheckPreference mEnableTracesPref; private CheckBoxPreference mImmediatelyDestroyActivities; @@ -245,6 +248,9 @@ public class DevelopmentSettings extends PreferenceFragment mOverlayDisplayDevices = (ListPreference) findPreference(OVERLAY_DISPLAY_DEVICES_KEY); mAllPrefs.add(mOverlayDisplayDevices); mOverlayDisplayDevices.setOnPreferenceChangeListener(this); + mOpenGLTraces = (ListPreference) findPreference(OPENGL_TRACES_KEY); + mAllPrefs.add(mOpenGLTraces); + mOpenGLTraces.setOnPreferenceChangeListener(this); mEnableTracesPref = (MultiCheckPreference)findPreference(ENABLE_TRACES_KEY); String[] traceValues = new String[Trace.TRACE_TAGS.length]; for (int i=Trace.TRACE_FLAGS_START_BIT; i<traceValues.length; i++) { @@ -405,6 +411,7 @@ public class DevelopmentSettings extends PreferenceFragment updateDebugLayoutOptions(); updateAnimationScaleOptions(); updateOverlayDisplayDevicesOptions(); + updateOpenGLTracesOptions(); updateEnableTracesOptions(); updateImmediatelyDestroyActivitiesOptions(); updateAppProcessLimitOptions(); @@ -811,6 +818,30 @@ public class DevelopmentSettings extends PreferenceFragment updateOverlayDisplayDevicesOptions(); } + private void updateOpenGLTracesOptions() { + String value = SystemProperties.get(OPENGL_TRACES_PROPERTY); + if (value == null) { + value = ""; + } + + CharSequence[] values = mOpenGLTraces.getEntryValues(); + for (int i = 0; i < values.length; i++) { + if (value.contentEquals(values[i])) { + mOpenGLTraces.setValueIndex(i); + mOpenGLTraces.setSummary(mOpenGLTraces.getEntries()[i]); + return; + } + } + mOpenGLTraces.setValueIndex(0); + mOpenGLTraces.setSummary(mOpenGLTraces.getEntries()[0]); + } + + private void writeOpenGLTracesOptions(Object newValue) { + SystemProperties.set(OPENGL_TRACES_PROPERTY, newValue == null ? "" : newValue.toString()); + pokeSystemProperties(); + updateOpenGLTracesOptions(); + } + private void updateAppProcessLimitOptions() { try { int limit = ActivityManagerNative.getDefault().getProcessLimit(); @@ -1037,6 +1068,9 @@ public class DevelopmentSettings extends PreferenceFragment } else if (preference == mOverlayDisplayDevices) { writeOverlayDisplayDevicesOptions(newValue); return true; + } else if (preference == mOpenGLTraces) { + writeOpenGLTracesOptions(newValue); + return true; } else if (preference == mEnableTracesPref) { writeEnableTracesOptions(); return true; |