summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-02-02 15:44:19 -0800
committerRomain Guy <romainguy@google.com>2011-02-02 15:44:19 -0800
commit62687ec12cb8e0b1d4044a235b1387b9a8c3b4b4 (patch)
treee8cb9417b98e79ad06813201e8081f1df894486b /core
parent8257e4d7e2b1ac9b8310a326cf8f4b53aba760ec (diff)
downloadframeworks_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.java2
-rw-r--r--core/java/android/view/View.java4
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();
}
}