diff options
7 files changed, 34 insertions, 257 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index a6a5427..b6f0aa2 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -12363,9 +12363,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, canvas.setViewport(width, height); // The dirty rect should always be null for a display list canvas.onPreDraw(null); - int layerType = ( - !(mParent instanceof ViewGroup) || ((ViewGroup)mParent).mDrawLayers) ? - getLayerType() : LAYER_TYPE_NONE; + int layerType = getLayerType(); if (!isLayer && layerType != LAYER_TYPE_NONE) { if (layerType == LAYER_TYPE_HARDWARE) { final HardwareLayer layer = getHardwareLayer(); @@ -13072,7 +13070,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, boolean scalingRequired = false; boolean caching; - int layerType = parent.mDrawLayers ? getLayerType() : LAYER_TYPE_NONE; + int layerType = getLayerType(); final boolean hardwareAccelerated = canvas.isHardwareAccelerated(); if ((flags & ViewGroup.FLAG_CHILDREN_DRAWN_WITH_CACHE) != 0 || diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 257b861..f66c4de 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -404,10 +404,6 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager // views during a transition when they otherwise would have become gone/invisible private ArrayList<View> mVisibilityChangingChildren; - // Indicates whether this container will use its children layers to draw - @ViewDebug.ExportedProperty(category = "drawing") - boolean mDrawLayers = true; - // Indicates how many of this container's child subtrees contain transient state @ViewDebug.ExportedProperty(category = "layout") private int mChildCountWithTransientState = 0; @@ -2930,45 +2926,6 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } /** - * - * @param enabled True if children should be drawn with layers, false otherwise. - * - * @hide - */ - public void setChildrenLayersEnabled(boolean enabled) { - if (enabled != mDrawLayers) { - mDrawLayers = enabled; - invalidate(true); - - boolean flushLayers = !enabled; - AttachInfo info = mAttachInfo; - if (info != null && info.mHardwareRenderer != null && - info.mHardwareRenderer.isEnabled()) { - if (!info.mHardwareRenderer.validate()) { - flushLayers = false; - } - } else { - flushLayers = false; - } - - // We need to invalidate any child with a layer. For instance, - // if a child is backed by a hardware layer and we disable layers - // the child is marked as not dirty (flags cleared the last time - // the child was drawn inside its layer.) However, that child might - // never have created its own display list or have an obsolete - // display list. By invalidating the child we ensure the display - // list is in sync with the content of the hardware layer. - for (int i = 0; i < mChildrenCount; i++) { - View child = mChildren[i]; - if (child.mLayerType != LAYER_TYPE_NONE) { - if (flushLayers) child.flushLayer(); - child.invalidate(true); - } - } - } - } - - /** * By default, children are clipped to their bounds before drawing. This * allows view groups to override this behavior for animations, etc. * diff --git a/tests/HwAccelerationTest/AndroidManifest.xml b/tests/HwAccelerationTest/AndroidManifest.xml index 9e103ac..c5fdffb 100644 --- a/tests/HwAccelerationTest/AndroidManifest.xml +++ b/tests/HwAccelerationTest/AndroidManifest.xml @@ -277,15 +277,6 @@ </activity> <activity - android:name="ViewLayersActivity6" - android:label="_ViewLayers6"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - - <activity android:name="AlphaLayersActivity" android:label="_αLayers"> <intent-filter> diff --git a/tests/HwAccelerationTest/res/layout/view_layers_5.xml b/tests/HwAccelerationTest/res/layout/view_layers_5.xml index 653f3a8..36cf8c9 100644 --- a/tests/HwAccelerationTest/res/layout/view_layers_5.xml +++ b/tests/HwAccelerationTest/res/layout/view_layers_5.xml @@ -26,16 +26,28 @@ android:layout_weight="1"> <Button - android:onClick="setLayerEnabled" + android:onClick="enableLayer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enable layer" /> <Button - android:onClick="setLayerDisabled" + android:onClick="disableLayer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Disable layer" /> + + <Button + android:onClick="shrinkLayer" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Shrink layer" /> + + <Button + android:onClick="growLayer" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Grow layer" /> </LinearLayout> diff --git a/tests/HwAccelerationTest/res/layout/view_layers_6.xml b/tests/HwAccelerationTest/res/layout/view_layers_6.xml deleted file mode 100644 index 36cf8c9..0000000 --- a/tests/HwAccelerationTest/res/layout/view_layers_6.xml +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2011 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="horizontal" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <LinearLayout - android:orientation="vertical" - android:layout_width="0dip" - android:layout_height="match_parent" - android:layout_weight="1"> - - <Button - android:onClick="enableLayer" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Enable layer" /> - - <Button - android:onClick="disableLayer" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Disable layer" /> - - <Button - android:onClick="shrinkLayer" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Shrink layer" /> - - <Button - android:onClick="growLayer" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Grow layer" /> - - </LinearLayout> - - <ListView - android:id="@+id/list1" - android:layout_width="0dip" - android:layout_height="match_parent" - android:layout_weight="1" /> - -</LinearLayout> diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity5.java b/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity5.java index 95a5b0d..2664977 100644 --- a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity5.java +++ b/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity5.java @@ -32,30 +32,40 @@ import android.widget.TextView; @SuppressWarnings({"UnusedDeclaration"}) public class ViewLayersActivity5 extends Activity { + private final Paint mPaint = new Paint(); + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.view_layers_5); + mPaint.setColorFilter(new PorterDuffColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY)); + setupList(R.id.list1); } - public void setLayerDisabled(View v) { - ((ViewGroup) findViewById(R.id.list1).getParent()).setChildrenLayersEnabled(false); + public void enableLayer(View v) { + findViewById(R.id.list1).setLayerType(View.LAYER_TYPE_HARDWARE, mPaint); + } + + public void disableLayer(View v) { + findViewById(R.id.list1).setLayerType(View.LAYER_TYPE_NONE, null); } - public void setLayerEnabled(View v) { - ((ViewGroup) findViewById(R.id.list1).getParent()).setChildrenLayersEnabled(true); + public void growLayer(View v) { + findViewById(R.id.list1).getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT; + findViewById(R.id.list1).requestLayout(); + } + + public void shrinkLayer(View v) { + findViewById(R.id.list1).getLayoutParams().height = 300; + findViewById(R.id.list1).requestLayout(); } private void setupList(int listId) { - final Paint p = new Paint(); - p.setColorFilter(new PorterDuffColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY)); - final ListView list = (ListView) findViewById(listId); list.setAdapter(new SimpleListAdapter(this)); - list.setLayerType(View.LAYER_TYPE_HARDWARE, p); } private static class SimpleListAdapter extends ArrayAdapter<String> { diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity6.java b/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity6.java deleted file mode 100644 index 2edfec7..0000000 --- a/tests/HwAccelerationTest/src/com/android/test/hwui/ViewLayersActivity6.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.test.hwui; - -import android.app.Activity; -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Paint; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; -import android.os.Bundle; -import android.util.DisplayMetrics; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ArrayAdapter; -import android.widget.ListView; -import android.widget.TextView; - -@SuppressWarnings({"UnusedDeclaration"}) -public class ViewLayersActivity6 extends Activity { - private final Paint mPaint = new Paint(); - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - setContentView(R.layout.view_layers_6); - - mPaint.setColorFilter(new PorterDuffColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY)); - - setupList(R.id.list1); - } - - public void enableLayer(View v) { - findViewById(R.id.list1).setLayerType(View.LAYER_TYPE_HARDWARE, mPaint); - } - - public void disableLayer(View v) { - findViewById(R.id.list1).setLayerType(View.LAYER_TYPE_NONE, null); - } - - public void growLayer(View v) { - findViewById(R.id.list1).getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT; - findViewById(R.id.list1).requestLayout(); - } - - public void shrinkLayer(View v) { - findViewById(R.id.list1).getLayoutParams().height = 300; - findViewById(R.id.list1).requestLayout(); - } - - private void setupList(int listId) { - final ListView list = (ListView) findViewById(listId); - list.setAdapter(new SimpleListAdapter(this)); - } - - private static class SimpleListAdapter extends ArrayAdapter<String> { - public SimpleListAdapter(Context context) { - super(context, android.R.layout.simple_list_item_1, DATA_LIST); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - TextView v = (TextView) super.getView(position, convertView, parent); - final Resources r = getContext().getResources(); - final DisplayMetrics metrics = r.getDisplayMetrics(); - v.setCompoundDrawablePadding((int) (6 * metrics.density + 0.5f)); - v.setCompoundDrawablesWithIntrinsicBounds(r.getDrawable(R.drawable.icon), - null, null, null); - return v; - } - } - - private static final String[] DATA_LIST = { - "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", - "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", - "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", - "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", - "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", - "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", - "British Indian Ocean Territory", "British Virgin Islands", "Brunei", "Bulgaria", - "Burkina Faso", "Burundi", "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde", - "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", - "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo", - "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic", - "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", - "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", - "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland", - "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia", - "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar", - "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", - "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary", - "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", - "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos", - "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", - "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", - "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", - "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia", - "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand", - "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas", - "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", - "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar", - "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena", - "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon", - "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal", - "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", - "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea", - "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden", - "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas", - "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", - "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda", - "Ukraine", "United Arab Emirates", "United Kingdom", - "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan", - "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara", - "Yemen", "Yugoslavia", "Zambia", "Zimbabwe" - }; -} |