diff options
author | Romain Guy <romainguy@google.com> | 2011-01-24 22:35:21 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-01-24 22:35:21 -0800 |
commit | 89fca351702e3ec54c2748e2e2676ec1b2fbe9dc (patch) | |
tree | b82e9742584a22137a0842e38ee57f7519e7022c | |
parent | 9c0bd864a302ac2a8cb826c3c8d2f0d0ce6f2406 (diff) | |
parent | 5e7f766e99c679110fa95501728bb81a8e396e58 (diff) | |
download | frameworks_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.java | 9 | ||||
-rw-r--r-- | core/java/android/view/ViewGroup.java | 2 |
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; |