diff options
author | Romain Guy <romainguy@google.com> | 2011-02-02 15:44:19 -0800 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2011-02-02 15:44:19 -0800 |
commit | 62687ec12cb8e0b1d4044a235b1387b9a8c3b4b4 (patch) | |
tree | e8cb9417b98e79ad06813201e8081f1df894486b /core | |
parent | 8257e4d7e2b1ac9b8310a326cf8f4b53aba760ec (diff) | |
download | frameworks_base-62687ec12cb8e0b1d4044a235b1387b9a8c3b4b4.zip frameworks_base-62687ec12cb8e0b1d4044a235b1387b9a8c3b4b4.tar.gz frameworks_base-62687ec12cb8e0b1d4044a235b1387b9a8c3b4b4.tar.bz2 |
Don't clobber the local dirty rect after rendering a layer.
Bug #3417254
Bug #3413433
Change-Id: I8045e9ec414ebe4ce4d38124142a00726d2c634d
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/view/HardwareRenderer.java | 2 | ||||
-rw-r--r-- | core/java/android/view/View.java | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java index 48f40c3..71d55f7 100644 --- a/core/java/android/view/HardwareRenderer.java +++ b/core/java/android/view/HardwareRenderer.java @@ -547,7 +547,7 @@ public abstract class HardwareRenderer { } onPreDraw(dirty); - + HardwareCanvas canvas = mCanvas; attachInfo.mHardwareCanvas = canvas; diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 393412f..9db43a1 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -8221,8 +8221,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility if (mHardwareLayer == null) { mHardwareLayer = mAttachInfo.mHardwareRenderer.createHardwareLayer( width, height, isOpaque()); + mLocalDirtyRect.setEmpty(); } else if (mHardwareLayer.getWidth() != width || mHardwareLayer.getHeight() != height) { mHardwareLayer.resize(width, height); + mLocalDirtyRect.setEmpty(); } Canvas currentCanvas = mAttachInfo.mHardwareCanvas; @@ -8231,6 +8233,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility try { canvas.setViewport(width, height); canvas.onPreDraw(mLocalDirtyRect); + mLocalDirtyRect.setEmpty(); final int restoreCount = canvas.save(); @@ -8252,7 +8255,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility canvas.onPostDraw(); mHardwareLayer.end(currentCanvas); mAttachInfo.mHardwareCanvas = currentCanvas; - mLocalDirtyRect.setEmpty(); } } |