summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-01-24 22:35:21 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-24 22:35:21 -0800
commit89fca351702e3ec54c2748e2e2676ec1b2fbe9dc (patch)
treeb82e9742584a22137a0842e38ee57f7519e7022c
parent9c0bd864a302ac2a8cb826c3c8d2f0d0ce6f2406 (diff)
parent5e7f766e99c679110fa95501728bb81a8e396e58 (diff)
downloadframeworks_base-89fca351702e3ec54c2748e2e2676ec1b2fbe9dc.zip
frameworks_base-89fca351702e3ec54c2748e2e2676ec1b2fbe9dc.tar.gz
frameworks_base-89fca351702e3ec54c2748e2e2676ec1b2fbe9dc.tar.bz2
Merge "Make nested hardware layers work again" into honeycomb
-rw-r--r--core/java/android/view/View.java9
-rw-r--r--core/java/android/view/ViewGroup.java2
2 files changed, 7 insertions, 4 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 5538007..65d2e11 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -8087,7 +8087,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
*
* @return A HardwareLayer ready to render, or null if an error occurred.
*/
- HardwareLayer getHardwareLayer(Canvas currentCanvas) {
+ HardwareLayer getHardwareLayer() {
if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null) {
return null;
}
@@ -8107,7 +8107,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
mHardwareLayer.resize(width, height);
}
- final HardwareCanvas canvas = mHardwareLayer.start(mAttachInfo.mHardwareCanvas);
+ Canvas currentCanvas = mAttachInfo.mHardwareCanvas;
+ final HardwareCanvas canvas = mHardwareLayer.start(currentCanvas);
+ mAttachInfo.mHardwareCanvas = canvas;
try {
canvas.setViewport(width, height);
// TODO: We should pass the dirty rect
@@ -8131,7 +8133,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
canvas.restoreToCount(restoreCount);
} finally {
canvas.onPostDraw();
- mHardwareLayer.end(mAttachInfo.mHardwareCanvas);
+ mHardwareLayer.end(currentCanvas);
+ mAttachInfo.mHardwareCanvas = currentCanvas;
}
}
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 7c39201..f198c46 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -2475,7 +2475,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
if (hasNoCache) {
boolean layerRendered = false;
if (layerType == LAYER_TYPE_HARDWARE) {
- final HardwareLayer layer = child.getHardwareLayer(canvas);
+ final HardwareLayer layer = child.getHardwareLayer();
if (layer != null && layer.isValid()) {
((HardwareCanvas) canvas).drawHardwareLayer(layer, 0, 0, child.mLayerPaint);
layerRendered = true;