summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2013-02-25 16:21:58 -0800
committerRomain Guy <romainguy@google.com>2013-02-25 16:21:58 -0800
commit6b24c458139091836486cce774a2e1255668e001 (patch)
tree07c67083a154dc54938760260c3cbfe2876a39c2
parent1022e801bac5bbb17c6aeccf1384a5a21fdeb836 (diff)
downloadpackages_apps_Settings-6b24c458139091836486cce774a2e1255668e001.zip
packages_apps_Settings-6b24c458139091836486cce774a2e1255668e001.tar.gz
packages_apps_Settings-6b24c458139091836486cce774a2e1255668e001.tar.bz2
Add non-rectangular clip debug setting
This change also reorganizes settings a little bit. A new section called "Hardware accelerated rendering" now hosts all the 2D/GPU related settings. Change-Id: Ife2d466b94d69310c2056c3dcf5c13737319f989
-rw-r--r--res/values/arrays.xml14
-rw-r--r--res/values/strings.xml6
-rw-r--r--res/xml/development_prefs.xml80
-rw-r--r--src/com/android/settings/DevelopmentSettings.java70
4 files changed, 113 insertions, 57 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 42154f4..23c6c82 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -765,6 +765,20 @@
<item>error</item>
</string-array>
+ <!-- Titles for non-rectangular clipping preference. [CHAR LIMIT=35] -->
+ <string-array name="show_non_rect_clip_entries">
+ <item>Off</item>
+ <item>Draw non-rectangular clip region in blue</item>
+ <item>Highlight tested drawing commands in green</item>
+ </string-array>
+
+ <!-- Values for non-rectangular clipping preference. -->
+ <string-array name="show_non_rect_clip_values" translatable="false" >
+ <item>hide</item>
+ <item>region</item>
+ <item>highlight</item>
+ </string-array>
+
<!-- Titles for frame time tracking preference. [CHAR LIMIT=35] -->
<string-array name="track_frame_time_entries">
<item>Off</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 57dbcae..c15d315 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3873,6 +3873,9 @@
<!-- Preference category for drawing debugging development settings. [CHAR LIMIT=25] -->
<string name="debug_drawing_category">Drawing</string>
+ <!-- Preference category for hardware accelerated drawing debugging development settings. [CHAR LIMIT=50] -->
+ <string name="debug_hw_drawing_category">Hardware accelerated rendering</string>
+
<!-- Preference category for monitoring debugging development settings. [CHAR LIMIT=25] -->
<string name="debug_monitoring_category">Monitoring</string>
@@ -3940,6 +3943,9 @@
<!-- UI debug setting: force anti-aliasing summary [CHAR LIMIT=50] -->
<string name="force_msaa_summary">Enable 4x MSAA in OpenGL ES 2.0 apps</string>
+ <!-- UI debug setting: show when non-rectangular clip operations are used [CHAR LIMIT=50] -->
+ <string name="show_non_rect_clip">Debug non-rectangular clip operations</string>
+
<!-- UI debug setting: profile time taken by hardware acceleration to render apps [CHAR LIMIT=25] -->
<string name="track_frame_time">Profile GPU rendering</string>
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index c199b1d..6fbbbf4 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -104,30 +104,15 @@
android:title="@string/debug_drawing_category">
<CheckBoxPreference
- android:key="debug_layout"
- android:title="@string/debug_layout"
- android:summary="@string/debug_layout_summary"/>
-
- <CheckBoxPreference
- android:key="show_hw_screen_udpates"
- android:title="@string/show_hw_screen_updates"
- android:summary="@string/show_hw_screen_updates_summary"/>
-
- <CheckBoxPreference
- android:key="show_hw_layers_udpates"
- android:title="@string/show_hw_layers_updates"
- android:summary="@string/show_hw_layers_updates_summary"/>
-
- <CheckBoxPreference
- android:key="show_hw_overdraw"
- android:title="@string/show_hw_overdraw"
- android:summary="@string/show_hw_overdraw_summary"/>
-
- <CheckBoxPreference
android:key="show_screen_updates"
android:title="@string/show_screen_updates"
android:summary="@string/show_screen_updates_summary"/>
+ <CheckBoxPreference
+ android:key="debug_layout"
+ android:title="@string/debug_layout"
+ android:summary="@string/debug_layout_summary"/>
+
<ListPreference
android:key="window_animation_scale"
android:title="@string/window_animation_scale_title"
@@ -149,27 +134,54 @@
android:entries="@array/animator_duration_scale_entries"
android:entryValues="@array/animator_duration_scale_values" />
+ <ListPreference
+ android:key="overlay_display_devices"
+ android:title="@string/overlay_display_devices_title"
+ android:persistent="false"
+ android:entries="@array/overlay_display_devices_entries"
+ android:entryValues="@array/overlay_display_devices_values" />
+
+ </PreferenceCategory>
+
+ <PreferenceCategory android:key="debug_hw_drawing_category"
+ android:title="@string/debug_hw_drawing_category">
+
+ <CheckBoxPreference
+ android:key="force_hw_ui"
+ android:title="@string/force_hw_ui"
+ android:summary="@string/force_hw_ui_summary"/>
+
<CheckBoxPreference
- android:key="disable_overlays"
- android:title="@string/disable_overlays"
- android:summary="@string/disable_overlays_summary"/>
+ android:key="show_hw_screen_udpates"
+ android:title="@string/show_hw_screen_updates"
+ android:summary="@string/show_hw_screen_updates_summary"/>
<CheckBoxPreference
- android:key="force_hw_ui"
- android:title="@string/force_hw_ui"
- android:summary="@string/force_hw_ui_summary"/>
+ android:key="show_hw_layers_udpates"
+ android:title="@string/show_hw_layers_updates"
+ android:summary="@string/show_hw_layers_updates_summary"/>
<CheckBoxPreference
- android:key="force_msaa"
- android:title="@string/force_msaa"
- android:summary="@string/force_msaa_summary"/>
+ android:key="show_hw_overdraw"
+ android:title="@string/show_hw_overdraw"
+ android:summary="@string/show_hw_overdraw_summary"/>
<ListPreference
- android:key="overlay_display_devices"
- android:title="@string/overlay_display_devices_title"
- android:persistent="false"
- android:entries="@array/overlay_display_devices_entries"
- android:entryValues="@array/overlay_display_devices_values" />
+ android:key="show_non_rect_clip"
+ android:title="@string/show_non_rect_clip"
+ android:persistent="false"
+ android:entries="@array/show_non_rect_clip_entries"
+ android:entryValues="@array/show_non_rect_clip_values" />
+
+ <CheckBoxPreference
+ android:key="force_msaa"
+ android:title="@string/force_msaa"
+ android:summary="@string/force_msaa_summary"/>
+
+ <CheckBoxPreference
+ android:key="disable_overlays"
+ android:title="@string/disable_overlays"
+ android:summary="@string/disable_overlays_summary"/>
</PreferenceCategory>
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index f37b5f8..4dfe700 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -46,11 +46,9 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.StrictMode;
import android.os.SystemProperties;
-import android.os.Trace;
import android.os.UserHandle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
-import android.preference.MultiCheckPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceFragment;
@@ -114,6 +112,7 @@ public class DevelopmentSettings extends PreferenceFragment
private static final String FORCE_HARDWARE_UI_KEY = "force_hw_ui";
private static final String FORCE_MSAA_KEY = "force_msaa";
private static final String TRACK_FRAME_TIME_KEY = "track_frame_time";
+ private static final String SHOW_NON_RECTANGULAR_CLIP_KEY = "show_non_rect_clip";
private static final String SHOW_HW_SCREEN_UPDATES_KEY = "show_hw_screen_udpates";
private static final String SHOW_HW_LAYERS_UPDATES_KEY = "show_hw_layers_udpates";
private static final String SHOW_HW_OVERDRAW_KEY = "show_hw_overdraw";
@@ -173,6 +172,7 @@ public class DevelopmentSettings extends PreferenceFragment
private CheckBoxPreference mShowHwOverdraw;
private CheckBoxPreference mDebugLayout;
private ListPreference mTrackFrameTime;
+ private ListPreference mShowNonRectClip;
private ListPreference mWindowAnimationScale;
private ListPreference mTransitionAnimationScale;
private ListPreference mAnimatorDurationScale;
@@ -252,36 +252,23 @@ public class DevelopmentSettings extends PreferenceFragment
mShowCpuUsage = findAndInitCheckboxPref(SHOW_CPU_USAGE_KEY);
mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY);
mForceMsaa = findAndInitCheckboxPref(FORCE_MSAA_KEY);
- mTrackFrameTime = (ListPreference) findPreference(TRACK_FRAME_TIME_KEY);
- mAllPrefs.add(mTrackFrameTime);
- mTrackFrameTime.setOnPreferenceChangeListener(this);
+ mTrackFrameTime = addListPreference(TRACK_FRAME_TIME_KEY);
+ mShowNonRectClip = addListPreference(SHOW_NON_RECTANGULAR_CLIP_KEY);
mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY);
mShowHwLayersUpdates = findAndInitCheckboxPref(SHOW_HW_LAYERS_UPDATES_KEY);
mShowHwOverdraw = findAndInitCheckboxPref(SHOW_HW_OVERDRAW_KEY);
mDebugLayout = findAndInitCheckboxPref(DEBUG_LAYOUT_KEY);
- mWindowAnimationScale = (ListPreference) findPreference(WINDOW_ANIMATION_SCALE_KEY);
- mAllPrefs.add(mWindowAnimationScale);
- mWindowAnimationScale.setOnPreferenceChangeListener(this);
- mTransitionAnimationScale = (ListPreference) findPreference(TRANSITION_ANIMATION_SCALE_KEY);
- mAllPrefs.add(mTransitionAnimationScale);
- mTransitionAnimationScale.setOnPreferenceChangeListener(this);
- mAnimatorDurationScale = (ListPreference) findPreference(ANIMATOR_DURATION_SCALE_KEY);
- mAllPrefs.add(mAnimatorDurationScale);
- mAnimatorDurationScale.setOnPreferenceChangeListener(this);
- 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);
+ mWindowAnimationScale = addListPreference(WINDOW_ANIMATION_SCALE_KEY);
+ mTransitionAnimationScale = addListPreference(TRANSITION_ANIMATION_SCALE_KEY);
+ mAnimatorDurationScale = addListPreference(ANIMATOR_DURATION_SCALE_KEY);
+ mOverlayDisplayDevices = addListPreference(OVERLAY_DISPLAY_DEVICES_KEY);
+ mOpenGLTraces = addListPreference(OPENGL_TRACES_KEY);
mImmediatelyDestroyActivities = (CheckBoxPreference) findPreference(
IMMEDIATELY_DESTROY_ACTIVITIES_KEY);
mAllPrefs.add(mImmediatelyDestroyActivities);
mResetCbPrefs.add(mImmediatelyDestroyActivities);
- mAppProcessLimit = (ListPreference) findPreference(APP_PROCESS_LIMIT_KEY);
- mAllPrefs.add(mAppProcessLimit);
- mAppProcessLimit.setOnPreferenceChangeListener(this);
+ mAppProcessLimit = addListPreference(APP_PROCESS_LIMIT_KEY);
mShowAllANRs = (CheckBoxPreference) findPreference(
SHOW_ALL_ANRS_KEY);
@@ -295,6 +282,13 @@ public class DevelopmentSettings extends PreferenceFragment
removeHdcpOptionsForProduction();
}
+ private ListPreference addListPreference(String prefKey) {
+ ListPreference pref = (ListPreference) findPreference(prefKey);
+ mAllPrefs.add(pref);
+ pref.setOnPreferenceChangeListener(this);
+ return pref;
+ }
+
private void disableForUser(Preference pref) {
if (pref != null) {
pref.setEnabled(false);
@@ -426,6 +420,7 @@ public class DevelopmentSettings extends PreferenceFragment
updateHardwareUiOptions();
updateMsaaOptions();
updateTrackFrameTimeOptions();
+ updateShowNonRectClipOptions();
updateShowHwScreenUpdatesOptions();
updateShowHwLayersUpdatesOptions();
updateShowHwOverdrawOptions();
@@ -735,6 +730,32 @@ public class DevelopmentSettings extends PreferenceFragment
updateTrackFrameTimeOptions();
}
+ private void updateShowNonRectClipOptions() {
+ String value = SystemProperties.get(
+ HardwareRenderer.DEBUG_SHOW_NON_RECTANGULAR_CLIP_PROPERTY);
+ if (value == null) {
+ value = "hide";
+ }
+
+ CharSequence[] values = mShowNonRectClip.getEntryValues();
+ for (int i = 0; i < values.length; i++) {
+ if (value.contentEquals(values[i])) {
+ mShowNonRectClip.setValueIndex(i);
+ mShowNonRectClip.setSummary(mShowNonRectClip.getEntries()[i]);
+ return;
+ }
+ }
+ mShowNonRectClip.setValueIndex(0);
+ mShowNonRectClip.setSummary(mShowNonRectClip.getEntries()[0]);
+ }
+
+ private void writeShowNonRectClipOptions(Object newValue) {
+ SystemProperties.set(HardwareRenderer.DEBUG_SHOW_NON_RECTANGULAR_CLIP_PROPERTY,
+ newValue == null ? "" : newValue.toString());
+ pokeSystemProperties();
+ updateShowNonRectClipOptions();
+ }
+
private void updateShowHwScreenUpdatesOptions() {
updateCheckBox(mShowHwScreenUpdates,
SystemProperties.getBoolean(HardwareRenderer.DEBUG_DIRTY_REGIONS_PROPERTY, false));
@@ -1092,6 +1113,9 @@ public class DevelopmentSettings extends PreferenceFragment
} else if (preference == mTrackFrameTime) {
writeTrackFrameTimeOptions(newValue);
return true;
+ } else if (preference == mShowNonRectClip) {
+ writeShowNonRectClipOptions(newValue);
+ return true;
} else if (preference == mAppProcessLimit) {
writeAppProcessLimitOptions(newValue);
return true;